python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_deque.cpython-312.pyc

͑eBddlmZddlZddlZddlmZmZddlZddlZddl	Z	ddl
Z
ddlZddlZdZ
dZGddZGdd	ZGd
dej"ZGdd
ej"ZGddeZGddeZGddeZGddej"ZGddeZGddej"ZGddej4ZdZdeiZdZedk(rej@yy) dequeN)support	seq_testsic#KtwN)SyntaxErrorC/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_deque.pyfailr
s
s	ceZdZdZy)BadCmpctr)RuntimeErrorselfothers  r__eq__z
BadCmp.__eq__srN__name__
__module____qualname__rr
rrrrsrrceZdZdZdZy)	MutateCmpc ||_||_yr)rresult)rrrs   r__init__zMutateCmp.__init__s
rcN|jj|jSr)rclearrrs  rrzMutateCmp.__eq__s

{{rN)rrrrrr
rrrrsrrcbeZdZdZdZdZdZdZdZdZ	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/Z1e2jfZ3e2jhd0Z5y1)2	TestBasicc	ttdd}|jtdtddD]}|j|t	tddD]}|j||j
t|ttdd|j
t|dtdDcgc]}|j}}|j
|ttdd	|j
t|ttd	dtdDcgc]}|j}}|j|j
|ttd
d|j
t|ttd	d
ycc}wcc}w)Niix8rX2)rrangerappendreversed
appendleftassertEquallistlenpopleftpopreverserdileftrights     rtest_basicszTestBasic.test_basics s]%u%&	

5:sC	A
HHQK	%a.)	A
LLO	a$uT3'7"89Q%%*3Z0		00tE$O45a$uR~"67"'*-Q--


U3_ 56a$uR~"671.sG	Gc
|jttdd|jttddtt	d}t|d}|jt
|g|jt|d|jt
|gd|j|tt	dd|jd|jt
|gd	|jd
|jt
|gd|jddg|jt
|gd|jd
d
g|jt
|gdtt	dd}|j||jt|dddtt	dd}|jt|dy)Nabc
maxlenzdeque([7, 8, 9], maxlen=3))	)rDrEr?rC)rEr?rFrDr$iz, 198, 199, [...]], maxlen=10)z%deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))assertRaises
ValueErrorriterr+r/r0reprr,r.extend
extendleftritr6s   rtest_maxlenzTestBasic.test_maxlen3s|*eUB7*eUB7
%)_"Qb2&a">?a),E%)Q/0	a*-	Qa),	"ba+.	aVa),%*R(	a(HI%)D)a"IJrcttd}t|d|jt	|gttd}td}|j||jt	|gttd}td}|j
||jt	|gy)NdrrA)rIr+rr/r0rKrLrMs   rtest_maxlen_zerozTestBasic.test_maxlen_zeroJs
%*

bb2&
%*
O	b2&
%*
O	Rb2&rc|jtjd|jtdjd|jtddjd|jtddjd|jtddjd|jt5td}d|_dddy#1swYyxYw)Nr<rArr?)r/rrBrGAttributeErrorrr6s  rtest_maxlen_attributezTestBasic.test_maxlen_attributeYs.u,,d3uQ/66:uQ/66:uQ/66:


~
.	eAAH			sC00C9c	ddddzdzfD]S}t|}t|}dD]6}|j|j||j||||f8U|j	t
j|j	t
|jddGd	d
}tdd|dg}|j	t|jdtgd}|j	t|j|Gd
d}|}tddd|ddg}||_|j	t|jdtdgdz}tt|D]}|jd|jd|j|jdd|j|jddy)Nabracadabra
simsalabimr<abcdefghijklmnopqrstuvwxyzrUceZdZdZy)(TestBasic.test_count.<locals>.BadComparectr)ArithmeticErrorrs  rrz/TestBasic.test_count.<locals>.BadCompare.__eq__ls%%rNrr
rr
BadCompareraks
&rrdr@r_rUr@ceZdZdZy)-TestBasic.test_count.<locals>.MutatingComparec8|jjy)NT)r6r3rs  rrz4TestBasic.test_count.<locals>.MutatingCompare.__eq__ss

