python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_deque.cpython-311.opt-2.pyc

eBddlmZddlZddlZddlmZmZddlZddlZddl	Z	ddl
Z
ddlZddlZdZ
dZGddZGdd	ZGd
dejZGdd
ejZGddeZGddeZGddeZGddejZGddeZGddejZGddejZdZdeiZdZedkrej dSdS) dequeN)support	seq_testsic#KtN)SyntaxErrorC/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_deque.pyfailr
s
rceZdZdZdS)BadCmpctr)RuntimeErrorselfothers  r__eq__z
BadCmp.__eq__srN__name__
__module____qualname__rr
rrrrs#rrceZdZdZdZdS)	MutateCmpc"||_||_dSr)rresult)rrrs   r__init__zMutateCmp.__init__s
rcB|j|jSr)rclearrrs  rrzMutateCmp.__eq__s
{rN)rrrrrr
rrrrs2rrcVeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1e2j3Z3e2j4d0Z5d1S)2	TestBasicc	RttddtdtddD]}|t	tddD]}||tttdd|tdfdtd	D}||ttdd
|tttd
dfdtd	D}|	||ttdd|tttd
ddS)
Niix8rXc8g|]}Sr
popleft.0ids  r
<listcomp>z)TestBasic.test_basics.<locals>.<listcomp>*!000		000r2c8g|]}Sr
popr+s  rr/z)TestBasic.test_basics.<locals>.<listcomp>.!---Q---r)
rrangerappendreversed
appendleftassertEquallistlenreverserr-leftrightr.s    @rtest_basicszTestBasic.test_basics s%u%%&&	

5::sC		A
HHQKKKK%a..))		A
LLOOOOa$uT3'7'7"8"8999Q%%%0000U3ZZ000tE$OO44555a$uR~~"6"6777----%**---


U3__ 5 5666a$uR~~"6"677777rc6|ttdd|ttddtt	d}t|d}|t
|g|t|d|t
|gd||tt	dd|d|t
|gd	|	d
|t
|gd|
ddg|t
|gd|d
d
g|t
|gdtt	dd}|||t|dddtt	dd}|t|ddS)Nabc
maxlenzdeque([7, 8, 9], maxlen=3))	)rMrNrHrL)rNrHrOrMr$iz, 198, 199, [...]], maxlen=10)z%deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))assertRaises
ValueErrorriterr8r<r=reprr9r;extend
extendleftritr.s   rtest_maxlenzTestBasic.test_maxlen3s)*eUB777*eUB777
%))__"Qb2&&&a">???a))),,,E%))Q//000	a***---	Qa))),,,	"ba+++...	aVa))),,,%**R(((	a(HIII%))D)))a"IJJJJJrc6ttd}t|d|t	|gttd}td}|||t	|gttd}td}|||t	|gdS)NdrrJ)rRr8rr<r=rTrUrVs   rtest_maxlen_zerozTestBasic.test_maxlen_zeroJs
%**


bb2&&&
%**

OOO	b2&&&
%**

OOO	Rb2&&&&&rc2|tjd|tdjd|tddjd|tddjd|tddjd|t5td}d|_ddddS#1swxYwYdS)NrErJrrH)r<rrKrPAttributeErrorrr.s  rtest_maxlen_attributezTestBasic.test_maxlen_attributeYs9...u,d333uQ///6:::uQ///6:::uQ///6:::


~
.
.		eAAH																		s(DDDc	vddddzdzfD]e}t|}t|}dD]B}||||||||fCf|t
|j|t
|jddGd	d
}tdd|dg}|t|jdtgd}|t|j|Gd
d}|}tddd|ddg}||_|t|jdtdgdz}tt|D]}|d|d||dd||dddS)Nabracadabra
simsalabimrEabcdefghijklmnopqrstuvwxyzr^ceZdZdZdS)(TestBasic.test_count.<locals>.BadComparectr)ArithmeticErrorrs  rrz/TestBasic.test_count.<locals>.BadCompare.__eq__ls%%rNrr
rr
BadComparerjks#
&
&
&
&
&rrmrIrhr^rIceZdZdZdS)-TestBasic.test_count.<locals>.MutatingComparec8|jdS)NT)r.r5rs  rrz4TestBasic.test_count.<locals>.MutatingCompare.__eq__ss

trNrr
rrMutatingComparerprs#




