python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_heapq.cpython-312.opt-1.pyc

ΑeAdZddlZddlZddlZddlmZddlmZmZddlm	Z	ejddgZejddg	Zgd
Z
GddeZd
ZGddZGddeeZeedGddeeZGddZGddZdZGddZGddZGddZGd d!ZGd"d#ZGd$d%ZGd&d'Zdd(lmZd)ZGd*d+Z Gd,d-Z!Gd.d/e!eZ"eedGd0d1e!eZ#e$d2k(rejJyy)3zUnittests for heapq.N)
import_helper)TestCase
skipUnless)
itemgetterheapq_heapq)blocked)fresh)heapifyheappopheappushheappushpopheapreplace_heappop_max_heapreplace_max_heapify_maxc0eZdZdZeeddZy)TestModulescntD],}|jtt|jd.y)Nr)
func_namesassertEqualgetattrpy_heapq
__module__selffnames  C/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_heapq.pytest_py_functionszTestModules.test_py_functionss0	KEWXu5@@'J	Krequires _heapqcntD],}|jtt|jd.y)Nr)rrrc_heapqrrs  rtest_c_functionszTestModules.test_c_functionss0	KEWWe4??J	Kr N)__name__r__qualname__rrr#r$r rrrs&K*+K,Kr rcxGdd}|jtjt||S)NceZdZdZy)+load_tests.<locals>.HeapqMergeDocTestFinderchtj}|jtjSN)doctest
DocTestFinderfindrmerge)rargskwargsdtfs    rr/z0load_tests.<locals>.HeapqMergeDocTestFinder.find's#'')C88HNN++r N)r%rr&r/r'r rHeapqMergeDocTestFinderr*&s	,r r4)test_finder)addTestsr-DocTestSuiter)loadertestsignorer4s    r
load_testsr;s6,,

NN7''4K4MOPLr creZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZy)TestHeapcg}g}|j|tdD]T}tj}|j||jj|||j|Vg}|r@|jj
|}|j||j||r@|dd}|j|j|||j||jt|jj
g	|jt|jj
dd|jt|jjdy#t$rYywxYw)N)check_invariantrangerandomappendmoduler
rsortrassertRaises	TypeErrorAttributeError)rheapdataiitemresultsdata_sorteds       r
test_push_popzTestHeap.test_push_pop1sET"s	'A==?DKKKK  t,  &		'
;;&&t,D  &NN4 1gg.W%)T[[%9%92>	i)=)=tTJi)<)<dC		s AE88	FFcnt|D]'\}}|s	|dz
dz	}|j|||k)yN)	enumerate
assertTrue)rrIposrL	parentposs     rr@zTestHeap.check_invariantMs>"4	9IC UqL	Y4 78	9r cJttddgzD]X}t|Dcgc]}tj}}|jj	||j|Z|j
t|jjdycc}w)N N)listrArBrDrr@rFrG)rsizedummyrIs    rtest_heapifyzTestHeap.test_heapifyTsrOug-	'D16t=FMMO=D=KK%  &	'
	
)T[[%8%8$?	>sB c^tdDcgc]}tjd}}g}|D]H}|jj	||t|dkDs.|jj
|J|j|j|t|ddycc}w)N
)
rArB	randrangerDr
lenrrErsortedrrKrJrIrLs     rtest_naive_nbestzTestHeap.test_naive_nbest\s05d<1  &<<	*DKK  t,4y2~##D)	*	
		vd|CD12=sB*c#hK		|jj|#t$rYywxYwwr,)rDr