rNrr
rrMutatingComparergrs
rrirTr=r)r0rr/countrG	TypeErrorrcr6rr+r1rotate)rsr6letterrdrimr7s        r
test_countzTestBasic.test_countcsm\#%5e%;<	SAQAaA6
S  !''&/Aq&>R
S	S
	
)QWW-)QWWa3	&	&
1aq)*/177A6)/177JLA		
1aAq!$%,3
4&)s1v	A
HHRL		Q'+rc	td}|j|tdtdtt|fD]}|j||k(t	|t	|k(xrt|t|k(|j||k7t	|t	|k(xrt|t|k(ttd}|D]}|D]}|j||k(t|t|k(||f|j||k7t|t|k7||f|j||kt|t|k||f|j||kt|t|k||f|j||kDt|t|kD||f|j||k\t|t|k\||fy)Nxabcr<ab)	rZabrubar<xbartcba)rr2r0r/typemap)rr6eargsxys      rtest_comparisonszTestBasic.test_comparisonss&M			U5\5;aA	OAQT47DG#3#HQa8HIQTtAwQ'7'LDGT!W<L#MN	O5QR	DA
D  aaDG);aUC  aaDG);aUC  aaDG);aUC  aaDG);aUC  aaDG);aUC  aaDG);aUC

D	Drcd}tt|}t|D]}|j||v|j|dz|vtt|}t|d||dz<|j	t
5||vdddtt|}t
||dz<|j	t
5||vdddy#1swYPxYw#1swYyxYw)Nr$r_FrU)rr+
assertTruerrGrr)rnr6r7s    r
test_containszTestBasic.test_containss%(Oq	$AOOAF#	$1Q'
%(OAu%!Q$


|
,	
F	
%(O(!Q$


|
,	
F		
				sCC+C(+C4cLGfdd}t||g|jt5dv}dddt||g|jt5jd}dddy#1swYPxYw#1swYyxYw)NceZdZfdZy)5TestBasic.test_contains_count_stop_crashes.<locals>.Ac0jtSr)r NotImplemented)rrr6s  rrz<TestBasic.test_contains_count_stop_crashes.<locals>.A.__eq__s	%%rNr)r6srArs
&rrr@)rrGrrl)rr_r6s   @r test_contains_count_stop_crashesz*TestBasic.test_contains_count_stop_crashess	&	&
13*


|
,	QA	13*


|
,	
A						sB3BBB#c0td}|jt|jd|jd|j	t|td|j||j	t|tdy)Nrvr_bcdabcdabcdabcd)rrGrmrKr/r0rWs  rtest_extendzTestBasic.test_extendsh#J)QXXq1	a$v,/	a$z"23rct}td}td}|j||zt|j||ztd|j||ztd|j||ztd|j||ztd|j||zt|j||ztd|j||ztdtdd}td}|j||ztd|jt5tddzdddy#1swYyxYw)	Nr<defabcdefabcabcrTrAghefgh)rr/assertIsNotrGrm)rr6r}fghs      rtest_addzTestBasic.test_adds3G%L%LQ(Qh0Qh0Qe-Qe-Q(Qe-Qe-(1%$KQf
.