rrrr]rFr)r=rr<countrP	TypeErrorrlr.rr8r>rotate)rsr.letterrmrrmr-s        r
test_countzTestBasic.test_countcsSm\#%5e%;<	S	SAQAaA6
S
S  !''&//Aq&>RRRR
S)QW---)QWa333	&	&	&	&	&	&	&	&
1aq)**/17A666)))/17JJLLAAA								
O1aAq!$%%,333
4&)s1vv		A
HHRLLLL	Q'''+++++rc	2td}||tdtdtt|fD]}|||kt	|t	|kot|t|k|||kt	|t	|kot|t|kttd}|D]l}|D]e}|||kt|t|k||f|||kt|t|k||f|||kt|t|k||f|||kt|t|k||f|||kt|t|k||f|||kt|t|k||fgndS)NxabcrEab)	rcabr~barExbar}cba)rr*r=r<typemap)rr.eargsxys      rtest_comparisonszTestBasic.test_comparisonssA&MM			U5\\5;;aA	O	OAQT477DGG#3#HQa8HIIIQTtAwwQ'7'LDGGT!WW<L#MNNNN5QRR	D	DA
D
D  aaDGG);aUCCC  aaDGG);aUCCC  aaDGG);aUCCC  aaDGG);aUCCC  aaDGG);aUCCC  aaDGG);aUCCCC

D	D	Drcfd}tt|}t|D]}|||v||dz|vtt|}t|d||dz<|t
5||vdddn#1swxYwYtt|}t
||dz<|t
5||vddddS#1swxYwYdS)Nr$rhFr^)rr8
assertTruerrPrr)rnr.r-s    r
test_containszTestBasic.test_containss%((OOq	$	$AOOAF####1Q'''
%((OOAu%%!Q$


|
,
,		
FF															
%((OO((!Q$


|
,
,		
FF																		s$.B??CCD&&D*-D*cGfdd}t||g|t5dv}dddn#1swxYwYt||g|t5d}ddddS#1swxYwYdS)NceZdZfdZdS)5TestBasic.test_contains_count_stop_crashes.<locals>.Ac:tSr)r NotImplemented)rrr.s  rrz<TestBasic.test_contains_count_stop_crashes.<locals>.A.__eq__s			%%rNr)r.srArs.
&
&
&
&
&
&
&rrrI)rrPrru)rr_r.s   @r test_contains_count_stop_crashesz*TestBasic.test_contains_count_stop_crashessj	&	&	&	&	&	&	&	&	&	&
1133*


|
,
,		QA															1133*


|
,
,		

A																		s$AA!$A!#CC

C
cztd}|t|jd|d|t|td|||t|tddS)Nrrhbcdabcdabcdabcd)rrPrvrTr<r=r`s  rtest_extendzTestBasic.test_extends#JJ)QXq111	a$v,,///	a$z"2"233333rct}td}td}|||zt|||ztd|||ztd|||ztd|||ztd|||zt|||ztd|||ztdtdd}td}|||ztd|t5tddzddddS#1swxYwYdS)	NrEdefabcdefabcabcr]rJghefgh)rr<assertIsNotrPrv)rr.rfghs      rtest_addzTestBasic.test_addsGG%LL%LLQ(((Qh000Qh000Qe---Qe---Q(((Qe---Qe---(1%%%$KKQf

...


y
)
)	!	!%LL5  	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!s;GG"Gctd}|dz
}|t|td||z
}|t|tddS)Nrrrr)rr<r=r`s  r	test_iaddzTestBasic.test_iaddsk#JJ	U
a$v,,///	Qa$z"2"233333rc
td}|t|jd|d|t|tt
d|||t|tdt}|td|t|tt
td|t|jtdS)Nrrhrrabcddcba)
rrPrvrUr<r=r:r8r	r
r`s  rtest_extendleftzTestBasic.test_extendlefts#JJ)Q\1555	Ua$x'7'7"8"8999	Qa$z"2"2333GG	U4[[!!!a$xd'<'<"="=>>>+q|TVV<<<<<rcd}tt|}tt|}t|D]}||dtjdkr*||||tdt|z
t|D]}td}||dd||ddt}|	t|jd|	t|jddS)	Nr$rg?rhsupermanrxrFr)rr8r=r*r5randomr9r>r<rP
IndexError__getitem__)rrr.lr-js      rtest_getitemzTestBasic.test_getitems?%((OOqNNq	$	$A
IIKKK
EE!HHH}$$1SVV8SVV,,
$
$
$
*1s###2$$$GG*amQ777*amR88888rc
dD]}tt|}t|D]+}||||,|t
5||dzdddn#1swxYwYtt|}t
|d||dz<|t5||dddn#1swxYwYtt|}t||dz<|t5||dddn#1swxYwYd}d}t|dz}t|dz}tdt|dzz
dt|dzzD]}tdt|dzz
dt|dzzD]}|dzD]}		||	||}
|||	|||
F#t
$rL|t
5||	||dddn#1swxYwYYwxYwttd	d
d}tdD]H}|d
d}|||d
|IdS)N)rhr^(r$rhFr^	ABCDEFGHIZrsri'rHrZi4!i)rr8r<indexrPrQrrrr=r>rw)rrr.r-elements
nonelementrxstartstopelementtargetsteps            r
test_indexzTestBasic.test_indexs,"		AeAhhA1XX
0
0  Q////"":..

!














eAhhA5))AadG""<00



















eAhhAhhAadG""<00




















(Q,A2Aq=!c!ffqj.99		P		PEb3q66!8mQQ!^<<
P
P'#~PPGP!"%!>!>
((%)F)FOOOO	&:::!..z::::GGGUD999::::::::::::::::P
P
%5"%%&&#JJ		Dc""AQqT4(((
HHJJJJ			sl7BB 	#B 	3DD	D	*FF	F	9I<<$K	 K8K	KK	KK	K	ctd}|t5|ddd}ddddS#1swxYwYdS)NAAAzHello worldrr])rrPrQr)rr.r-s   rtest_index_bug_24913zTestBasic.test_index_bug_24913&s'NN


z
*
*	-	-
q!,,A	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-sAAAcVd}tdt|dzz
dt|dzzD]o}td}td}||d||d|t||pdS)Nrrr^rsr)r8r>rr=insertr<)rrr-r.rxs     rtest_insertzTestBasic.test_insert+srCMM!O+QX1B-BCC	)	)Ak""A[!!A
HHQ
HHQT!WWa((((	)	)rc(d}t|t|}|t5|dddddn#1swxYwYd}tt|t|D]{}t|t|dz}||d|dkr|||d\|||dz
d|dS)NABCrJr^rrhrr)rr>rPrrr8r<)rdatar.rr-s     rtest_insert_bug_26194zTestBasic.test_insert_bug_261945sK$s4yy)))


z
*
*		
HHQ															H

~s8}}55	.	.Ahs8}}Q777A
HHQAvv  1s++++  1Q3----
	.	.sAA"%A"cdD]Q}t}||z}||t||jRdD]V}td}||z}||td|z||jWdD]f}tdd}||z}||tdt	|dz||jdgdD]V}td}||z}||td|z||jWdD]`}tdd}||z}||td|zdd||jdadS)N)rFrrhr^rHrr)
