python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_heapq.cpython-311.pyc

eA
dZddlZddlZddlZddlmZddlmZddlmZm	Z	ddl
mZejddg	Z
ejddg
ZgdZGdd
eZdZGddZGddeeZe	edGddeeZGddZGddZdZGddZGddZGdd ZGd!d"ZGd#d$ZGd%d&ZGd'd(Zdd)lm Z d*Z!Gd+d,Z"Gd-d.Z#Gd/d0e#eZ$e	edGd1d2e#eZ%e&d3krej'dSdS)4zUnittests for heapq.N)support)
import_helper)TestCase
skipUnless)
itemgetterheapq_heapq)blocked)fresh)heapifyheappopheappushheappushpopheapreplace_heappop_max_heapreplace_max_heapify_maxc>eZdZdZeeddZdS)TestModulescvtD]0}|tt|jd1dS)Nr)
func_namesassertEqualgetattrpy_heapq
__module__selffnames  C/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_heapq.pytest_py_functionszTestModules.test_py_functionssE	K	KEWXu55@'JJJJ	K	Krequires _heapqcvtD]0}|tt|jd1dS)Nr	)rrrc_heapqrrs  rtest_c_functionszTestModules.test_c_functionssE	K	KEWWe44?JJJJ	K	Kr!N)__name__r__qualname__r rr$r%r!rrrsTKKKZ*++KK,+KKKr!rcGdd}|tjt||S)NceZdZdZdS)+load_tests.<locals>.HeapqMergeDocTestFindercftj}|tjSN)doctest
DocTestFinderfindrmerge)rargskwargsdtfs    rr0z0load_tests.<locals>.HeapqMergeDocTestFinder.find(s$'))C88HN+++r!N)r&rr'r0r(r!rHeapqMergeDocTestFinderr+'s#	,	,	,	,	,r!r5)test_finder)addTestsr.DocTestSuiter)loadertestsignorer5s    r
load_testsr<so,,,,,,,,

NN7'4K4K4M4MOOOPPPLr!cteZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdS)TestHeapc<g}g}||tdD]Z}tj}|||j||||[g}|rF|j|}|||||F|dd}|||||||	t|jjg	|	t|jjdd|	t|jjddS#t$rYdSwxYw)N)check_invariantrangerandomappendmodulerr
sortrassertRaises	TypeErrorAttributeError)rheapdataiitemresultsdata_sorteds       r
test_push_popzTestHeap.test_push_pop2sT"""s	'	'A=??DKKK  t,,,  &&&&	!;&&t,,D  &&&NN4   	!111gg...W%%%)T[%92>>>	i)=tTJJJi)<dCCCCC			DD	s>A
F

FFct|D].\}}|r'|dz
dz	}||||k/dSN)	enumerate
assertTrue)rrJposrM	parentposs     rrAzTestHeap.check_invariantNsV"4	9	9IC
9 UqL	Y4 7888	9	9r!c(ttddgzD]J}dt|D}|j|||K|t|jjddS)N Nc4g|]}tjSr(rC).0dummys  r
<listcomp>z)TestHeap.test_heapify.<locals>.<listcomp>Ws===FMOO===r!)listrBrErrArGrH)rsizerJs   rtest_heapifyzTestHeap.test_heapifyUsrOOug-	'	'D==t===DK%%%  &&&&)T[%8$?????r!cTdtdD}g}|D]J}|j||t|dkr|j|K|||t|dddS)Nc6g|]}tjdSrC	randranger]rLs  rr_z-TestHeap.test_naive_nbest.<locals>.<listcomp>^#<<<1 &&<<<r!
)rBrErlenr
rFrsortedrrKrJrMs    rtest_naive_nbestzTestHeap.test_naive_nbest]s<<d<<<	*	*DK  t,,,4yy2~~##D)))		vd||CDD122222r!c#fK		|j|V#t$rYdSwxYwr-)rEr

IndexErrorrrJs  rheapiterzTestHeap.heapitergsS	
0k))$/////
0			DD	s"
00cfdtdD}|dd}|j||ddD])}||dkr|j||*|t||t|dd|t|jjd|t|jjdd|t|jjgddS)Nc6g|]}tjdSrergris  rr_z'TestHeap.test_nbest.<locals>.<listcomp>urjr!rkrlrrm)rBrErrrr`rurorGrHrsrps    r
test_nbestzTestHeap.test_nbestos=<d<<<CRCyD!!!I	4	4Dd1g~~''d333dmmD1122F4LL4FGGG)T[%<dCCC)T[%<dDIII*dk&=r4HHHHHr!cdtdD}|dd}|j||ddD]}|j|||t||t|dd||jgdddS)Nc6g|]}tjdSrergris  rr_z4TestHeap.test_nbest_with_pushpop.<locals>.<listcomp>rjr!rkrlrmx)rBrErrrr`rurorps    rtest_nbest_with_pushpopz TestHeap.test_nbest_with_pushpops<<d<<<CRCyD!!!I	0	0DK##D$////dmmD1122F4LL4FGGG00S993?????r!cvg}|j|d}|||fgdfdg}|j|d}|||fdgdf|t|dt|t|t
dg}|j|d}|||fdgdfdg}|j|d}|||fdgdfdS)Nrlg$@r	)rErrtypeintfloat)rhr{s   rtest_heappushpopzTestHeap.test_heappushpops8K##Ar**!Q"b***
DK##At,,!Q2$...adS)))a%(((
DK##Aq))!Q2$+++
DK##Ar**!Q2$,,,,,r!cddg}||j|d||j|ddS)N)rrEr)rrs  rtest_heappop_maxzTestHeap.test_heappop_maxs_F11!44a88811!44a88888r!ctdD]}tjd}dt|D}|dzr%|ddjn"g|D]}j|fdt|D}|t|dS)Nd2c6g|]}tjdS)rgris  rr_z*TestHeap.test_heapsort.<locals>.<listcomp>s#>>>QF$R((>>>r!rScDg|]}jSr()rEr
)r]rLrJrs  rr_z*TestHeap.test_heapsort.<locals>.<listcomp>s)JJJ4;..t44JJJr!)rBrCrhrErrrro)rtrialrarKrMheap_sortedrJs`     @r
test_heapsortzTestHeap.test_heapsorts3ZZ	8	8E#B''D>>%++>>>Dqy
5AAAw##D)))) 55DK((t4444JJJJJeDkkJJJK[&,,7777	8	8r!c
g}ttjdD]{}g}ttjdD]@}tjdtjddf}||A|||dtdtdtddfD]}dD]}g}|D]'}	|t
|	||	(|t
t|||	t|j
j|||d	|t|j
gdS)
NrrABCirrS)FTkeyreverse)rBrCrhchoicerDrrorchainr`rEr1)
rinputsrLrowjtuprrseqsseqs
          r
test_mergezTestHeap.test_mergesv'++,,		AC6+C0011
 
 mE**F,<T3,G,GG

3MM#*Q--A
1a8H8HI	@	@C(
@
@!GGCKKsW E E EFFFF  vC!Q!Q!Q!%&7dk&73PW&X&X&X!Y!Y[[[  dk&7&7&9&9!:!:B????

@	@	@r!c	|t|jggg|t|jggdgdS)NcdS)Nr(r(r!r<lambda>z,TestHeap.test_empty_merges.<locals>.<lambda>sAr!r)rr`rEr1rs rtest_empty_mergeszTestHeap.test_empty_mergessq	
dk//B7788"===dk//BII/FFGGLLLLLr!cd}|t5t|j||ddddS#1swxYwYdS)Nc3zKttd}tdD]}||V
dS)Nrl)r`rB)srLs  riterablezCTestHeap.test_merge_does_not_suppress_index_error.<locals>.iterablesEU2YYA2YY

d





r!)rGrsr`rEr1)rrs  r(test_merge_does_not_suppress_index_errorz1TestHeap.test_merge_does_not_suppress_index_errors			

z
*
*	<	<""88::xxzz::;;;	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<s9A$$A(+A(cGddt}ggggg}tdD]Y}tjd}tjd}||}||f|_|||Z|D]}|d|jj|D}|	|t|dS)NceZdZdS)*TestHeap.test_merge_stability.<locals>.IntN)r&rr'r(r!rIntrsDr!rrZrcg|]	}|j
Sr()pairris  rr_z1TestHeap.test_merge_stability.<locals>.<listcomp>s===Q!&===r!)rrBrCrhrrDrFrEr1rro)rrrrLstreamr{objresults        rtest_merge_stabilityzTestHeap.test_merge_stabilitys					#			b"b!u	'	'A%a((F %%A#a&&C6{CH6N!!#&&&&		FKKMMMM=="3$+"3V"<===00000r!cdtdD}ddfD]}dD]}|t|j||t|d||t|j|||t||d|dS)Nc:g|]}tjd|fSrergris  rr_z+TestHeap.test_nsmallest.<locals>.<listcomp>(AAA!$''+AAAr!rkc|ddzdzSNri#rfr(r{s rrz)TestHeap.test_nsmallest.<locals>.<lambda>1Q4#:#4r!	rrSrrlriirkiLr)rBrr`rE	nsmallestrorrKfns    rtest_nsmallestzTestHeap.test_nsmallestsAAU4[[AAA445	:	:A=
:
:  dk&;&;At&D&D!E!E!'bqb!1333  dk&;&;At&;&K&K!L!L!'!!4!4!4RaR!8::::
:	:	:r!cdtdD}ddfD]}dD]}|t|j||t|dd||t|j|||t||dd|dS)	Nc:g|]}tjd|fSrergris  rr_z*TestHeap.test_nlargest.<locals>.<listcomp>rr!rkc|ddzdzSrr(rs rrz(TestHeap.test_nlargest.<locals>.<lambda>rr!rTrrr)rBrr`rEnlargestrors    r
test_nlargestzTestHeap.test_nlargestsAAU4[[AAA445	H	HA=
H
H  dk&:&:1d&C&C!D!D!'d!;!;!;BQB!?AAA  dk&:&:1d&:&J&J!K!K!'!T!B!B!B2A2!FHHHH
H	H	Hr!cfd}Gdd}Gdd}dtdD}t|d	}||||t||dS)
NcfdDjfdttDS)Nc&g|]
}|Sr(r()r]r{comps  rr_zDTestHeap.test_comparison_operator.<locals>.hsort.<locals>.<listcomp>s!***DDGG***r!cNg|]!}jj"Sr()rEr
r{)r]rLrKrs  rr_zDTestHeap.test_comparison_operator.<locals>.hsort.<locals>.<listcomp>s,JJJADK''--/JJJr!)rErrBrn)rKrrs``rhsortz0TestHeap.test_comparison_operator.<locals>.hsorts_****T***DK%%%JJJJJs4yy9I9IJJJJr!ceZdZdZdZdS)-TestHeap.test_comparison_operator.<locals>.LTc||_dSr-rrr{s  r__init__z6TestHeap.test_comparison_operator.<locals>.LT.__init__
r!c"|j|jkSr-rrothers  r__lt__z4TestHeap.test_comparison_operator.<locals>.LT.__lt__sv''r!Nr&rr'rrr(r!rLTrs2



(
(
(
(
(r!rceZdZdZdZdS)-TestHeap.test_comparison_operator.<locals>.LEc||_dSr-rrs  rrz6TestHeap.test_comparison_operator.<locals>.LE.__init__rr!c"|j|jkSr-rrs  r__le__z4TestHeap.test_comparison_operator.<locals>.LE.__le__sv((r!N)r&rr'rrr(r!rLErs2



)
)
)
)
)r!rc4g|]}tjSr(r\ris  rr_z5TestHeap.test_comparison_operator.<locals>.<listcomp>s444A
444r!rTr)rBrorrGrH)rrrrrKtargets`     rtest_comparison_operatorz!TestHeap.test_comparison_operators	K	K	K	K	K	(	(	(	(	(	(	(	(
	)	)	)	)	)	)	)	)
54s444d+++tR&111)T2.....r!N)r&rr'rPrArbrqrurxr|rrrrrrrrrrr(r!rr>r>0s%8999@@@333III$@@@---&999
8
8
8@@@$MMM<<<
1
1
1:::HHH/////r!r>ceZdZeZdS)TestHeapPythonNr&rr'rrEr(r!rrr
FFFr!rr"ceZdZeZdS)	TestHeapCNr&rr'r$rEr(r!rrr
FFFr!rceZdZdZdZdS)LenOnlyz:Dummy sequence class defining __len__ but not __getitem__.cdSNrlr(rs r__len__zLenOnly.__len__srr!N)r&rr'__doc__rr(r!rrrs)@@r!rc,eZdZdZdZexZxZxZxZZ	dS)CmpErrz;Dummy element that always raises an error during comparisonctr-)ZeroDivisionErrorrs  r__eq__z
CmpErr.__eq__sr!N)
r&rr'rr__ne__rr__gt____ge__r(r!rrrs<AA   177F7V7f7vr!rc#K|D]}|VdS)zRegular generatorNr(seqnrLs  rRr"s*
r!ceZdZdZdZdZdS)GzSequence using __getitem__c||_dSr-rrrs  rrz
G.__init__)s
			r!c|j|Sr-r)rrLs  r__getitem__z
G.__getitem__+sy|r!N)r&rr'rrrr(r!rrr's8  r!rc$eZdZdZdZdZdZdS)Iz Sequence using iterator protocolc"||_d|_dSNrrrs  rrz
I.__init__0	r!c|Sr-r(rs r__iter__z
I.__iter__3r!c|jt|jkrt|j|j}|xjdz
c_|SrRrLrnr
StopIterationrvs  r__next__z
I.__next__5>6S^^##=%8Idf!r!Nr&rr'rrrrr(r!rr	r	.sG&&r!r	ceZdZdZdZdZdS)Igz9Sequence using iterator protocol defined with a generatorc"||_d|_dSrrrs  rrzIg.__init__=rr!c#&K|jD]}|VdSr-r)rvals  rrzIg.__iter__@s,9		CIIII		r!Nr&rr'rrrr(r!rrr;s8??r!rceZdZdZdZdZdS)Xz Missing __getitem__ and __iter__c"||_d|_dSrrrs  rrz
X.__init__Frr!c|jt|jkrt|j|j}|xjdz
c_|SrRrrs  rrz
X.__next__Irr!N)r&rr'rrrr(r!rrrDs8&&r!rceZdZdZdZdZdS)NzIterator missing __next__()c"||_d|_dSrrrs  rrz
N.__init__Qrr!c|Sr-r(rs rrz
N.__iter__Trr!Nrr(r!rr#r#Os8!!r!r#c$eZdZdZdZdZdZdS)EzTest propagation of exceptionsc"||_d|_dSrrrs  rrz
E.__init__Yrr!c|Sr-r(rs rrz
E.__iter__\rr!cddzdS)Nrrr(rs rrz
E.__next__^s	Qr!Nrr(r!rr'r'WsG$$r!r'c$eZdZdZdZdZdZdS)SzTest immediate stopcdSr-r(rs  rrz
S.__init__csr!c|Sr-r(rs rrz
S.__iter__err!ctr-)rrs rrz
S.__next__gsr!Nrr(r!rr,r,asG


r!r,)rcttdttt	|S)z Test multiple tiers of iteratorsc|Sr-r(rs rrzL.<locals>.<lambda>msar!)rmaprrrrs rLr3ks.ZZ2agg;;00111r!ceZdZdZdZdS)SideEffectLTc"||_||_dSr-)valuerJ)rr7rJs   rrzSideEffectLT.__init__qs
			r!c:g|jdd<|j|jkSr-)rJr7rs  rrzSideEffectLT.__lt__us 	!!!zEK''r!Nrr(r!rr5r5ps2(((((r!r5cDeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
S)TestErrorHandlingc,|jj|jjfD]%}|tt
f|d&|jj|jj|jj|jj	fD]&}|tt
f|dd'dSr)
rErr
rGrHrIrrrrrrs  rtest_non_sequencez#TestErrorHandling.test_non_sequence|s+%t{':;	B	BAy.91bAAAA+&(?+&(=?	F	FAy.91b"EEEE	F	Fr!c|jj|jjfD]1}|tt
f|t
2|jj|jjfD]2}|tt
f|t
d3|jj	|jj
fD]+}|t|dt
,dSNrlr)rErr
rGrHrIrrrrrr<s  r
test_len_onlyzTestErrorHandling.test_len_onlys+%t{':;	I	IAy.91giiHHHH+&(?@	M	MAy.91giiLLLL+&(=>	:	:AiAwyy9999	:	:r!ctttg}|jj|jjfD]}|t
|||jj|jjfD]}|t
||d |jj|jj	fD]}|t
|d| dSr?)
rrErr
rGrrrrr)rrrs   rtest_cmp_errzTestErrorHandling.test_cmp_errsxx688,+%t{':;	9	9A/C8888+&(?@	=	=A/C<<<<+&(=>	<	<A/As;;;;	<	<r!c|jj|jj|jj|jj|jj|jjfD]%}|ttf|d&dSr)
rErr
rrrrrGrHrIr<s  rtest_arg_parsingz"TestErrorHandling.test_arg_parsingsp+%t{':+&(?+&(=?	B	BA
y.91bAAAA	B	Br!c
|jj|jjfD]S}ddtddtdddfD]+}tt
tttfD]O}|	t|d||t|d|P|	t|dt|g|t|dt||t|dt||t |dt#|-UdS)	N123rk)rSg333333?rfir)rErrrBrr	rr3rrr`r,rGrHrr#rr')rrrgs    rtest_iterable_argsz$TestErrorHandling.test_iterable_argssS+&(=>	A	AARthd48J8JK
A
AQAq)EEA$$T!!Aqqtt**%5%5tAAaFF||DDDD  aa1Q44jj!1!12666!!)Q1Q44888!!)Q1Q44888!!"3Q1Q44@@@@

A	A	Ar!c.gfdtdD|ttf5|jtdddddS#1swxYwYdS)Nc38K|]}t|VdSr-r5r]rLrJs  r	<genexpr>z@TestErrorHandling.test_heappush_mutating_heap.<locals>.<genexpr>->>aLD))>>>>>>r!rH)extendrBrGrsRuntimeErrorrErr5rts @rtest_heappush_mutating_heapz-TestErrorHandling.test_heappush_mutating_heaps>>>>5::>>>>>>



L9
:
:	>	>K  |At'<'<===	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>s*B

BBcgfdtdD|ttf5|jddddS#1swxYwYdS)Nc38K|]}t|VdSr-rMrNs  rrOz?TestErrorHandling.test_heappop_mutating_heap.<locals>.<genexpr>rPr!rQ)rRrBrGrsrSrEr
rts @rtest_heappop_mutating_heapz,TestErrorHandling.test_heappop_mutating_heaps>>>>5::>>>>>>



L9
:
:	&	&K%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&sA;;A?A?cGfddt}g|j|d|t|jjddS)NceZdZfdZdS)MTestErrorHandling.test_comparison_operator_modifiying_heap.<locals>.EvilClassc:tSr-clearNotImplemented)rorJs  rrzTTestErrorHandling.test_comparison_operator_modifiying_heap.<locals>.EvilClass.__lt__s

%%r!Nr&rr'r)rJsr	EvilClassrZ.
&
&
&
&
&
&
&r!rarrS)rrErrGrsr)rrarJs  @r(test_comparison_operator_modifiying_heapz:TestErrorHandling.test_comparison_operator_modifiying_heaps	&	&	&	&	&	&	&	&	&	&
T99Q<<000*dk&=tQGGGGGr!cGfddt}Gfddt}ggc|j|d|j|d|tt
f|jj|d|tt
f|jj|ddS)NceZdZfdZdS)OTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.hc:tSr-r\)rr_list2s  rrzVTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.h.__lt__


%%r!Nr`)rhsrrrfrbr!rceZdZfdZdS)OTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.gc:tSr-r\)rr_list1s  rrzVTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.g.__lt__rir!Nr`)rmsrrIrkrbr!rIrrS)rrErrGrsrS)rrrIrmrhs   @@r2test_comparison_operator_modifiying_heap_two_heapszDTestErrorHandling.test_comparison_operator_modifiying_heap_two_heapss!	&	&	&	&	&	&	&	&	&	&
	&	&	&	&	&	&	&	&	&	&
2uUAAaDD)))UAAaDD))):|4dk6JESTSTUVSWSWXXX:|4dk6JESTSTUVSWSWXXXXXr!N)r&rr'r=r@rBrDrJrTrWrcrnr(r!rr:r:zsFFF:::<<<BBBAAA>>>&&&
H
H
HYYYYYr!r:ceZdZeZdS)TestErrorHandlingPythonNrr(r!rrprprr!rpceZdZeZdS)TestErrorHandlingCNrr(r!rrrrrrr!rr__main__)(rrCunittestr.testrtest.supportrrroperatorrimport_fresh_modulerr$rrr<r>rrrrrrr	rrr#r'r,	itertoolsrr3r5r:rprrr&mainr(r!r<module>r{s3



&&&&&&)))))))),=,WxjIII
+-
+GH:
F
F
FBBB
KKKKK(KKK"Y/Y/Y/Y/Y/Y/Y/Y/xXxG&''(('
88888888
								222
((((((((XYXYXYXYXYXYXYXYt/G&''*H('zHMOOOOOr!