y
)	!%L5 	!	!	!sE22E;ctd}|dz
}|jt|td||z
}|jt|tdy)Nrvrrr)rr/r0rWs  r	test_iaddzTestBasic.test_iaddsN#J	U
a$v,/	Qa$z"23rc
Htd}|jt|jd|jd|j	t|tt
d|j||j	t|tdt}|jtd|j	t|tt
td|jt|jty)Nrvr_rrabcddcba)
rrGrmrLr/r0r-r+r	r
rWs  rtest_extendleftzTestBasic.test_extendlefts#J)Q\\15	Ua$x'7"89	Qa$z"23G	U4[!a$xd'<"=>+q||TV<rcd}tt|}tt|}t|D]}|j|j	dtj
dkr"|j
||j
|tdt|z
t|D]}||||k(rJtd}|j|dd|j|ddt}|jt|jd|jt|jdy)	Nr$rg?r_supermanror=r)rr+r0r2r3randomr,r1r/rG
IndexError__getitem__)rrr6lr7js      rtest_getitemzTestBasic.test_getitems%(OqNq	$A
IIK
EE!H}}$1SV8SV,
$tqt|#
$
	$
*1s#2$G*ammQ7*ammR8rc
vdD]"}tt|}t|D]#}|j|j||%|j	t
5|j|dzdddtt|}t
|d||dz<|j	t5|j|dddtt|}t||dz<|j	t5|j|ddd%d}d}t|dz}t|dz}tdt|dzz
dt|dzzD]r}tdt|dzz
dt|dzzD]C}|dzD]9}		|j|	||}
|j|j|	|||
;Etttd	d
d}tdD]9}|jd
d}|j||d
|j;y#1swYxYw#1swYxYw#1swYgxYw#t
$rB|j	t
5|j|	||dddn#1swYnxYwYwxYw)N)r_rU(r$r_FrU	ABCDEFGHIZrjri'r?rQi4!i)rr+r/indexrGrHrrrr0r1rn)rrr6r7elements
nonelementrostartstopelementtargetsteps            r
test_indexzTestBasic.test_indexs"	AeAhA1X
0  Q/
0"":.
!
eAhA5)AadG""<0


eAhAhAadG""<0