rrFrrhr^rHirfirrfri)rr<assertIsNonerKmin)rrr.s   r	test_imulzTestBasic.test_imulDs-	(	(AA
FAQ(((ah''''-	(	(Ac

A
FAQcAg///ah''''<	,	,Ac3A
FAQcC3KK&7 8 8999QXs++++-	(	(AhA
FAQhl 3 3444ah''''<	,	,Ah$$A
FAQx!|TUU&; < <===QXs++++		,	,rctd}||dzt||dzt||dztd||dztd||dztd||dz||tdzt|tdzt|td	zt|d|zt|d|zt|d|ztd|d|ztd|d|ztdtdd	
}||dzt||dzt||dztd||dztd||dztddS)
NrErrrhr^rrI	abcabcabcrsrJbcabcr)rr<rr`s  rtest_mulzTestBasic.test_mulcs}%LLR)))Q(((Qe---Qh000Qk 2 2333Q"""1egg...1egg...1egg...a)))Q(((Qe---Qh000Qk 2 2333%"""R)))Q(((Qe---Qg///Rw00000rcd}tt|}t|D]
}d|z||<|t|dt|Dt|}td|z
ddD]}d|z||<d|z||<|t||dS)Nr$rHcg|]}d|zS)rHr
r,r-s  rr/z*TestBasic.test_setitem.<locals>.<listcomp>s":":":A2a4":":":rrhrrFrL)rr8r<r=)rrr.r-rs     rtest_setitemzTestBasic.test_setitem}s%((OOq		A6AaDDa":":q":":":;;;GGqsAr""		AQ3AaDQ3AaDDa!$$$$$rcRd}tt|}|t|j|dz
|t|j|t|D]}|t
|||z
tjt
|t
|}||}|	||||=|
|||t
|ddS)Nrfrhr)rr8rPr__delitem__r<r>r	randrangeassertInassertNotIn)rrr.r-rvals      rtest_delitemzTestBasic.test_delitems%((OO*amaRT:::*amQ777q	%	%ASVVQqS))) #a&&#a&&11AA$CMM#q!!!!S!$$$$Q#####rc,d}dt|D}t|D]}t|d|}|}|t	|t	t|d|||d||t	||d||t|jddS)Nrfc4g|]}tjSr
rrs  rr/z*TestBasic.test_reverse.<locals>.<listcomp>s222A
222rrh)	r8rr?r<r=r:assertIsrPrv)rrrr-r.rs      rtest_reversezTestBasic.test_reverses22q222q	0	0Ad2A2hA		AT!WWd8D!H+=+=&>&>???MM!T"""
IIKKKT!WWd2A2h////)QY22222rcrtd}t|}t|}|d|d|dt|}|d|d|d||t||t
|dzD]}t|}t|}||t
|D]}|d|t|t||||t|||||z
|t||t
|dzD]}t|}t|}||t
|D]}|d|t|t||||t|||||z
|t||t|}t|}|tdz|j}t
tdzD]}|
|t|t||t|jd	|t|jdd
t}|||tdS)NabcderhrceabcdrFbcdearIrrH)
tupler>rrwr<joinr8BIGrPrv)rrxrr.r-rrdrs        rtest_rotatezTestBasic.test_rotatesf'NNFF!HH	W---!HH	W---	


q1%%%qs
	*
	*AaAaA
HHQKKK1XX

U1XXuQxx000
HHaRLLLU1XXq)))
HHQqSMMMU1XXq))))qs
	*
	*AaAaA
HHaRLLL1XX

U1XXuQxx000
HHQKKKU1XXq)))
HHQqSMMMU1XXq))))!HH!HH	R
Xs2v		ABDDDDq588,,,)QXs333)QXq"555GG	


EGG$$$$$rctd}|t|d||t|d||t|d|t|j|t|d|d|t|d|d|t|d|	|t|ddS)Nr~r^rhrcr.)
rr<r>r*r5rPrr9r;r r`s  rtest_lenzTestBasic.test_lens7$KKQ###			Q###	Q###*ae,,,Q###	


Q###	SQ###				Q#####rct}|t|j|t|jdSr)rrPrr5r*r`s  rtest_underflowzTestBasic.test_underflowsAGG*ae,,,*ai00000rcttd}|t|d||t|d|t|g||t|gdS)NrZr)rr8r<r>r r=r`s  r
test_clearzTestBasic.test_clears%**Q%%%				Q###a"%%%				a"%%%%%rc~td}|d||td|d||td|t|jd||tdtddtdg}t|}|t|jdt||D]\}}|||udD]z}tdg}|	t||dg|t|jd||t{dS)	Nabcdefghcijr
abdefghcij	abdefghijrr)TFr~)rremover<rPrQrrziprrTrr)rr.rrrmatchs      rtest_removezTestBasic.test_removes-  	


E,//000	


E+..///*ah444E+..///
3VXXs+,,!HH,#6661II	$	$DAqOOAF#####	)	)Etf

A
HHi5))3/000j!(C888Q((((		)	)rcVttd}tt|}|t|t||||t|ddddS)Nr$iz7, 198, 199, [...]]))rr8evalrSr<r=r9rr.rs   r	test_reprzTestBasic.test_reprs%**aMMa$q''***	a(>?????rc|ttddd|ttddS)NrEr^rIrh)rPrvrrs r	test_initzTestBasic.test_inits<)UE1a888)UA.....rcb|tttddS)NrE)rPrvhashrrs r	test_hashzTestBasic.test_hashs&)T5<<88888rc
dD]}tt|}|j|j}}t|tD]9}|||}|||z
kr||||z
:|t
|t
tt|z
tdSN)rrhr^rZr)rr8r9r*rr<r=rsizer.r9r5r-rs       r#test_long_steadystate_queue_popleftz-TestBasic.test_long_steadystate_queue_poplefts(	B	BDeDkk""A(AICF4%%
0
0q			CEED==$$Q$///T!WWd5T3+?+?&@&@AAAA	B	Brc
dD]}ttt|}|j|j}}t|t
D]9}|||}|||z
kr||||z
:|ttt|ttt
|z
t
dSr)rr:r8r;r5rr<r=r
s       r$test_long_steadystate_queue_poprightz.TestBasic.test_long_steadystate_queue_popright's(		9		9DhuT{{++,,A,CF4%%
0
0q			CEED==$$Q$///T(477"3"344!%D#"6"677
9
9
9
9		9		9rc	t}|j|j}}ttD]
}||ttD](}|}||kr|||)dSr)rr9r*r8rr<rr.r9r5r-rs      rtest_big_queue_popleftz TestBasic.test_big_queue_popleft3sGGh	s		AF1IIIIs	'	'AAAvv  A&&&	'	'rct}|j|j}}ttD]
}||ttD](}|}||kr|||)dSr)rr;r5r8rr<rs      rtest_big_queue_poprightz!TestBasic.test_big_queue_popright>sGGlAEs		AF1IIIIs	'	'AAAvv  A&&&	'	'rc\t}|j|j}}ttD]
}||tttD](}|}||kr|||)|t|ddSNr)rr9r5r8rr:r<r>rs      rtest_big_stack_rightzTestBasic.test_big_stack_rightHsGGhs		AF1IIII%**%%	'	'AAAvv  A&&&Q#####rc\t}|j|j}}ttD]
}||tttD](}|}||kr|||)|t|ddSr)rr;r*r8rr:r<r>rs      rtest_big_stack_leftzTestBasic.test_big_stack_leftSsGGlAIs		AF1IIII%**%%	'	'AAAvv  A&&&Q#####rcttd}t|}|t|t||t|t|dS)Nr$)rr8assertNotEqualidr<r=rs   rtest_roundtrip_iter_initz"TestBasic.test_roundtrip_iter_init^sj%**!HHBqEE2a55)))a$q''*****rcttdttddfD]}ttjdzD]}tj||}tj|}|t|t||t|t|||j
|j
dS)Nr$rZrh)rr8pickleHIGHEST_PROTOCOLdumpsloadsrrr<r=rK)rr.r-rxrs     rtest_picklezTestBasic.test_pickledsuSzz""E%**c$:$::	5	5A62Q677
5
5LA&&LOO##BqEE2a55111  a$q''222  184444
5	5	5rctdtddfD]}||ttjdzD]}tjtj||}|t|t||	t|dt||	|j
|j
dS)NrErIrhrF)rr9r8r!r"r$r#rrr<rK)rr.r-rs    rtest_pickle_recursivezTestBasic.test_pickle_recursivemsuuUA.	5	5A
HHQKKK62Q677
5
5La!3!344##BqEE2a55111  AbEBqEE222  184444	
5	5	5rc\ttd}d|D}ttjdzD]}t	|}tj||f|}tj|\}}t|D]
\}}	|	||<|t|t||t||t|tj||f|}tj|\}}t|D]
\}}	|	||<|t|t||t||ddtdt|D]}t|tj||f|}tj|\}}t|D]
\}}	|	||<|t|t||t|g|
tt|tj||f|}tj|\}}t|D]
\}}	|	||<|t|t||t|gdS)Nr$cg|]}|dzS)g)\(?r
rs  rr/z2TestBasic.test_iterator_pickle.<locals>.<listcomp>xs%%%1$%%%rrh)rr8r!r"rRr#r$	enumerater<rr=nextr>rP
StopIteration)
rorigrprotoitorgdumprWr.r-rs
          rtest_iterator_picklezTestBasic.test_iterator_picklevsU3ZZ  %%%%%62Q677$	+$	+EJJE<
u55DL&&EB!$

1!T"XXtE{{333T"XXt,,,
KKK<
u55DL&&EB!$

1!T"XXtE{{333T"XXtABBx0001c$ii((

U<
u55DL&&EB!$

1!T"XXtE{{333T"XXr***
mT5999<
u55DL&&EB!$

1!T"XXtE{{333T"XXr****I$	+$	+rc~dg}t|g}tj|}|t	|t	|d|d<|t
|t
||t	|t	|dSNrHrOr)rcopydeepcopyr<r=rrrmutr.rs    r
test_deepcopyzTestBasic.test_deepcopysd3%LLM!a$q''***ABqEE2a55)))DGGT!WW-----rcLdg}t|g}tj|}|t|t|d|d<|t|t||t|t|t
dD]}t
ddD]}dt
|D}|dkrt|nt||}|}|||||j|j|tdt||DŌdS)	NrHrOrrsrFc4g|]}tjSr
r)r,rs  rr/z'TestBasic.test_copy.<locals>.<listcomp>s777V]__777rc3$K|]\}}||uVdSrr
)r,rrs   r	<genexpr>z&TestBasic.test_copy.<locals>.<genexpr>s*#A#Atq!AF#A#A#A#A#A#Ar)rr4r<r=rrr8rKrallr)rr7r.rr-rKrxs       r	test_copyzTestBasic.test_copysd3%LLIaLLa$q''***ABqEE2a55)))a$q''***q	C	CAA,,
C
C77eAhh777 &"E!HHH%62B2BFFHH  A&&&  18444#A#As1ayy#A#A#A A ABBBB

C	C	Crc~dg}t|g}|}|t|t|d|d<|t|t||t|t|dSr3)rr4r<r=rrr6s    rtest_copy_methodzTestBasic.test_copy_methodsd3%LL
FFHHa$q''***ABqEE2a55)))a$q''*****rc
dtdfD]Y}|ttt	|tt|ZdSNr)r8r<r=r:r)rrxs  r
test_reversedzTestBasic.test_reversedsg%++&	J	JAT(588"4"455tHQKK7H7HIIII	J	Jrc
$ttt}dtdfD]U}|t|t|tt|VdSrC)rr:rr8r<r=)rklassrxs   rtest_reversed_newzTestBasic.test_reversed_newsXegg&&''%++&	G	GAT%%a//22D!4E4EFFFF	G	Grcddl}t}tdD]&}|d|j'dS)NrrZrh)gcrr8r9collect)rrJr.r-s    rtest_gc_doesnt_blowupzTestBasic.test_gc_doesnt_blowupsS			
GGs		A
HHQKKKBJLLLL		rcGddt}tdD]}|}tj|}|dkrt	|dg}ntt	|dg}t
||_~~tj	|
|duddS)NceZdZdS),TestBasic.test_container_iterator.<locals>.CNrrrr
rrCrODrrQr^rrhzCycle was not collected)objectr8weakrefrefrr:rRrrJrKr)rrQr-objrU	containers      rtest_container_iteratorz!TestBasic.test_container_iterators								q
	F
	FA!##C+c""CAvv!3(OO		$UC8__55	OOCEYJLLLOOCCEETM+DEEEE
	F
	Frc,d}d}tjd|z}tjd|z}|t
t||j}|t||z|td||z|td|dz
z||z|td|z|d|zz|tdd|zz|d	|zzdS)
Nrt@z2P5n%dPPzP%dPPrrhr^*+)	rcalcvobjsizestructcalcsizer<rS
__sizeof__rcheck_sizeof)r
MAXFREEBLOCKSBLOCKLENbasesize	blocksizechecks      rtest_sizeofzTestBasic.test_sizeofs
'
](BCCOGh$677	**57733X>>>!
eggx)+,,,
eCjj(Y.///
eC8a<())8i+?@@@
eC(N##XI
%=>>>
eC2=)**HrI~,EFFFFFrN)6rrrrCrXr[rar{rrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrrr%r'r1r8r?rArErHrLrXrracpython_onlyrgr
rrr"r"s888&KKK.
'
'
',,,BDDD"(


444!!!(444
=
=
=999(,,,\---
)))
.
.
.,,,>1114
%
%
%$$$
3
3
33%3%3%j$$$ 111
&&&)))0@@@///999	B	B	B
9
9
9	'	'	''''	$	$	$	$	$	$+++555555'+'+'+R...CCC$+++JJJGGG
FFF 'LGGGGGrr"c eZdZdZdZdZdS)TestVariousIteratorArgscddtddtdddfD]2}tjtjtjtjtjtjfD]Q}|tt||t||R|tttj
||tttj||tttj|4dS)N123rcr)dog333333?rDirs)r8rSequenceIterFuncIterGenIterFuncStop	itermultiiterfuncr<r=rrPrvIterNextOnly
IterNoNextZeroDivisionError
IterGenExc)rrxrs   rtest_constructorz(TestVariousIteratorArgs.test_constructorsU4[[+uT$q7I7IJ	Q	QA()*<')?)9+=?
@
@  eAAaDDkk!2!2D1JJ????i	0Fq0I0IJJJi	0DQ0G0GHHH/	8LQ8O8OPPPP	Q	Qrctd}t|}||tt
|dS)Nabcdefg)rrRr5rPrr+rr.rWs   rtest_iter_with_altered_dataz3TestVariousIteratorArgs.test_iter_with_altered_datasE)
!WW	,b11111rct}t|}|d|tt
|dS)NrH)rrRr9rPrr+r{s   r!test_runtime_error_on_empty_dequez9TestVariousIteratorArgs.test_runtime_error_on_empty_dequesCGG
!WW	,b11111rN)rrrrxr|r~r
rrrjrjsDQQQ22222222rrjceZdZdS)DequeNrPr
rrrr
sDrrceZdZdZdS)DequeWithSlots)rr__dict__N)rrr	__slots__r
rrrrs&IIIrrceZdZdZdS)DequeWithBadIterctr)rvrs r__iter__zDequeWithBadIter.__iter__srNrrrrr
rrrrs#rrcLeZdZdZdZdZdZdZej	dZ
dS)TestSubclassc	ttdtdtddD]}|t	tddD]}||tttdd|tdfdtdD}||ttdd	|tttd	dfd
tdD}|	||ttdd|tttd	d
|tddS)Nr$r%r&rr'c8g|]}Sr
r)r+s  rr/z,TestSubclass.test_basics.<locals>.<listcomp>#r0rr1r2c8g|]}Sr
r4r+s  rr/z,TestSubclass.test_basics.<locals>.<listcomp>'r6rr7)rr8rr9r:r;r<r=r>r?r r@s    @rrCzTestSubclass.test_basicss%))	