IndexErrorrrIs  rheapiterzTestHeap.heapiterfs9	kk))$//		s2#	/2/2cttdDcgc]}tjd}}|dd}|jj	||ddD]'}||dkDs|jj||)|j
t|j|t|dd|jt|jj
d|jt|jj
dd|jt|jj
gdycc}w)Nr_r`rarrb)
rArBrcrDrrrrZrkrerFrGrirfs     r
test_nbestzTestHeap.test_nbestns16d<1  &<<CRyD!I	4Dd1g~''d3	4	
dmmD12F4L4FG)T[[%<%<dC)T[[%<%<dDI*dkk&=&=r4H=sD5ctdDcgc]}tjd}}|dd}|jj	||ddD]}|jj|| |j
t|j|t|dd|j
|jjgddycc}w)Nr_r`rarbx)
rArBrcrDrrrrZrkrerfs     rtest_nbest_with_pushpopz TestHeap.test_nbest_with_pushpops05d<1  &<<CRyD!I	0DKK##D$/	0dmmD12F4L4FG00S93?
=sCc2g}|jj|d}|j||fgdfdg}|jj|d}|j||fdgdf|jt|dt|jt|t
dg}|jj|d}|j||fdgdfdg}|jj|d}|j||fdgdfy)Nrag$@r	)rDrrtypeintfloat)rhros   rtest_heappushpopzTestHeap.test_heappushpopsKK##Ar*!Q"b*
DKK##At,!Q2$.adS)a%(
DKK##Aq)!Q2$+
DKK##Ar*!Q2$,r cddg}|j|jj|d|j|jj|dy)N)rrDr)rrws  rtest_heappop_maxzTestHeap.test_heappop_maxsKF11!4a811!4a8r ctdD]}tjd}t|Dcgc]}tjd}}|dzr!|dd}|jj	|n%g}|D]}|jj|| t|Dcgc]}|jj
|}}|j|t|ycc}wcc}w)Nd2rR)	rArBrcrDrr
rrre)rtrialr[rKrJrIrLheap_sorteds        r
test_heapsortzTestHeap.test_heapsorts3Z	8E##B'D27+>QF$$R(>D>qyAw##D) 5DKK((t45>CDkJ4;;..t4JKJ[&,7	8>KsC)'"C.c
g}ttjdD]t}g}ttjdD]>}tjdtjddf}|j	|@|j	|vdtdtdtddfD]}dD]}g}|D]}	|j	t
|	||	!|jt
t|||	t|jj|||d	|jt|jjgy)
Nrr~ABCirrR)FTkeyreverse)rArBrcchoicerCrrerchainrZrDr0)
rinputsrKrowjtuprrseqsseqs
          r
test_mergezTestHeap.test_mergesIv''+,	AC6++C01
 mmE*F,<,<T3,GG

3
 
MM#	*Q-A
1a8HI	@C(
@!GCKKsW EFG  vC!Q!%&7dkk&7&73PW&X!Y[  dkk&7&7&9!:B?

@	@r c	|jt|jjggg|jt|jjggdgy)Ncy)Nr'r'r r<lambda>z,TestHeap.test_empty_merges.<locals>.<lambda>sr r)rrZrDr0rs rtest_empty_mergeszTestHeap.test_empty_mergessU	
dkk//B78"=dkk//BI/FGLr cd}|jt5t|jj	||dddy#1swYyxYw)Nc3bKttd}tdD]	}||yw)Nra)rZrA)srKs  riterablezCTestHeap.test_merge_does_not_suppress_index_error.<locals>.iterables/U2YA2Y
d

s-/)rFrirZrDr0)rrs  r(test_merge_does_not_suppress_index_errorz1TestHeap.test_merge_does_not_suppress_index_errorsI	

z
*	<""8:xz:;	<	<	<s0AAcGddt}ggggg}tdD]Q}tjd}tjd}||}||f|_||j|S|D]}|j
|jj|Dcgc]}|j}}|j|t|ycc}w)NceZdZy)*TestHeap.test_merge_stability.<locals>.IntN)r%rr&r'r rIntrsr rrYr)rurArBrcpairrCrErDr0rre)rrrrKstreamroobjresults        rtest_merge_stabilityzTestHeap.test_merge_stabilitys	#	b"b!u	'A%%a(F  %Aa&C6{CH6N!!#&	'	FKKM	"3$++"3"3V"<=Q!&&==0>s'CctdDcgc]}tjd|f}}ddfD]}dD]}|jt	|j
j
||t|d||jt	|j
j
|||t||d|ycc}w)Nr_r`c|ddzdzSNri#r`r'ros rrz)TestHeap.test_nsmallest.<locals>.<lambda>1Q4#:#4r 	rrRr{rar~iir_iLr)rArBrcrrZrD	nsmallestrerrKrJfns     rtest_nsmallestzTestHeap.test_nsmallests5:4[A!!$'+AA45	:A=
:  dkk&;&;At&D!E!'bq!13  dkk&;&;At&;&K!L!'!!4Ra!8:
:	:BsCctdDcgc]}tjd|f}}ddfD]}dD]}|jt	|j
j
||t|dd||jt	|j
j
|||t||dd|ycc}w)	Nr_r`c|ddzdzSrr'rs rrz(TestHeap.test_nlargest.<locals>.<lambda>rr rTrrr)rArBrcrrZrDnlargestrers     r
test_nlargestzTestHeap.test_nlargests5:4[A!!$'+AA45	HA=
H  dkk&:&:1d&C!D!'d!;BQ!?A  dkk&:&:1d&:&J!K!'!T!B2A!FH
H	HBsC	cfd}Gdd}Gdd}tdDcgc]}tj}}t|d}j||||j	t
||ycc}w)	Nc|Dcgc]
}||}}jj|tt|Dcgc]'}jj	|j
)c}Scc}wcc}wr,)rDrrArdrro)rJcomprorKrs    rhsortz0TestHeap.test_comparison_operator.<locals>.hsortsc%)*DG*D*KK%9>s4y9IJADKK''-//JJ+JsA7,A<ceZdZdZdZy)-TestHeap.test_comparison_operator.<locals>.LTc||_yr,rrros  r__init__z6TestHeap.test_comparison_operator.<locals>.LT.__init__	r c4|j|jkDSr,rrothers  r__lt__z4TestHeap.test_comparison_operator.<locals>.LT.__lt__svv''r Nr%rr&rrr'r rLTrs

(r rceZdZdZdZy)-TestHeap.test_comparison_operator.<locals>.LEc||_yr,rrs  rrz6TestHeap.test_comparison_operator.<locals>.LE.__init__rr c4|j|jk\Sr,rrs  r__le__z4TestHeap.test_comparison_operator.<locals>.LE.__le__svv((r N)r%rr&rrr'r rLErs

)r rr~Tr)rArBrerrFrG)rrrrrKrJtargets`      rtest_comparison_operatorz!TestHeap.test_comparison_operatorsu	K	(	(
	)	)