%	,
(Q,A2Aq=!c!fqj.9		PEb3q6!8mQQ!^<
P'#~PGP!"%!>
((%)FOP
P		P
%5"%&#J	Dc"AQqT4(
HHJ		C





&:!..z::GGGUD9::::sN!I9II ,I-I	I	 I*	-J8	J(	J8	(J1-J8	7J8	ctd}|jt5|jddd}dddy#1swYyxYw)NAAAzHello worldrrT)rrGrHr)rr6r7s   rtest_index_bug_24913zTestBasic.test_index_bug_24913&s@'N


z
*	-
q!,A	-	-	-s	>Acd}tdt|dzz
dt|dzzD]W}td}td}|j	|d|j	|d|jt||Yy)NrrrUrjr)r+r1rr0insertr/)rrr7r6ros     rtest_insertzTestBasic.test_insert+s|rCM!O+QX1B-BC	)Ak"A[!A
HHQ
HHQT!Wa(	)rcd}t|t|}|jt5|j	dddddd}tt|t|D]`}t|t|dz}|j	|d|dk\r|j
||dI|j
||dz
dby#1swYxYw)NABCrArUrr_rr)rr1rGrrr+r/)rdatar6rr7s     rtest_insert_bug_26194zTestBasic.test_insert_bug_261945s$s4y)


z
*	
HHQ	H
~s8}5	.Ahs8}Q7A
HHQAv  1s+  1Q3-
	.			sCCc<dD]F}t}||z}|j|t|j|jHdD]K}td}||z}|j|td|z|j|jMdD]W}tdd}||z}|j|tdt	|dz|j|jdYdD]K}td}||z}|j|td|z|j|jMdD]P}tdd}||z}|j|td|zdd|j|jdRy)N)r=rr_rUr?rrv)
rr=rr_rUr?ir]irr]ri)rr/assertIsNonerBmin)rrr6s   r	test_imulzTestBasic.test_imulDs-	(AA
FAQ(ahh'		(.	(Ac
A
FAQcAg/ahh'		(=	,Ac3A
FAQcC3K&7 89QXXs+		,.	(AhA
FAQhl 34ahh'		(=	,Ah$A
FAQx!|TU&; <=QXXs+		,rctd}|j|dzt|j|dzt|j|dztd|j|dztd|j|dztd|j|dz||jtdzt|jtdzt|jtd	zt|jd|zt|jd|zt|jd|ztd|jd|ztd|jd|ztdtdd	
}|j|dzt|j|dzt|j|dztd|j|dztd|j|dztdy)
Nr<rrr_rUrr@	abcabcabcrjrAbcabcr)rr/rrWs  rtest_mulzTestBasic.test_mulcs%LR)Q(Qe-Qh0Qk 23Q"1eg.1eg.1eg.a)Q(Qe-Qh0Qk 23%"R)Q(Qe-Qg/Rw0rcjd}tt|}t|D]
}d|z||<|jt|t|Dcgc]}d|z	c}t|}td|z
ddD]}d|z||<d|z||<|jt||ycc}w)Nr$r?r_rr=rC)rr+r/r0)rrr6r7rs     rtest_setitemzTestBasic.test_setitem}s%(Oq	A6AaD	aq":A2a4":;GqsAr"	AQ3AaDQ3AaD		
a!$#;sB0
cd}tt|}|jt|j|dz
|jt|j|t|D]u}|jt
|||z
tjt
|t
|}||}|j||||=|j||w|jt
|dy)Nr]r_r)rr+rGr__delitem__r/r1r	randrangeassertInassertNotIn)rrr6r7rvals      rtest_delitemzTestBasic.test_delitems%(O*ammaRT:*ammQ7q	%ASVQqS)  #a&#a&1AA$CMM#q!!S!$
	%	
Q#rcd}t|Dcgc]}tj}}t|D]}t|d|}|j}|j	t|tt
|d||j|d|j|j	t||d||jtjdycc}w)Nr]r_)
r+rrr4r/r0r-assertIsrGrm)rrr7rr6rs      rtest_reversezTestBasic.test_reverses).q2A

22q	0Ad2AhA		AT!Wd8D!H+=&>?MM!T"
IIKT!Wd2Ah/
	0	
)QYY23sC-ctd}t|}t|}|jd|j	dj|dt|}|jd|j	dj|d|j|j	t||t
|dzD]}t|}t|}|j|t
|D]}|jd|j	t|t||j||j	t|||j||z
|j	t||t
|dzD]}t|}t|}|j|t
|D]}|jd|j	t|t||j||j	t|||j||z
|j	t||t|}t|}|jtdz|j}t
tdzD]	}||j	t|t||jt|jd	|jt|jdd
t}|j|j	|ty)Nabcder_rZeabcdr=bcdear@rr?)
tupler1rrnr/joinr+BIGrGrm)rrorr6r7r}rdrs        rtest_rotatezTestBasic.test_rotates'NF!H	W-!H	W-	
q1%qs
	*AaAaA
HHQK1X

U1XuQx0
HHaRLU1Xq)
HHQqSMU1Xq)
	*qs
	*AaAaA
HHaRL1X

U1XuQx0
HHQKU1Xq)
HHQqSMU1Xq)
	*
!H!H	R
XXs2v	AD	q58,)QXXs3)QXXq"5G	
EG$rcxtd}|jt|d|j|jt|d|j	|jt|d|jt|j|jt|d|jd|jt|d|jd|jt|d|j|jt|dy)NrurUr_rcr6)
rr/r1r2r3rGrr,r.r rWs  rtest_lenzTestBasic.test_lens$KQ#			Q#	Q#*aee,Q#	
Q#	SQ#		Q#rct}|jt|j|jt|jyr)rrGrr3r2rWs  rtest_underflowzTestBasic.test_underflows1G*aee,*aii0rcDttd}|jt|d|j	|jt|d|jt|g|j	|jt|gy)NrQr)rr+r/r1r r0rWs  r
test_clearzTestBasic.test_clearsr%*Q%		Q#a"%		a"%rctd}|jd|j|td|jd|j|td|jt|jd|j|tdtddtdg}t|}|jt|jdt||D]\}}|j||udD]f}tdg}|jt||dg|jt|jd|j|thy)	Nabcdefghcijr
abdefghcij	abdefghijrvrw)TFru)rremover/rGrHrrziprrKrr)rr6r}rrmatchs      rtest_removezTestBasic.test_removes2- 	
E,/0	
E+./*ahh4E+./
3VXs+,!H,#61I	$DAqOOAF#	$
#	)Etf
A
HHi5)3/0j!((C8Q(		)rcttd}tt|}|j	t|t||j
||j	t|dddy)Nr$iz7, 198, 199, [...]]))rr+evalrJr/r0r,rr6r}s   r	test_reprzTestBasic.test_reprs[%*aMa$q'*	a(>?rct|jttddd|jttdy)Nr<rUr@r_)rGrmrrs r	test_initzTestBasic.test_inits*)UE1a8)UA.rcL|jtttdy)Nr<)rGrmhashrrs r	test_hashzTestBasic.test_hashs)T5<8rc
`dD]}tt|}|j|j}}t|tD]/}|||}|||z
k7s|j|||z
1|jt
|t
tt|z
tyN)rr_rUrQr)rr+r,r2rr/r0rsizer6r,r3r7rs       r#test_long_steadystate_queue_popleftz-TestBasic.test_long_steadystate_queue_poplefts(	BDeDk"A((AIICF4%
0q	ED=$$Q$/	
0