5::sC		A
HHQKKKK%a..))		A
LLOOOOa$uT3'7'7"8"8999Q%%%0000U3ZZ000tE$OO44555a$uR~~"6"6777----%**---


U3__ 5 5666a$uR~~"6"6777				Q#####rc	ttfD]L}|d|ddfD]/}dg|_dg|_|}|t
|t
||t|t|||}|t
|t
||t|t|ttj
dzD]}tj||}tj|}|
t|t||t
|t
||t|t|||j|j||j|j|t!|d!1NdS)	NrErr]rJrzrhr)rrrr__copy__r<rr=r8r!r"r#r$rrassertFalsehasattr)rclsr.rr.rxs      rtest_copy_picklezTestSubclass.test_copy_pickle/s.(	6	6CSZZWQ!7!7!77
6
6eeJJLL  a$q''222  a$q''222CFF  a$q''222  a$q''222"6#:Q#>??66EQ..AQA''1r!uu555$$T!WWd1gg666$$T!WWd1gg666$$QS!#...$$QS!#...$$WQ__55556
6	6	6rc<ttjdzD]}tdtddfD]}||tjtj||}|t|t||	t|t||	|j|j|}|}|	t|t||	||||_
tjtj||}|	t|j
t|tdtddfD])}|t tj||*dS)NrhrErIr^)r8r!r"rr9r$r#rrr<rrKr5rrrPrv)rr.r.rddees      rr'z"TestSubclass.test_pickle_recursiveGs62Q677	E	EE5\\5??2
1
1La!7!788##BqEE2a55111  a$q''222  18444UUWWUUWW  BA///  A&&&La!7!788  AC"Q%%0000%e,,.>ua.H.HH
E
E!!)V\1eDDDD
E#	E	Erctd}tj|}|t	|t	|d}tj|tt|dS)Ngallahad)	rrTproxyr<strr
gc_collectrPReferenceError)rr.ps   rtest_weakrefzTestSubclass.test_weakref\sr*M!QQ(((.#q11111rclGddt}|gd}|gd}||kdS)NceZdZdZdS)-TestSubclass.test_strange_subclass.<locals>.Xc tgSr)rRrs rrz6TestSubclass.test_strange_subclass.<locals>.X.__iter__fs
BxxrNrr
rrXres#
 
 
 
 
 rrrn)r]rsr:r)rrd1d2s    rtest_strange_subclassz"TestSubclass.test_strange_subclassds]	 	 	 	 	 	 	 	 QwwwZZ