*/s4A

44d+tR&1)T2.5sBN)r%rr&rOr@r]rgrkrmrprxr|rrrrrrrrr'r rr=r=/s]89@3I$@-&9
8@$M<
1:H/r r=ceZdZeZy)TestHeapPythonNr%rr&rrDr'r rrr
Fr rr!ceZdZeZy)	TestHeapCNr%rr&r#rDr'r rrr
Fr rceZdZdZdZy)LenOnlyz:Dummy sequence class defining __len__ but not __getitem__.cyNrar'rs r__len__zLenOnly.__len__sr N)r%rr&__doc__rr'r rrrs
@r rc*eZdZdZdZexZxZxZxZZ	y)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#A 177F7V7f7vr rc#"K|D]}|yw)zRegular generatorNr'seqnrKs  rRr!s
s
ceZdZdZdZdZy)GzSequence using __getitem__c||_yr,rrrs  rrz
G.__init__(s		r c |j|Sr,r)rrKs  r__getitem__z
G.__getitem__*syy|r N)r%rr&rrrr'r rrr&s r rc"eZdZdZdZdZdZy)Iz Sequence using iterator protocolc ||_d|_yNrrrs  rrz
I.__init__/	r c|Sr,r'rs r__iter__z
I.__iter__2r c|jt|jk\rt|j|j}|xjdz
c_|SrQrKrdr
StopIterationrvs  r__next__z
I.__next__4?66S^#=%8IIdff!r Nr%rr&rrrrr'r rrr-s&r rceZdZdZdZdZy)Igz9Sequence using iterator protocol defined with a generatorc ||_d|_yrrrs  rrzIg.__init__<rr c#6K|jD]}|ywr,r)rvals  rrzIg.__iter__?s99	CI	sNr%rr&rrrr'r rrr:s?r rceZdZdZdZdZy)Xz Missing __getitem__ and __iter__c ||_d|_yrrrs  rrz
X.__init__Err c|jt|jk\rt|j|j}|xjdz
c_|SrQrrs  rrz
X.__next__Hrr N)r%rr&rrrr'r rr
r
Cs&r r
ceZdZdZdZdZy)NzIterator missing __next__()c ||_d|_yrrrs  rrz
N.__init__Prr c|Sr,r'rs rrz
N.__iter__Srr Nrr'r rrrNs!r rc"eZdZdZdZdZdZy)EzTest propagation of exceptionsc ||_d|_yrrrs  rrz
E.__init__Xrr c|Sr,r'rs rrz
E.__iter__[rr cddzy)Nrzrr'rs rrz
E.__next__]s		Qr Nrr'r rrrVs$r rc"eZdZdZdZdZdZy)SzTest immediate stopcyr,r'rs  rrz
S.__init__bsr c|Sr,r'rs rrz
S.__iter__drr ctr,)rrs rrz
S.__next__fsr Nrr'r rrr`s
r r)rcdttdttt	|S)z Test multiple tiers of iteratorsc|Sr,r'rs rrzL.<locals>.<lambda>lsar )rmaprrrrs rLrjs Z2ag;011r ceZdZdZdZy)SideEffectLTc ||_||_yr,)valuerI)rr"rIs   rrzSideEffectLT.__init__ps
	r cRg|jdd|j|jkSr,)rIr"rs  rrzSideEffectLT.__lt__ts"		!zzEKK''r Nrr'r rr r os(r r cBeZdZdZdZdZdZdZdZdZ	dZ