T!Wd5T3+?&@A	Brc
dD]}ttt|}|j|j}}t|t
D]/}|||}|||z
k7s|j
|||z
1|j
ttt|ttt
|z
t
yr)rr-r+r.r3rr/r0rs       r$test_long_steadystate_queue_poprightz.TestBasic.test_long_steadystate_queue_popright's(		9DhuT{+,A,,CF4%
0q	ED=$$Q$/	
0

T(47"34!%D#"67
9		9rc	t}|j|j}}ttD]
}||ttD]!}|}||k7s|j||#yr)rr,r2r+rr/rr6r,r3r7rs      rtest_big_queue_popleftz TestBasic.test_big_queue_popleft3shGhh		s	A1I	s	'AAAv  A&	'rct}|j|j}}ttD]
}||ttD]!}|}||k7s|j||#yr)rr.r3r+rr/rs      rtest_big_queue_poprightz!TestBasic.test_big_queue_popright>seGllAEEs	A1I	s	'AAAv  A&	'rc.t}|j|j}}ttD]
}||tttD]!}|}||k7s|j
||#|j
t|dyNr)rr,r3r+rr-r/r1rs      rtest_big_stack_rightzTestBasic.test_big_stack_rightHsGhhs	A1I	%*%	'AAAv  A&	'	
Q#rc.t}|j|j}}ttD]
}||tttD]!}|}||k7s|j
||#|j
t|dyr)rr.r2r+rr-r/r1rs      rtest_big_stack_leftzTestBasic.test_big_stack_leftSsGllAIIs	A1I	%*%	'AAAv  A&	'	
Q#rcttd}t|}|jt|t||j	t|t|y)Nr$)rr+assertNotEqualidr/r0rs   rtest_roundtrip_iter_initz"TestBasic.test_roundtrip_iter_init^sI%*!HBqE2a5)a$q'*rcttdttddfD]}ttjdzD]}tj||}tj
|}|j
t|t||jt|t||j|j|jy)Nr$rQr_)rr+pickleHIGHEST_PROTOCOLdumpsloadsrrr/r0rB)rr6r7ror}s     rtest_picklezTestBasic.test_pickledsuSz"E%*c$::	5A622Q67
5LLA&LLO##BqE2a51  a$q'2  1884
5	5rctdtddfD]}|j|ttjdzD]}tj
tj||}|jt|t||jt|dt||j|j|jy)Nr<r@r_r=)rr,r+rrrrrrr/rB)rr6r7r}s    rtest_pickle_recursivezTestBasic.test_pickle_recursivemsuuUA.	5A
HHQK622Q67
5LLa!34##BqE2a51  AbEBqE2  1884	
5	5rcttd}|Dcgc]}|dz	}}ttjdzD]x}t	|}tj
||f|}tj|\}}t|D]
\}}	|	||<|jt|t||jt||t|tj
||f|}tj|\}}t|D]
\}}	|	||<|jt|t||jt||ddtdt|D]
}t|tj
||f|}tj|\}}t|D]
\}}	|	||<|jt|t||jt|g|jtt|tj
||f|}tj|\}}t|D]
\}}	|	||<|jt|t||jt|g{ycc}w)Nr$g)\(?r_)rr+rrrIrr	enumerater/r{r0nextr1rG
StopIteration)
rorigr7rprotoitorgdumprNr6rs
          rtest_iterator_picklezTestBasic.test_iterator_picklevscU3Z  $%1$%%622Q67$	+EJE<<