QwwwZZ
brcPGddt}|}d}||_|t5|dzdddn#1swxYwY|t5|tgdzddddS#1swxYwYdS)NceZdZdS)&TestSubclass.test_bug_31608.<locals>.XNrPr
rrrrqrRrrcdgS)Nr[r
)rrkwargss   rbad___new__z0TestSubclass.test_bug_31608.<locals>.bad___new__ts	4Krr[rn)r__new__rPrv)rrr.rs    rtest_bug_31608zTestSubclass.test_bug_31608msN								
ACC				


y
)
)		
FF															


y
)
)	!	!
iii    	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!s$AAA9BB"BN)rrrrCrr'rrrrhrr
rrrrs$$$,6660EEE*222
!!!!!rrceZdZddZdS)SubclassWithKwargsrhc.tj|dSr)rr)rnewargs  rrzSubclassWithKwargs.__init__~s
trN)rh)rrrrr
rrrr}s(rrceZdZdZdS)TestSubclassWithKwargsc&tddS)Nrh)r)rrs rtest_subclass_with_kwargsz0TestSubclassWithKwargs.test_subclass_with_kwargss!$$$$$$rN)rrrrr
rrrrs#%%%%%rrc*eZdZeZdZdZdZdZdS)TestSequencecdSrr
rs rrzTestSequence.test_getitemrcdSrr
rs r
test_getslicezTestSequence.test_getslicerrcdSrr
rs rtest_subscriptzTestSequence.test_subscriptrrc0|ddS)Nz-Exhausted deque iterator doesn't free a deque)skipTestrs rtest_free_after_iteratingz&TestSequence.test_free_after_iteratings