d	Zy
)TestErrorHandlingc|jj|jjfD]}|jtt
f|d!|jj|jj|jj|jjfD] }|jtt
f|dd"yr)
rDrrrFrGrHr
rrrrrs  rtest_non_sequencez#TestErrorHandling.test_non_sequence{s++%%t{{':':;	BAy.91bA	B++&&(?(?++&&(=(=?	FAy.91b"E	Fr c|jj|jjfD]'}|jtt
f|t
)|jj|jjfD](}|jtt
f|t
d*|jj|jjfD]"}|jt|dt
$yNrar{)rDrrrFrGrHrr
rrrr's  r
test_len_onlyzTestErrorHandling.test_len_onlys++%%t{{':':;	IAy.91giH	I++&&(?(?@	MAy.91giL	M++&&(=(=>	:AiAwy9	:r ctttg}|jj|jjfD]}|j	t
|||jj|jjfD]}|j	t
||d|jj|jjfD]}|j	t
|d|yr*)
rrDrrrFrr
rrr)rrrs   rtest_cmp_errzTestErrorHandling.test_cmp_errsx68,++%%t{{':':;	9A/C8	9++&&(?(?@	=A/C<	=++&&(=(=>	<A/As;	<r cH|jj|jj|jj|jj|jj
|jjfD]}|jttf|d!yr)
rDrrr
rrrrFrGrHr's  rtest_arg_parsingz"TestErrorHandling.test_arg_parsingsy++%%t{{':':++&&(?(?++&&(=(=?	BA
y.91bA	Br c
v|jj|jjfD]	}ddtddtdddfD]}tt
tttfD]:}|jt|d||t|d|<|jt|dt|g|jt|dt||jt|dt||jt |dt#|y)	N123r_)rRg333333?r`ir{)rDrrrArrrrrrrZrrFrGr
rrr)rrrgs    rtest_iterable_argsz$TestErrorHandling.test_iterable_argss++&&(=(=>	AARthd48JK
AQAq)EA$$T!Aqt*%5tAaF|DE  a1Q4j!126!!)Q1Q48!!)Q1Q48!!"3Q1Q4@

A	Ar cgjfdtdD|jttf5|j
j
tddddy#1swYyxYw)Nc36K|]}t|ywr,r .0rKrIs  r	<genexpr>z@TestErrorHandling.test_heappush_mutating_heap.<locals>.<genexpr>>aLD)>r3)extendrArFriRuntimeErrorrDr
r rjs @rtest_heappush_mutating_heapz-TestErrorHandling.test_heappush_mutating_heapsa>5:>>



L9
:	>KK  |At'<=	>	>	>s'A22A;cgjfdtdD|jttf5|j
j
dddy#1swYyxYw)Nc36K|]}t|ywr,r8r9s  rr;z?TestErrorHandling.test_heappop_mutating_heap.<locals>.<genexpr>r<r=r>)r?rArFrir@rDrrjs @rtest_heappop_mutating_heapz,TestErrorHandling.test_heappop_mutating_heapsX>5:>>



L9
:	&KK%	&	&	&sA''A0cGfddt}g|jj|d|jt|jj
dy)NceZdZfdZy)MTestErrorHandling.test_comparison_operator_modifiying_heap.<locals>.EvilClassc0jtSr,clearNotImplemented)rorIs  rrzTTestErrorHandling.test_comparison_operator_modifiying_heap.<locals>.EvilClass.__lt__s

%%r Nr%rr&r)rIsr	EvilClassrG
&r rNrrR)rurDr
rFrir)rrNrIs  @r(test_comparison_operator_modifiying_heapz:TestErrorHandling.test_comparison_operator_modifiying_heapsL	&	&
T9Q<0*dkk&=&=tQGr cGfddt}Gfddt}ggc|jj|d|jj|d|jtt
f|jj|d|jtt
f|jj|dy)NceZdZfdZy)OTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.hc0jtSr,rI)rrLlist2s  rrzVTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.h.__lt__
%%r NrM)rUsrrwrSrOr rwceZdZfdZy)OTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.gc0jtSr,rI)rrLlist1s  rrzVTestErrorHandling.test_comparison_operator_modifiying_heap_two_heaps.<locals>.g.__lt__rVr NrM)rZsrr4rXrOr r4rrR)rurDr
rFrir@)rrwr4rZrUs   @@r2test_comparison_operator_modifiying_heap_two_heapszDTestErrorHandling.test_comparison_operator_modifiying_heap_two_heapss	&	&
	&	&
2uUAaD)UAaD):|4dkk6J6JESTUVSWX:|4dkk6J6JESTUVSWXr N)r%rr&r(r+r-r/r5rArDrPr[r'r rr%r%ys4F:<BA>&
HYr r%ceZdZeZy)TestErrorHandlingPythonNrr'r rr]r]rr r]ceZdZeZy)TestErrorHandlingCNrr'r rr_r_rr r___main__)&rrBunittestr-test.supportrrroperatorrimport_fresh_modulerr#rrr;r=rrrrrrrrr
rrr	itertoolsrrr r%r]r_r%mainr'r r<module>rgsr
&),=,,WxjI
+-
+
+GH:
FB
K(K"Y/Y/xXxG&'((
88
		2
((XYXYt/G&'*H(zHMMOr