u5DLL&EB!$
1!
T"XtE{3T"Xt,
K<<
u5DLL&EB!$
1!
T"XtE{3T"XtABx01c$i(
U
<<
u5DLL&EB!$
1!
T"XtE{3T"Xr*
mT59<<
u5DLL&EB!$
1!
T"XtE{3T"Xr*I$	+&sKc.dg}t|g}tj|}|jt	|t	|d|d<|jt
|t
||jt	|t	|yNr?rFr)rcopydeepcopyr/r0rrrmutr6r}s    r
test_deepcopyzTestBasic.test_deepcopyssd3%LMM!a$q'*ABqE2a5)DGT!W-rcdg}t|g}tj|}|jt|t|d|d<|j	t|t||jt|t|t
dD]}t
ddD]}t
|Dcgc]}tj}}|dk(rt|nt||}|j}|j|||j|j|j|jtdt||Dycc}w)Nr?rFrrjr=c3*K|]\}}||u
ywrr
).0rrs   r	<genexpr>z&TestBasic.test_copy.<locals>.<genexpr>s#Atq!AF#As)rr&r/r0rrr+rrBrallr)rr)r6r}r7rBrros        r	test_copyzTestBasic.test_copys&d3%LIIaLa$q'*ABqE2a5)a$q'*q	CAA,
C.3Ah7V]]_77 &"E!H%62BFFH  A&  1884#As1ay#A AB

C	C7sE1c$dg}t|g}|j}|jt|t|d|d<|j	t|t||jt|t|yr%)rr&r/r0rrr(s    rtest_copy_methodzTestBasic.test_copy_methodspd3%L
FFHa$q'*ABqE2a5)a$q'*rc
dtdfD]A}|jttt	|tt|CyNr)r+r/r0r-r)rros  r
test_reversedzTestBasic.test_reversedsC%+&	JAT(58"45tHQK7HI	Jrc
ttt}dtdfD]>}|j	t|t|tt|@yr5)r{r-rr+r/r0)rklassros   rtest_reversed_newzTestBasic.test_reversed_newsSXeg&'%+&	GAT%a/2D!4EF	Grcddl}t}tdD]$}|jd|j&y)NrrQr_)gcrr+r,collect)rr<r6r7s    rtest_gc_doesnt_blowupzTestBasic.test_gc_doesnt_blowups7
Gs	A
HHQKBJJL	rcJGddt}tdD]}|}tj|}|dk(rt	|dg}ntt	|dg}t
||_~~tj|j|dudy)NceZdZy),TestBasic.test_container_iterator.<locals>.CNrrrr
rrCrArrCrUrr_zCycle was not collected)objectr+weakrefrefrr-rIrr<r=r)rrCr7objrG	containers      rtest_container_iteratorz!TestBasic.test_container_iterators		q
	FA#C++c"CAv!3(O	$UC8_5	OCEYJJLOOCETM+DE
	Frcd}d}tjd|z}tjd|z}|j	t