EFFFFFrN)	rrrr	type2testrrrrr
rrrrsZI








GGGGGrra

Example from the Library Reference:  Doc/lib/libcollections.tex

>>> from collections import deque
>>> d = deque('ghi')                 # make a new deque with three items
>>> for elem in d:                   # iterate over the deque's elements
...     print(elem.upper())
G
H
I
>>> d.append('j')                    # add a new entry to the right side
>>> d.appendleft('f')                # add a new entry to the left side
>>> d                                # show the representation of the deque
deque(['f', 'g', 'h', 'i', 'j'])
>>> d.pop()                          # return and remove the rightmost item
'j'
>>> d.popleft()                      # return and remove the leftmost item
'f'
>>> list(d)                          # list the contents of the deque
['g', 'h', 'i']
>>> d[0]                             # peek at leftmost item
'g'
>>> d[-1]                            # peek at rightmost item
'i'
>>> list(reversed(d))                # list the contents of a deque in reverse
['i', 'h', 'g']
>>> 'h' in d                         # search the deque
True
>>> d.extend('jkl')                  # add multiple elements at once
>>> d
deque(['g', 'h', 'i', 'j', 'k', 'l'])
>>> d.rotate(1)                      # right rotation
>>> d
deque(['l', 'g', 'h', 'i', 'j', 'k'])
>>> d.rotate(-1)                     # left rotation
>>> d
deque(['g', 'h', 'i', 'j', 'k', 'l'])
>>> deque(reversed(d))               # make a new deque in reverse order
deque(['l', 'k', 'j', 'i', 'h', 'g'])
>>> d.clear()                        # empty the deque
>>> d.pop()                          # cannot pop from an empty deque
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in -toplevel-
    d.pop()
IndexError: pop from an empty deque

>>> d.extendleft('abc')              # extendleft() reverses the input order
>>> d
deque(['c', 'b', 'a'])



>>> def delete_nth(d, n):
...     d.rotate(-n)
...     d.popleft()
...     d.rotate(n)
...
>>> d = deque('abcdef')
>>> delete_nth(d, 2)   # remove the entry at d[2]
>>> d
deque(['a', 'b', 'd', 'e', 'f'])



>>> def roundrobin(*iterables):
...     pending = deque(iter(i) for i in iterables)
...     while pending:
...         task = pending.popleft()
...         try:
...             yield next(task)
...         except StopIteration:
...             continue
...         pending.append(task)
...

>>> for value in roundrobin('abc', 'd', 'efgh'):
...     print(value)
...
a
d
e
b
f
c
g
h


>>> def maketree(iterable):
...     d = deque(iterable)
...     while len(d) > 1:
...         pair = [d.popleft(), d.popleft()]
...         d.append(pair)
...     return list(d)
...
>>> print(maketree('abcdefgh'))
[[[['a', 'b'], ['c', 'd']], [['e', 'f'], ['g', 'h']]]]


libreftestcR|tj|Sr)addTestdoctestDocTestSuite)loadertestspatterns   r
load_testsrs"	MM'&(()))Lr__main__)!collectionsrrunittesttestrrrJrTr4r!rr^rr
rrTestCaser"rjrrrrrr
CommonTestrr__test__rrmainr
rr<module>rs########				











UGUGUGUGUG!UGUGUGn22222h/2220					E			'''''U'''uc!c!c!c!c!8$c!c!c!L%%%%%X.%%%
GGGGG9'GGG*b
N
:&
zHMOOOOOr