j
t||j}|t||z|td||z|td|dz
z||z|td|z|d|zz|tdd|zz|d	|zzy)
Nrk@z2P5n%dPPzP%dPPrvr_rU*+)	rcalcvobjsizestructcalcsizer/rE
__sizeof__rcheck_sizeof)r
MAXFREEBLOCKSBLOCKLENbasesize	blocksizechecks      rtest_sizeofzTestBasic.test_sizeofs
''
](BCOOGh$67	**573X>!!
egx)+,
eCj(Y./
eC8a<()8i+?@
eC(N#XI
%=>
eC2=)*HrI~,EFrN)6rrrr:rOrRrXrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr	rrrrrr#r*r1r3r7r:r>rJrrScpython_onlyrYr
rrr"r"s 8&K.
',BD"(
4!(4
=9(,\-
)
.,>14
%$
33%j$ 1
&)0@/9	B
9	''	$	$+55'+R.C$+JG
F ''LGGrr"ceZdZdZdZdZy)TestVariousIteratorArgscddtddtdddfD]'}tjtjtjtj
tjtjfD];}|jtt||t||=|jtttj||jtttj||jtttj |*y)N123rZr)dog333333?r6irj)r+rSequenceIterFuncIterGenIterFuncStop	itermultiiterfuncr/r0rrGrmIterNextOnly
IterNoNextZeroDivisionError
IterGenExc)rrors   rtest_constructorz(TestVariousIteratorArgs.test_constructorsU4[+uT$q7IJ	QA(()*<*<'')?)?))9+=+=?
@  eAaDk!2D1J?
@
i	0F0Fq0IJi	0D0DQ0GH/	8L8LQ8OP	Qrctd}t|}|j|jtt
|y)Nabcdefg)rrIr3rGrrrr6rNs   rtest_iter_with_altered_dataz3TestVariousIteratorArgs.test_iter_with_altered_datas0)
!W	,b1rct}t|}|jd|jtt
|y)Nr?)rrIr,rGrrrms   r!test_runtime_error_on_empty_dequez9TestVariousIteratorArgs.test_runtime_error_on_empty_deques/G
!W	,b1rN)rrrrjrnrpr
rrr\r\sQ22rr\ceZdZy)DequeNrBr
rrrrrr
srrrceZdZdZy)DequeWithSlots)rr__dict__N)rrr	__slots__r
rrrtrts&IrrtceZdZdZy)DequeWithBadIterctr)rmrs r__iter__zDequeWithBadIter.__iter__srNrrrrzr
rrrxrxsrrxcNeZdZdZdZdZdZdZejdZ
y)TestSubclassc	ttd}|jtdtddD]}|j|t	tddD]}|j||j
t|ttdd|j
t|dtdDcgc]}|j}}|j
|ttdd|j
t|ttddtdDcgc]}|j}}|j|j
|ttd	d|j
t|ttdd	|j|j
t|dycc}wcc}w)
Nr$r%r&rr'r(r)r*)
rrr+rr,r-r.r/r0r1r2r3r4r r5s     rr:zTestSubclass.test_basicssw%)	

5:sC	A
HHQK	%a.)	A
LLO	a$uT3'7"89Q%%*3Z0		00tE$O45a$uR~"67"'*-Q--


U3_ 56a$uR~"67		Q#1.sG3G8c	ttfD]}|d|ddfD]}dg|_dg|_|j	}|jt
|t
||jt|t|||}|jt
|t
||jt|t|ttjdzD]}tj||}tj|}|jt|t||jt
|t
||jt|t||j|j|j|j|j|j|jt!|dy)	Nr<rrTrArzr_r)rrrtrr__copy__r/r{r0r+rrrrrrassertFalsehasattr)rclsr6r}r ros      rtest_copy_picklezTestSubclass.test_copy_pickle/s.(	6CZWQ!77
6eeJJL  a$q'2  a$q'2F  a$q'2  a$q'2"6#:#:Q#>?6EQ.AQA''1r!u5$$T!Wd1g6$$T!Wd1g6$$QSS!##.$$QSS!##.$$WQ_56
6	6rcttjdzD]}tdtddfD]_}|j	|tj
tj||}|jt|t||jt|t||j|j|j|j}|j}|jt|t||j||||_
tj
tj||}|jt|jt|btdtddfD](}|jt tj||*y)Nr_r<r@rU)r+rrrrr,rrrrr/r{rBr3rrxrGrm)rr r6r}ddees      rrz"TestSubclass.test_pickle_recursiveGsd622Q67	EE5\5?2
1LLa!78##BqE2a51  a$q'2  1884UUWUUW  BA/  A&LLa!78  ACC"Q%0
1 &e,.>ua.HH
E!!)V\\1eD
E#	Erctd}tj|}|jt	|t	|d}tj|jtt|y)Ngallahad)	rrFproxyr/strr
gc_collectrGReferenceError)rr6ps   rtest_weakrefzTestSubclass.test_weakref\sU*MM!QQ(.#q1rcTGddt}|gd}|gd}||k(y)NceZdZdZy)-TestSubclass.test_strange_subclass.<locals>.XctgSr)rIrs rrzz6TestSubclass.test_strange_subclass.<locals>.X.__iter__fsBxrNr{r
rrXres
 rrre)rTrjr,r)rrd1d2s    rtest_strange_subclassz"TestSubclass.test_strange_subclassds)	 	 wZ
wZ
brcGddt}|}d}||_|jt5|dzddd|jt5|tgdzdddy#1swY8xYw#1swYyxYw)NceZdZy)&TestSubclass.test_bug_31608.<locals>.XNrBr
rrrrqrDrrcdgS)NrMr
)rr~kwargss   rbad___new__z0TestSubclass.test_bug_31608.<locals>.bad___new__ts	4KrrMre)r__new__rGrm)rrr6rs    rtest_bug_31608zTestSubclass.test_bug_31608ms		
C		


y
)	
F	


y
)	!
i  	!	!			!	!sA3A?3A<?BN)rrrr:rrrrrrZrr
rrr}r}s6$,60E*2
!!rr}ceZdZddZy)SubclassWithKwargsc.tj|yr)rr)rnewargs  rrzSubclassWithKwargs.__init__~s
trN)r_)rrrrr
rrrr}srrceZdZdZy)TestSubclassWithKwargsctdy)Nr_)r)rrs rtest_subclass_with_kwargsz0TestSubclassWithKwargs.test_subclass_with_kwargss
!$rN)rrrrr
rrrrs%rrc(eZdZeZdZdZdZdZy)TestSequencecyrr
rs rrzTestSequence.test_getitemrcyrr
rs r
test_getslicezTestSequence.test_getslicerrcyrr
rs rtest_subscriptzTestSequence.test_subscriptrrc&|jdy)Nz-Exhausted deque iterator doesn't free a deque)skipTestrs rtest_free_after_iteratingz&TestSequence.test_free_after_iteratings

EFrN)	rrrr	type2testrrrrr
rrrrsI


Grra

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']]]]


libreftestcL|jtj|Sr)addTestdoctestDocTestSuite)loadertestspatterns   r
load_testsrs	MM'&&()Lr__main__)!collectionsrrunittesttestrrr<rFr&rrrPrr
rrTestCaser"r\rrrtrxr}rr
CommonTestrr__test__rrmainr
rr<module>rs	#	


UG!!UGn2h//20	E	'U'uc!8$$c!L%X..%
G9''G*b
N
:&
zHMMOr