python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_itertools.cpython-312.opt-2.pyc

ΑeS
ddlZddlZddlmZddlmZddlddlZddlm	Z	ddl
mZddlZddl
Z
ddlZddlZddlmZddlZddlZddlZddlZddlZdZej0Zed	z
Zd
ZdZdZd
ZdZdZ dZ!dZ"GddZ#dZ$dZ%dZ&dZ'dZ(dZ)e*ejVd	zDcgc]}|fd	c}Z,GddejZZ.GddejZZ/Gdd ejZZ0Gd!d"ejZZ1d#Z2Gd$d%Z3Gd&d'Z4Gd(d)Z5Gd*d+Z6Gd,d-Z7Gd.d/Z8Gd0d1Z9Gd2d3Z:d4Z;Gd5d6ejZZ<Gd7d8ejZZ=Gd9d:ejZZ>Gd;d<ejZZ?ejGd=d>ejZZAd?ZBeCd@k(rejyycc}w)AN)support)threading_helper)*)Decimal)Fraction)reducec	fd}|S)Nc|jt5|dddtj5tjdt|dddtj5tjdt|jtttf5|ddddddy#1swYxYw#1swYxYw#1swY*xYw#1swYyxYw)Nignore)categoryerror)assertWarnsDeprecationWarningwarningscatch_warningssimplefilterassertRaisesAssertionErrorSystemError)selftestfuncs G/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_itertools.pyinnerz pickle_deprecated.<locals>.inners


0
1	TN	

$
$
&	!!(5GHTN	
$
$
&	!!'4FG""$6#TU

						


		s:	C$C<<C68	C*C6CC'*C3	/C66C?)rrs` rpickle_deprecatedrs
	Lc$tt|SN)listzipargss rlzipr$*sT
rc	d|zSNrxs roneargr*-s#Q3Jrc	tr)
ValueErrorr"s rerrfuncr-1s(
rc#$K	dD]}|yw)Nrrr'r)is rgen3r15s%
c	|dzdk(S)Nr'rrr(s risEvenr4:Q36Mrc	|dzdk(SNr'rrr(s risOddr8>r5rc|Srrr"s rtupleizer:BsKrc#4Kt|D]}|ywrrange)nr0s  riranger?Es
1XceZdZ	dZdZy)StopNowc|Srrrs r__iter__zStopNow.__iter__Krctr
StopIterationrDs r__next__zStopNow.__next__MrN__name__
__module____qualname__rErJrrrrBrBIs(rrBc.	tt||Sr)r islice)r>seqs  rtakerSPsNsArc8ttj|dSNr)roperatormuliterables rprodrZTs(,,!,,rc4	ttd|dzSrU)rZr=)r>s rfactr\Wsa1
rc|dSNrrrs rtestRra\Q4Krc|dSr&rr_s rtestR2rd_rbrc|dkS)N
rr(s rundertenrgbsR4KrcTtjtj||Sr)pickleloadsdumps)sprotos  r<lambda>rnesV\\!U5K(LrceZdZd=dZedZdZdZdZedZ	edZ
ed	Zejd
ZejddZed
ZejdZejddZedZejdZejddZdZedZedZedZdZedZedZedZedZdZ edZ!dZ"ejdedZ#d Z$ejdd!Z%ed"Z&d#Z'd$Z(d%Z)d&Z*ejd'Z+ejdd(Z,ed)Z-ed*Z.ed+Z/d,Z0ed-Z1ed.Z2ed/Z3ed0Z4ed1Z5ed2Z6d3Z7d4Z8e9jtd5Z;d6Z<ejzd7Z>ejzd8Z?ejzd9Z@ejzd:ZAejzd;ZBejzd<ZCy)>TestBasicOpsNc	dfd	tj||}tj|}|jt	|t	|||}	}|j||	|r|}
|j||
tj|}d}	t|D]}
t
||dz
}	tj||}tj|}||}	}|j||	|r||d}
|j||
yy#t$rYywxYw)Nrc|dkDrtdt|tr|S	tt	|}|Dcgc]}||dzc}S#t
$r|cYSwxYwcc}w)Nrfzinfinite recursion encounteredr)RuntimeError
isinstancestrr rQ	TypeError)itr0leexpandstops    rrzz'TestBasicOps.pickletest.<locals>.expandlsp2v"#CDD"c"	
D)*-..qF1acN..
	
.sAA%A"!A"rr)rirkrjassertEqualtyper=nextrI)rprotocolrwr{rScomparedumpi2abci3tookr0i4rzs   `           @r
pickletestzTestBasicOps.pickletestjs:W
	/||B)
\\$
b48,bz6":1AwAQ"\\$
	4[
R	

||B)
\\$
bz6":1Awtu~&AQ"
		s0 D??	E
Ec
z|jtttdgd|jtttdgdtt
ttfD]N}|jttt|tdtt|gdP|jttdgd|jttgg|jttdgdg|jtttddd|jtt|jtttd	|jtttd
gggd}|jtt|tgd|jtt|tgd
|jtt|tjgd|jt5tt|tdddtt j"d
zD]L}|j%|ttd|j%|ttddN|jttgddgd|jttgddgd|jttgddg|jt5ttddgddddy#1swY&xYw#1swYyxYw)Nrf)
rrrf$-rXabc)rabrrr(r)
r'	rrrrrr)
r'r'r'r'r'rrrrr)
r'rrrrrrrrr)
r'iirrrrr)initial)rfrr)rfrrd)rnst)r}r 
accumulater=intcomplexrrmaprrvminmaxrVrWchrriHIGHEST_PROTOCOLr)rtyprlrms    rtest_accumulatezTestBasicOps.test_accumulatesjr34>	@j%)<=>	@(2	FCZCr 345SBCD
F	F	
j/02DEjn-r2j!o.4)ZrAqA)Z0)Z59=)T:q"g+>?*jC017	9jC017	9jHLL9:?	A


y
)	%As#$	%622Q67	EEOOE:eBi#89OOE:eBi#CD	E	
jTBC\RjSABDXYjS9:SEB


y
)	,RHc*+	,	,	%	%	,	,s&N$N1$N.1N:c
&|jttddgd|jttddgd|jttddgd|jt5ttdddd|jt5ttdddddd|jt5ttddddd|jt5ttddddd|jt
5ttdd	ddd|jt
5ttdd
dddd}t
ddD]t
t|D]}|d|}tt|}|j||
5|jdjt|||jtd|D|ra|j}|jtfd|D|jt|k|j|dddy#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYZxYw#1swYBxYw)NABCDEFGr))ABC)DEFGr')rrrr)rrrr))r)r)r)r)r)rrhellorABCDEFGHIJKLMNOPQRSTUVWXYZr)rlr>batchesc3>K|]}t|tuywr)r~tuple).0batchs  r	<genexpr>z,TestBasicOps.test_batched.<locals>.<genexpr>s'RUu(<'Rsc3:K|]}t|k(ywrlen)rrr>s  rrz,TestBasicOps.test_batched.<locals>.<genexpr>s+QCJ!O+Qs)r}r batchedrrvr,r=rsubTestjoinchain
assertTrueallpopappend)rdatar0rlr
last_batchr>s      @rtest_batchedzTestBasicOps.test_batchedsgi34G	Igi34I	Kgi34T	V

y
)	%#$	%


y
)	.At,-	.


y
)	#q!"	#


y
)	.G,-	.


z
*	(A&'	(


z
*	)B'(	),q!	3A3t9%

3!Hwq!}-\\AG\<
3$$RWWUG_%=qAOOC'R''R$RS%,[[]
+Q+Q(QRJ1(<=z2
3
3

3	3	%	%	.	.	#	#	.	.	(	(	)	)
3
3sUJ8>K2K%KK,K9?B,L8KKKK),K69LLc
d}t|fD]}|jt|ddtd|jt|dtd|jt|dg|jtd|ddtd|j	t
t|dd	y)
Nc72K	|D]
}|D]}|ywrr)	iterablesrwelements   rchain2z'TestBasicOps.test_chain.<locals>.chain2s,-
"!"G!M"
"srdefabcdefrrabcdr'r)rr}r rSrrv)rrrs   r
test_chainzTestBasicOps.test_chains	"	7AT!E5/2DNCT!E(^T%[9T!B%["-T!Que_5tF|Dia1g6	7rc
|jttjddgtd|jttjdgtd|jttjdgg|jt	dtjddgtd|jtttjddg|jtttjttd	dd
dgy)Nrrrrrrr'rrrr)
r}r r
from_iterablerSrrvrQrepeatr=rDs rtest_chain_from_iterablez%TestBasicOps.test_chain_from_iterablese115%.ABDNSe115':;T%[Ie112$78"=a!4!4eU^!DEtF|T)T5+>+>1v+FGfU%8%8a9I%JANORSUVQWXrctjgtzD]}tdd}|j	t||td|j	t
|d|j	t||td|j	t|tdg|j	td|tddtd|jtt
|td	d
ttjdzD])}|j|tddtd+y)
Nrrrrbcdefrrrr'rrr)copydeepcopy
picklecopiersrr}r rrSrrvr=rirr)roperrwrms    rtest_chain_reduciblez!TestBasicOps.test_chain_reducibles]]Om3	BDue$BT$r(^T(^<T"Xs+T$r(^T'];T$uRy/2B7T!T%u*=%>?fNitE!QK/@A	B622Q67	PEOOE5#6XOO	Prc|jttjd|jttjg|jttjd|jttjgf|jttjt	ggft}|jt	ddgf|jt
|gdt}|jt	ddgt	dgf|jt
|gdy)Nrrrr)rrrdryfghi)rrrrrryr)rrvr__setstate__iterr}r rrws  rtest_chain_setstatez TestBasicOps.test_chain_setstates)UW%9%92>)UW%9%92>)UW%9%91=)UW%9%9B5A)UW%9%9DHb>J
W
uen-/0b#AB
W
uen-tUG}=>b#HIrc
|jttd|jttddd|jttd|jttdddgtzD]}|jt
|tddg|jt
|tddgdtdd}t||jt
||gd	|jt
|ttd
dgdttd
d}t||jt
||gd
d}d}d}tdD]8}t|Dcgc]
}d|zdz
c}
t|dzD]}t
t
|}	|jt|	||kDrdn%t|t|zt||z
z|jt|	tt|	|j|	t|	|	D]}
|jt|
||jtt|
||jt
|
t|
|jt
fd|
D|jt
|

Dcgc]	}||
vs|c}|j|	t
|
||j|	t
|
||j|	t
|
|ttj dzD]}|j#|t
| ;ycc}wcc}w)Nrr'rc|Srrrs rrnz0TestBasicOps.test_combinations.<locals>.<lambda>Ar ABCDrrrrrrrrrr)rrrrrrrr/rrrrr'rrr'r)rrrc3|K	t|t}||kDrytt|}tfd|D	t	t|D]}||||z|z
k7sny||xxdz
cc<t|dz|D]}||dz
dz||<tfd|Dpw)Nc3(K|]	}|ywrrrr0pools  rrzHTestBasicOps.test_combinations.<locals>.combinations1.<locals>.<genexpr>/1AQ1rc3(K|]	}|ywrrrs  rrzHTestBasicOps.test_combinations.<locals>.combinations1.<locals>.<genexpr>95DG5rrrr r=reversed)rYr`r>indicesr0jrs      @r
combinations1z5TestBasicOps.test_combinations.<locals>.combinations1(s3?DD	A1u58nG1111!%(+AqzQUQY.
a
qsA2A!(1!1GAJ25W555s
A.B<2A
B<c3K	t|t}tt||D]0}t	|t|k(stfd|D2yw)Nc3(K|]	}|ywrrrs  rrzHTestBasicOps.test_combinations.<locals>.combinations2.<locals>.<genexpr>A9AQ9r)rrpermutationsr=sortedr rYr`r>rrs    @r
combinations2z5TestBasicOps.test_combinations.<locals>.combinations2;sW3?DD	A'a!4
:'?d7m39999
:AA$A$c3K	t|t}tt||D]0}tt	||k(stfd|D2yw)Nc3(K|]	}|ywrrrs  rrzHTestBasicOps.test_combinations.<locals>.combinations3.<locals>.<genexpr>Irr)rrcombinations_with_replacementr=setrs    @r
combinations3z5TestBasicOps.test_combinations.<locals>.combinations3CsX,?DD	A8q1E
:s7|$)9999
:rrrrc3&K|]}|v
ywrrrryvaluess  rrz1TestBasicOps.test_combinations.<locals>.<genexpr>V'?V'?)rrvcombinationsr,rr}r rr=rr\rrrrrirr)roptestIntermediater	rrr>r)r`resultrryrmrs             @rtest_combinationszTestBasicOps.test_combinationssG)\59)\5!Q?)\48*lE2>,.	:BT"\%%<"=>CT"\&!%<"=>_
a+FA6!"T"%5"67T
V
T"\%(A%>"?@A
C+E!Ha8!"T"%5"678
:	:"	6&	:	:q	DA&+Ah/ac"f/F1Q3Z
Dl6156  V1Q3aDGd1g<MPTUVWXUXPY<YZ  Vc#f+.>?  8DA$$SVQ/$$SQ[!4$$T!WfQi8OOC'?Q'?$?@$$T!W17%BA16a%BDD  mFA.F)GH  mFA.F)GH  mFA.F)GH"6#:#:Q#>?DEOOE<+BCD!
D	D/&Cs3O	O$(O$c||jttf5tdddddy#1swYyxYw)NAAi )r
OverflowErrorMemoryErrorrrDs rtest_combinations_overflowz'TestBasicOps.test_combinations_overflow`s4



{;
<	&u%	&	&	&
2;z"tuple reuse is specific to CPythonc|jtttttddd|j
ttttttdddyNabcderr)r}rrridrassertNotEqualr rDs rtest_combinations_tuple_reusez*TestBasicOps.test_combinations_tuple_reusefWSRgq)A!BCDaHCCDgq1I,J$K LMqQrct}|jt|d|jt|ddd|jt|d|jt|dddgtzD]c}|jt
||ddgd|dd}t||jt
||gded	}d
}d}tdD]a}t|Dcgc]
}d
|zdz
c}t|dzD]-}	t
||	}
|jt|
|||	|jt|
tt|
|j|
t|
t
t|	}|dk(s|	dkr|j|
|n&|jt|
t|k\|
D]}|jt||	t|D
cgc]\}
}|
	}}
}|jt|tt||jt
|t||jtfd|D|j|Dcgc]	}||vs|c}|j|
t
||	|j|
t
||	tt j"dzD]}|j%|||	0dycc}wcc}}
wcc}w)Nrr'rrc|Srrrs rrnzATestBasicOps.test_combinations_with_replacement.<locals>.<lambda>srrABC)rrrrrrrrr)rrr3rr4c3K	t|t}|s|rydg|z}tfd|D	tt|D]}|||dz
k7sny||dzg||z
z||dtfd|DPw)Nrc3(K|]	}|ywrrrs  rrzPTestBasicOps.test_combinations_with_replacement.<locals>.cwr1.<locals>.<genexpr>rrrc3(K|]	}|ywrrrs  rrzPTestBasicOps.test_combinations_with_replacement.<locals>.cwr1.<locals>.<genexpr>rr)rrrr=)rYr`r>rr0rs     @rcwr1z=TestBasicOps.test_combinations_with_replacement.<locals>.cwr1|s3?DD	AcAgG1111!%(+AqzQU*&qzA~.!a%85W555sAB
 -B
c3K	t|t}tt||D]0}t	|t|k(stfd|D2yw)Nrc3(K|]	}|ywrrrs  rrzPTestBasicOps.test_combinations_with_replacement.<locals>.cwr2.<locals>.<genexpr>rr)rrproductr=rr rs    @rcwr2z=TestBasicOps.test_combinations_with_replacement.<locals>.cwr2sW3?DD	A"58A6
:'?d7m39999
:sAA%A%cj|s|rdSdSt||zdz
t|zt|dz
zSNrr)r\)r>r`s  rnumcombszATestBasicOps.test_combinations_with_replacement.<locals>.numcombss:q$1$!A;a($qs)33rrrrrc3&K|]}|v
ywrrrs  rrzBTestBasicOps.test_combinations_with_replacement.<locals>.<genexpr>rr)rrrvr,rr}r rr=rrrrrgroupbyrrirr)rcwrrrr8r=r@r>r)r`r 
regular_combsrkvnorunsryrmrs                  @r"test_combinations_with_replacementz/TestBasicOps.test_combinations_with_replacementks+)S%0)S%A6)S$/*c5"5,.	VBT"S]"34_
a"5!}!"T"%5"67T
V	V	6$	:	4
q	:A&+Ah/ac"f/F1Q3Z
:c&!n-  Vhq!n=  Vc#f+.>?  8 $\&!%< =
6Q!V$$V];OOCK3}3E$EFDA$$SVQ/+21:6CAaa6F6$$S[#c&k2BC$$T!WfQi8OOC'?Q'?$?@$$V17%BA16a%BD
D  d61o)>?  d61o)>?"6#:#:Q#>?:EOOE3va=9:1
:	:/ 7
&Cs=M#M6	MMc||jttf5tdddddy#1swYyxYw)Nr#@)rr$r%rrDs r+test_combinations_with_replacement_overflowz8TestBasicOps.test_combinations_with_replacement_overflows4



{;
<	7)$6	7	7	7r'ct}|jttt	t
|ddd|j
ttt	t
t|dddyr))rr}rrrr+r,r )rrCs  r.test_combinations_with_replacement_tuple_reusez;TestBasicOps.test_combinations_with_replacement_tuple_reusesZ+SRWa!9:;Q?CCDWa,A$B CDaHrc	|jtt|jttddd|jttd|jttdd|j	ttddg|jttdd|j	ttt
ddgddd	}dd
}t
dD]}t
|Dcgc]
}d|zd
z
c}	t
|dzD]}tt	|}|j	t|||kDrdnt|t||z
z|j	t|tt||j	|t||D]d}|j	t|||j	tt|||jt	fd|Df|j	|t|	||j	|t|	|||k(rI|j	|tt	d|j	|tt	t
tjdzD]}|j|t	| 	ycc}w)Nrr'rrrrlr)rrrr'rrrr')r'r)r'rc3K	t|t}||n|}||kDrytt|}tt||z
dz|dzddd}tfd|d|D|rt	t|D]f}||xxdzcc<||dk(r||dzd|||dzz||d||z
||<5||}||||c||<||<tfd|d|Dny|ryyw)Nrrc3(K|]	}|ywrrrs  rrzHTestBasicOps.test_permutations.<locals>.permutations1.<locals>.<genexpr>s5AQ5rrc3(K|]	}|ywrrrs  rrzHTestBasicOps.test_permutations.<locals>.permutations1.<locals>.<genexpr>s#ADG#Arr)rYr`r>rcyclesr0rrs       @r
permutations1z5TestBasicOps.test_permutations.<locals>.permutations1s,3?DD	AYAA1u58nG%!Aqs+,TrT2F5!555!%(+A1INIayA~&-acdmga!n&D$%Eq	"1I291"+wqz/
GQBK##AWRa[#AAAsC7C=;C=c3K	t|t}||n|}tt||D]0}tt	||k(stfd|D2yw)Nr:c3(K|]	}|ywrrrs  rrzHTestBasicOps.test_permutations.<locals>.permutations2.<locals>.<genexpr>rr)rrr<r=rrs    @r
permutations2z5TestBasicOps.test_permutations.<locals>.permutations2sc3?DD	AYAA"58A6
:s7|$)9999
:sAA+A+rrrrc3&K|]}|v
ywrrrs  rrz1TestBasicOps.test_permutations.<locals>.<genexpr>rrr)rrvr
r,r}r r=rr\rrrrrirr)
rrWrZr>r)r`r prmrs
         @rtest_permutationszTestBasicOps.test_permutationssl)\2)\5!Q?)\48*lE2>l5"56;)\5#>l58Q78+U	W	0	:q	DA&+Ah/ac"f/F1Q3Z
Dl6156  V1Q3aDGd1Q3i<OP  Vc#f+.>?  8AA$$SVQ/$$SQ[!4OOC'?Q'?$?@A  mFA.F)GH  mFA.F)GH6$$VT,vt2L-MN$$VT,v2F-GH"6#:#:Q#>?DEOOE<+BCD
D	D/sK?c||jttf5tdddddy#1swYyxYw)NrrJ)rr$r%r
rDs rtest_permutations_overflowz'TestBasicOps.test_permutations_overflows4



{;
<	%e$	%	%	%r'c|jtttttddd|j
ttttttdddyr))r}rrrr+r
r,r rDs rtest_permutations_tuple_reusez*TestBasicOps.test_permutations_tuple_reuse	r.rc
tdD]g}dd|}tdD]P}tt||}tt||}tt	||}tt||}|j
t|||z|j
t||r,t||zdz
t|zt|dz
zn||j
t|||kDrdnt|t||z
z|j
t|||kDrdn%t|t|zt||z
z|j
|tt||j
|tt||j
|tt||j
|tt||j
||Dcgc]}t|t|k(s|c}|j
||Dcgc]}tt||k(s|c}|j
||Dcgc]}t|t|k(s|c}|j
||Dcgc]}tt||k(s|c}|j
|ttt|j||j
|ttt|j||j
|tt|t|zSjycc}wcc}wcc}wcc}w)Nrrrr:rr)
r=r r<rr
rr}rr\rrfilter__contains__)	rr>rlr`rZrCpermcombts	         rtest_combinatoricszTestBasicOps.test_combinatoricssq	EA"1
A1X
EGAa018A>?LA./LA./  TAqD1  SQRD1QK$q',A4!9,L]^Y^`  T1A$q'D1I:MN  T1A$q'DG:KdSTUVSVi:WX  vc$i'89  fSX&67  vc$i'89  vc$i'89  $&MQ&)T!W:Lq&MN  4'Ja3s1v;>'JK  4'Na6!9d1g;M'NO  3'Ia#c!f+q.'IJ  tF3s83H3H$,O'PQ  tF3t93I3I3,O'PQ  vc#hT.B'CD3
E	E*'N'J'N'Is0M8M89M=M=1NN)NNc,|jttdgdtd|jttdgdtd|jttdgdtd|jttdgdtd|jttdgdtd	|jttd
gdtdd
}tj	tt
d|}tj	td}|jtt||gd|z|jttdt
d|jttt
dd|jttt
d|jttt
ddddgtzD]}dgdddfdgdddfdgdddfdgdd	dfd
gdddffD]\}}}}|jt|t||t||jt|t||t|t||}|st||jt||t|y)NABCDEFrrrrrr)r	selectorsACEF)rrrrrrr)rrrrrrrrrACr1)rrrrrrBC'rrOrrrc,tj|Sr)rrs rrnz,TestBasicOps.test_compress.<locals>.<lambda>AsDIIaLrc,tj|Sr)rrrs rrnz,TestBasicOps.test_compress.<locals>.<lambda>As4==3CrCEFBCDEFr)r}r compressrrrr=rrvrr)rr>rrlrresult1result2rs        r
test_compresszTestBasicOps.test_compress/sthH
NOQUV\Q]^hx?@$v,Ohx?@$r(Khx?@$x.Qhx9:DJGhum<=tDzJ""6%(A#67''v7	htY78'A+F)XtU1X>)XuQx>)XuQx8)XuQx>)*CD}T	PB=&%8="b1=(G<7D#.
tS16

P1i'  bty)Q&R!SUYZaUbc  b$	)B&C!Dd7mT#+D)#< )*$$T"-=*>%?gO

P	Prc
|jtdtgd|jtdtdgd|jtdtdtdddg|jtdt	dtdd	d
g|jtdt	dtddd
g|jttddd|jttd|jtdttdz
tttdz
tdz|jtdttdz
tttdz
tdz|jtdtdgd|jtdtdgd|jtdttdtdtdtdg|jtdttddtddtddtddgddz}|jtdt|||dz|dzgtd}|jt|dt||jt|dtd}|jt|dt||jt|d |jttd!d"|jttd#d$|jtttd#tt jdz
t jdzd%dd&dt jdz
t jdzfD]9}tt|}d'j#|}|j||;ddtdz
tdzfD]}t|}|jtt%j$|||jtt%j&||tt(j*dzD]}|j-|t|tdtdzt!j.y)(Nrrrrrrr'r)rrrr)rrr'rrr)rr)rr)rr)rrrrrfr
@)rg@g@
@)ry@@1.1z2.1z3.1rrzcount(3)zcount(4)z	count(-9)ig$@zcount(10.25)g$@zcount(10.0)r	count(%r))r}r$countrSr!rrvmaxsizer r=rrreprrr~floatsys__mod__rrrirrexc_info)rBIGINTrr0r1r2valuerms        r
test_countzTestBasicOps.test_countQseEG,.LMeE!H-/MNaeE!H!5688LMaU59!56H8MNaU59!56I8NO)UAq!4)UC0b%	"23eGAIwqy9:	<b%
"34eWHQJ
;<	>at-/ABaw02MNawu~!67!%.'%.'%.I	Kax1~!67"1a.(1a.(1a.I	KDav/&&(F1H1MN!Ha*-Qa*-"Ia+.Qa"%eEl+^<eDk*M:d5;/0%8;;,q.3;;,q.#r1b#++a-QTQ\Q\]^Q^_	%AeAhB$$Q'BR$		%GAIwqy0	5EeAT$))A,/7T$--"23U;v66:;
5uU|4
5		5	aS\\^rc
|jtdtddgd|jtdtddgd|jtdtdgd|jttd	d
|jtdtddgd|jtdtdd
gd|jtdtddgd|jtdttdz
dtdttdz
tdzd|jtdttdz
dtdttdz
tdzd|jtdtdtdzttdddtdzzztdz|jtdtddgd|jtdtddgd|jtdttdtdtdtdtdg|jtdttddtd
dtddtddtddgd
dz}|jtdt|d|d|zg|jttdtdd tgd!tdd}|jt|d"t||jt|d#td$d}|jt|d%t||jt|d%td$d&}|jt|d't||jt|d(|jt|d(|jttd)dd*|jttd)d
d+|jttd)d,d-|jttdd,d.tdd,}|jtt|t|jtt|tt jdz
t jdzd/dddt jdz
t jdzfD]}t jdz
t jdzd/ddd
dt jdz
t jdzf	D]z}tt||}|d
k(rd0|z}n	d1|d2|d3}|j||tt"j$d
zD]}|j'|t|| |y)4Nrr'r)rr')rr)rr)startstepr)r)r})rr)rrrrr)r)rr'rr)r)rr)rrrrrrfrg?)r'rg@r)r'ry!@ rz.1z1.2z1.3rrrg@)rfg)@g.@zcount(3, 5)zcount(8, 5)rzcount(-9, 0)rz
count(-9, -3)zcount(-12, -3)g%@zcount(10.5, 1.25)zcount(10.5)g?zcount(10.5, 1.0)zcount(10, 1.0)rrzcount(z, ))r}r$rrrvrSrr=r rrrrr~rrrrirr)rrrr0rrrrms        rtest_count_with_stridez#TestBasicOps.test_count_with_strides(eE!AJ/1OPeEq$9:7	9eErN39	;)UC5eE!AJ/1OPeE!AJ/1OPeE!AJ/1OPb%
A"67b%PR
T[\_T_abBc9deb%Q"78$r5'RTV]U]^aUacdCe:fgar719!56eB1gai=(8'!)DE	Gaq$0.Aaq'!235IJawu~wt}!EF!%.'%.'%.I	Kax!}hqm!DE"1Q-"R(2b/J	LDaF!34q&!F(6KLd1eBn56=M8NO!QKa-0Qa-0"aLa.1Qa.1"bMa/2Qa"23a"23eD$/02EFeD!n-}=eD$/02DEeBo.0@A"cNd1g,d1g.;;,q.3;;,q.#r1b#++a-QTQ\Q\]^Q^_
	8A|A~|A~sB1b#++VW-Y\YdYdefYfg	
8%1+&6%/B./2B  R("6#:#:Q#>?8EOOE5A;78	
8
	8rc
|jtdtdtd|jttdg|j	t
t|j	t
td|jtt
ttdgdy)Nrfr
abcabcabcarr)
rrr'rrr'rrr'r)r}rScycler rrvrQr1rDs r
test_cyclezTestBasicOps.test_cyclesb%,/l1CDeBi"-)U+)UA.fU46]2679NOrcbtd}|jt|d|jtdt	j
|t
dttjdzD]}|jtdtjtj||t
dt||jtdtjtj||t
dt|t|ttjdzD]}|j|tdttjdzD]}td}t|}tdDcgc]
}t|}}tj||}tj|}|jtd	|t
d
td}t|}tdDcgc]
}t|}}tj||}tj|}|jtd	|t
d
ycc}wcc}w)Nrrrf
bcabcabcabr
cabcabcabcr*r'rcdeabcdeabcdeabcdeabr)rr}rrSrrr r=rirrjrkrr)rrrmrwr0_r\rs        rtest_cycle_copy_picklez#TestBasicOps.test_cycle_copy_pickles
%La#&	
b$--"23T,5GH622Q67	ET"fll6<<53I&JK!,/
1GT"fll6<<53I&JK!,/
1GG	622Q67	1EOOE5<0	1622Q67	HEgBb	A"'(+Qa+A+Q&AQAT"a[$/E*FGgBb	A"'(+Qa+A+Q&AQAT"a[$/E*FG	H,,s8J'?J,cgd}|D]5}tj|}|jtd|gd7y)N)sHcitertools
cycle
(c__builtin__
iter
((lI1
aI2
aI3
atRI1
btR((lI1
aI0
tb.s?citertools
cycle
(c__builtin__
iter
(](KKKetRKbtR(]KaKtb.s>citertools
cycle
c__builtin__
iter
](KKKeRKbR]KaKb.s;citertools
cycle
cbuiltins
iter
](KKKeRKbR]KaKb.sH=	itertoolscyclebuiltinsiter](KKKeRKbR]KaKb.sHcitertools
cycle
(c__builtin__
iter
((lp0
I1
aI2
aI3
atRI1
btR(g0
I1
tb.s?citertools
cycle
(c__builtin__
iter
(]q(KKKetRKbtR(hKtb.s>citertools
cycle
c__builtin__
iter
]q(KKKeRKbRhKb.s;citertools
cycle
cbuiltins
iter
]q(KKKeRKbRhKb.sG<	itertoolscyclebuiltinsiter](KKKeRKbRhKb.sIcitertools
cycle
(c__builtin__
iter
((lI1
aI2
aI3
atRI1
btR((lI1
aI00
tb.sAcitertools
cycle
(c__builtin__
iter
(](KKKetRKbtR(]KaI00
tb.s=citertools
cycle
c__builtin__
iter
](KKKeRKbR]Kab.s:citertools
cycle
cbuiltins
iter
](KKKeRKbR]Kab.sG<	itertoolscyclebuiltinsiter](KKKeRKbR]Kab.sIcitertools
cycle
(c__builtin__
iter
((lp0
I1
aI2
aI3
atRI1
btR(g0
I01
tb.sAcitertools
cycle
(c__builtin__
iter
(]q(KKKetRKbtR(hI01
tb.s=citertools
cycle
c__builtin__
iter
]q(KKKeRKbRhb.s:citertools
cycle
cbuiltins
iter
]q(KKKeRKbRhb.sF;	itertoolscyclebuiltinsiter](KKKeRKbRhb.rf)
r'rrr'rrr'rrr')rirjr}rS)r	testcasesrgrws    rtest_cycle_unpickle_compatz'TestBasicOps.test_cycle_unpickle_compats@
	4	KAaBT"b\+IJ	Krctd}|jtddf|jt	d|tdtd}|jtddf|jt	d|td|jt5tdjtddgddd|jt5td}|jtddfdddt	d||jt5tdjtddfddd|jttd	jd
|jttd	jgfy#1swYxYw#1swYxYw#1swYwxYw)Ndefgrrrdefgabcdefgabcdefgababcdefgrr)rr)rrr r}rSrrvr)rrs  rtest_cycle_setstatez TestBasicOps.test_cycle_setstates
&M	UQ'(b!d+A&BC
&M	Y+,b!d+A&BC

y
)	=&M&&Y';<	=

y
)	/f
A
NNE&M1-.	/	
R

y
)	?&M&&Y'=>	?	
)U2Y%;%;R@)U2Y%;%;bUC	=	=	/	/	?	?s$.&G1(G&GGGG'cv|jgttg|jgttgt|j	t
ttdg|j	t
td|j	t
tdddgd}g}t|dD]2\}}|D](}|j||d|j
|*4|j||ttjdzD]}g}tjtjt|t|D]2\}}|D](}|j||d|j
|*4|j||g}t|tD]_\}}t|tD]G\}}|D]=}|j||d|j||d	|j
|?Ia|j||ttjdzD]}g}tjtjt|t|D]\}}tjtjt|t|D]G\}}|D]=}|j||d|j||d	|j
|?I|j||t|tDcgc]\}}|	}	}}t|D
cgc]}
|
d	c}
}|jt|	||jt|	t|tt!d
td}t|t}t#|\}
}t#|\}
}t#|\}
}|jt|g|jt|g|jt#|dt||jt|gttjdzD]x}t|t}t#|\}
}t#|t#||jttjtj||gzd
}tt%|Dcgc]\}}|	}
}}|j|
gdtt%|Dcgc]\}}tt'|dd	s| }
}}|j|
gdtt%|Dcgc]\}}tt||f}
}}|j|
gdt%tt%|Dcgc]\}}tt||fc}}ddd}
|j|
gdGddt(dfd	}dtfd}|j	||d|j	||dGfdd}||dg}|j	||t|j	||fdd_|j	|dgd_|j	|ddgycc}}wcc}
wcc}}wcc}}wcc}}wcc}}w)Nkeyrc|Srrr(s rrnz+TestBasicOps.test_groupby.<locals>.<lambda>2arrf))rrfr)rr)rrr)r
r)r)r'rr)rr)rrrc|dSr^rr_s rrnz+TestBasicOps.test_groupby.<locals>.<lambda>8s
!rrrr'	AABBBAAAAr)rrabracadabra)rrrrr`)rrr`)rrr'r)rr)rrr'r`T)reverser)rrrceZdZy)0TestBasicOps.test_groupby.<locals>.ExpectedErrorNrMrNrOrrr
ExpectedErrorrsrrc38Kt|D]}dw)Nyor<)r>r0rs  r
delayed_raisez0TestBasicOps.test_groupby.<locals>.delayed_raises%1X


scXt||Dcgc]
\}}||c}}Scc}}wr)rB)rYkeypfuncrEgs     rgulpz'TestBasicOps.test_groupby.<locals>.gulps%(/$(?@1DG@@@s&ceZdZfdZy)+TestBasicOps.test_groupby.<locals>.DummyCmpcrr)rdstrs  r__eq__z2TestBasicOps.test_groupby.<locals>.DummyCmp.__eq__s	##rN)rMrNrOr)rsrDummyCmprs
$rr)rcTjdkDrxjdzc_|Sr?)skip)objrkeyfuncs rrz*TestBasicOps.test_groupby.<locals>.keyfuncs(||a!
##rr|)r}r rBr+rrvrr=rirrjrkrardrrr!rrrQ	Exceptionr)rrlduprErelemrmikigkeysr`expectedkeysrwrg1g2g3rrrrrs                    @@rtest_groupbyzTestBasicOps.test_groupby+sN	
T'"+./T'"""567)T75"+=>)Wd3)WeZD
.A}-	!DAq
!  DG,

4 
!	!	
C 622Q67	%ECV\\'!U2CU%KL
%1%D$$QQ0JJt$%
%
Q$
	%Au%	%DAq!!V,
%B%D$$QQ0$$Ra1JJt$%
%	%	
C 622Q67	%ECV\\'!U2CU%KL
)1$ll6<<68JE+RS)FB ")((DG4((T!W5

4())
)
Q$	%&a/0da00!,QAaD,-TL1TC$56
[%(+,
Q
R2R2R2b2&b2&b8,Rb2&622Q67	MEE"B8DAqHHT&,,v||Au/E"FGL	M
"6!9-.41aQ..56"6!9-E41afQqm1DQEEO,+26!9+=>41ac$q'lA
>>NO76!93EF41aSa\A&FPTUVXWXY:;	I		 !%4	A	
-}Q/?@-}Q/?@	$	$ZT*	
-qr:-q1	$-vw?-d|WE]1,6
/
F
?Gs*8\\!\#\):\), \/? \5
c<|jtttt	dgd|jttdgdddg|jttt
gdddg|jt
dtttgd|jtt|jttd|jttd	t	dd
|jtttd|jtttt	dt	dgd}ttt	d}|jttj||ttt	d}|jttj||t	tjdzD]}ttt	d}|jttjtj |||t||jttjtj |||ddt	tjdzD]-}ttt	d}|j#||/y)Nr)rr'rrrrr'rrr'r)rr'rrc|Srrr(s rrnz*TestBasicOps.test_filter.<locals>.<lambda>arc|Srrr(s rrnz*TestBasicOps.test_filter.<locals>.<lambda>rrrr)r}r rcr4r=boolrSrrrvrrrrirrjrkrransrrms    rtest_filterzTestBasicOps.test_filters$fVU1X67AfT;781Q%@fT;781Q%@a!899E)V,)VZ8)VZq1E)VVQ7)T6%(E!H+EF658$diil+S1658$dmmA./5622Q67	REvuQx(AT&,,v||Au/E"FGMGT&,,v||Au/E"FGQRQ		R
622Q67	&EvuQx(AOOE1%	&rc
||jtttt	dgd|jttdgdgd|jttt
gdgd|jt
dtttgd|jtt|jttd|jttdt	dd	|jtttd
|jtttt	dt	dt	tjdzD]+}|j|ttt	d-y)Nrrrrrrrr)rrrrc|Srrr(s rrnz/TestBasicOps.test_filterfalse.<locals>.<lambda>1rc|Srrr(s rrnz/TestBasicOps.test_filterfalse.<locals>.<lambda>rrrrr)r}r filterfalser4r=rrSrrrvrrirrrrms  rtest_filterfalsezTestBasicOps.test_filterfalses%k&%(;<gFk$<=wGk$<=wGaVUW!=>	J)[1)[*=)[*eAhJ)[&!<)T;uQxq+JK622Q67	BEOOE;vuQx#@A	Brc
FtdtDcgc]	\}}||f}}}|j|gd|jttdt	dtdt	d|jttdt	dtdt	d|jt
dtdttdt	d|jttdtd|jttt|jttd|jttt	dd|jtddDcgc]}tt|c}tdd|jtddDcgc]}|c}tddycc}}wcc}wcc}w)Nrr|rrrr)
r!rr}r r=r$rSrrvr)rr)yrpairs     rtest_zipzTestBasicOps.test_zips!$U57!34A!u44<=c%q23T%q5JKc(E!H56XuQx8PQaHeg 67ha9QRc(m,d8n=cedf-)S!,)S%(A6E58IJ%T
+JeU+	-3ue+<=4$=eU+	-5K=sH1H7	Hcxttttdd}|j	t|t
|tttttdd}|j	ttj|t|tjtdtDcgc]	\}}||f}}}|j	|gdtjtdtDcgc]	\}}||f}}}|j	|gdttjdzD]e}tj tj"tdt|Dcgc]	\}}||f}}}|j	|gdgttjdzD]r}tdt}t%|tj tj"||Dcgc]	\}}||f}}}|j	|ddgtttjdzD]&}|j'|tdt(ycc}}wcc}}wcc}}wcc}}w)Nrrr|rr~r)r rr+r!r}rrrdictfromkeysrrrr=rirrjrkrr)ridsr)rrrmrs       rtest_zip_tuple_reusez!TestBasicOps.test_zip_tuple_reuses+3r3ue,-.S3s8,3r4E5 1234T]]3/0#c(;"&3uUW+=!>?A!u??<=!%s5/A!BCA!uCC<=622Q67	BE%+\\&,,s5?QSX2Y%Z[TQAa5[C[S"@A	B622Q67	8E"51!"%+\\&,,?OQV2W%XYTQAa5YCYS8X"67		8622Q67	8EOOE3ueg#67	8!@D\ZsJ$$J*&J07J6cdtdgtddgtdtddtddgtdtdtddtd	td
gtdtdtddtd	td
tdgfD]}tttt|Dcgc].}t	|Dcgc]}|t|kr||ndc}0}}}|jt
t|||jt
t|ii||Dcgc]}t	d|D}}|jt
t|itd
||jtdtdtt
tdtd|jt
tt
t|jt
tgt
tg|jt
tdt
td|jt
tdiit
tt
ddgzd|jttd|jtttdddD]4}	t|tt!|j#d|z6|jtddDcgc]}t	t
|c}t
tdd|jtddDcgc]}|c}t
tddycc}wcc}}wcc}w#t$rYwxYwcc}wcc}w)Nrrri4iiriic34K|]}|duxrdxs|yw)NXr)rrys  rrz/TestBasicOps.test_ziplongest.<locals>.<genexpr>s!@Q$Y.33!3@r@r	fillvaluerrr)zzip_longest('abc', fv=1)z3zip_longest('abc', fillvalue=1, bogus_keyword=None)zDid not raise Type in:  r)rr)r=rrrrr}r zip_longestrrSrr!rrvevalglobalslocalsfail)rr#r0argtargetrgstmtrs        rtest_ziplongestzTestBasicOps.test_ziplongests5a!q5!teD.d40@AteAhd4(8%+uT{SteAhd4(8%+uT{TYZ[T\]	VD %SS$%89;N#q3s8|SV=NO;F;T+t"45v>T+t":r":;VDJPQQe@a@@QFQT+t"Ktc7J"KLfU	V	
aHeg >?c(TYZ[T\F]A^_km,d35k:k"o.SW
>k(34d3x=6IJk>2>?c$u+tf"4f=>	@)[!4)[%(A>
		=D
=T79fh/		4t;<		=	
E58QR%T
+Rc%/0	2;ue+DE4$Ec%/0	2?O;R(


SEs<O$O	OOO$ O3/	O8O$	O0/O0cXttttdd}|j	t|t
|tttttdd}|j	ttj|t|y)Nrr)
r rr+rr}rrrrr)rrs  rtest_zip_longest_tuple_reusez)TestBasicOps.test_zip_longest_tuple_reuse-sq3r;ue456S3s8,3r4E5 9:;<T]]3/0#c(;rc	*ttjdzD]t}|j|t	dd|j|t	dd|j|t	ddd|j|t	ddvy)Nrrrdefghrr)r=rirrrrs  rtest_zip_longest_picklingz&TestBasicOps.test_zip_longest_pickling4sw622Q67	=EOOE;ue#<=OOE;ug#>?OOE;ug#KLOOE;r7#;<		=rctGfdd}|jt5}t|ddd|jjy#1swY&xYw)NceZdZfdZy)?TestBasicOps.test_zip_longest_bad_iterable.<locals>.BadIterablecrr)r	exceptions rrEzHTestBasicOps.test_zip_longest_bad_iterable.<locals>.BadIterable.__iter__@srN)rMrNrOrE)rsrBadIterabler?s
 rr)rvrrassertIsr)rrcmrs   @rtest_zip_longest_bad_iterablez*TestBasicOps.test_zip_longest_bad_iterable<sYK		 	 

y
)	'R
&	'	


bllI.	'	'sA##A,cGdd}|ddt}|ddt}d}|j|||gd|ddt}|ddt}t||d	
}|jt	|d|jt	|d|jt	|d|jtt|y)NceZdZdZdZdZy),TestBasicOps.test_bug_7244.<locals>.Repeaterc@||_t||_||_yr)orrgry)rrrgrys    r__init__z5TestBasicOps.test_bug_7244.<locals>.Repeater.__init__LsQrc|SrrrDs rrEz5TestBasicOps.test_bug_7244.<locals>.Repeater.__iter__Prcz|jdkDr!|xjdzc_|jS|jr?)rgrryrDs rrJz5TestBasicOps.test_bug_7244.<locals>.Repeater.__next__Rs,66A:FFaKF66M&&LrNrMrNrOrrErJrrrRepeaterrJs


!rr#rrr'rcg}t||dD]C\}}tjd5t||fddd|j	||fE|S#1swY xYw)Nrrstdout)rrcaptured_outputprintr)rrr r0rs     rrunz'TestBasicOps.test_bug_7244.<locals>.run]shF#Ba8
&1,,X6"1a&M"

q!f%
&M""sAA"	)rRrRrRrPrrrR)rIr}rsrrr)rr#rrr(rws      r
test_bug_7244zTestBasicOps.test_bug_7244Hs
	!
	!"aM
*
aM
*		
R&BCaL
)
aM
*
R1
-b6*b6*b6*,b1rc||jttdg|jttdg|jttddgf|jttdgd|jtttdtt	tdtdd|jt5tddd|jt5td	d
ddd|jt5td	ddd|jt5tddddy#1swYxYw#1swYixYw#1swYKxYw#1swYyxYw)Nrrrrrr*)r+)rrrr)rryrqrrrfrX)r}r pairwiser=r!rrvrDs r
test_pairwisezTestBasicOps.test_pairwiseps_hrl+R0hsm,b1htn-)l	,	-hw/0N	PhuV}56c%-q&1ABC	E

y
)	J	


y
)	 UB	 


y
)	%e$	%


y
)	TN		
			 	 	%	%		s0=F%
F
F&9F2FF#&F/2F;cgdgfdgddgftdtdggdftdtdtdggftdtdtdggftdtdtdggffD]v\}}|jtt||td	D]B}|jtt||ztt|it	|
Dx|jttttdgdzd
|j
tttddd}d}dddtdtd	t	dddtdtdttdg	}tdD]}ttjdDcgc]}tj|}}ttt
|}	|jttt||	|jtt|t|||jtt|t||tt|}|jttt||	ycc}w)Nrrrrr'r)rrrOrPrQ)rrrRrrr:rric?Kttt||jddz}t	|}|dk(rdytd|Drydg|z}tdt
||D	tt|D]_}||t	||dz
k(r||xxdz
cc<t|dz|D]}d||<	tdt
||Dnyxw)Nrrrrc38K|]}t|dk(yw)rNr)rrs  rrz>TestBasicOps.test_product.<locals>.product1.<locals>.<genexpr>s4d3t9>4sc3,K|]\}}||ywrrrrr0s   rrz>TestBasicOps.test_product.<locals>.product1.<locals>.<genexpr>sCGD!QCc3,K|]\}}||ywrrr5s   rrz>TestBasicOps.test_product.<locals>.product1.<locals>.<genexpr>sKGD!QKr6)	r rrgetranyr!rr=)r#kwdspoolsr>rr0rs       rproduct1z+TestBasicOps.test_product.<locals>.product1sUD)*TXXh-BBEE
AAv4e44cAgGCs5'/BCCC!%(+	AqzSq]Q%66 AJ!OJ"1Q3]'%&
'Ks5'7JKKK	sC2C4c?K	ttt||jddz}gg}|D]}|Dcgc]}|D]}||gz
}}} |D]}t|ycc}}ww)Nrr)r rrr8)r#r:r;r rr)rrZs        rproduct2z+TestBasicOps.test_product.<locals>.product2s.UD)*TXXh-BBETF
?)/>A>A!QC%>%>>
?
"Dk!
"?s;A1A+ A1rrr)rrrrrrrr)r=r}r r<rrrrvrrrandom	randrangechoicerZrr)
rr#r r`r<r>argtypesr0rexpected_lens
          rtest_productzTestBasicOps.test_productsi
"JVff%&Aha
!#MNAha%(
+R0Aha%(
+R0Aha%(
+R0
	ILD&
T'4.16:1X
I  gQ&8!9!%gt&Ft1~&F!GI
I	I	
T'E!H:a<"89:DA)WeAh=	,	"r58U1Xta17J	NE"IuU2Y/?As	FA5:6;K;KA;N5OPFMM(+PDPC/LSgtn!56ET'4.14$3HIT'4.14$3HItT?DSgtn!56E	FPs Kc|jttf5tdgdzddidddy#1swYyxYw)Nrrri)rr$r%r<rDs rtest_product_overflowz"TestBasicOps.test_product_overflows=



{;
<	2tfTk151	2	2	2s5>c|jtttttddd|j
ttttttdddy)Nrrr)r}rrrr+r<r,r rDs rtest_product_tuple_reusez%TestBasicOps.test_product_tuple_reusesWSR)>!?@A1ECCD1F,G$H IJANrc
fgdgfdgddgftdtdggdftdtdtdggftdtdtdggftdtdtdggffD]\}}|jttjt	|||jttj
t	||ttjd	zD]}|j|t	|y)
Nrrrr0r'rr1rr)	r=r}r rr<rrirr)rr#r rms    rtest_product_picklingz"TestBasicOps.test_product_picklings"JVff%&Aha
!#MNAha%(
+R0Aha%(
+R0Aha%(
+R0
	7LD&
T$))GTN";<fET$--"?@&Iv66:;
7w~6
7	7rctdd}|jd|jt|dtddd}|jd|j	t
t|y)NrR)r)rr'rr)rrrL)r<rr}rrrI)rr\s  rtest_product_issue_25021z%TestBasicOps.test_product_issue_25021s\
F4 	{#a&)FB%	~&-q1rc|jttddgd|jtt	dtdgd|jttddgd|jtdtdgd|jttddg|jttddg|j
tt|j
ttddd|j
ttddtd	}|jt|d
td	d}|jt|dt||jt|d
tdd}|jt|d|jtdtj|td|jtdtj|tdt	tjdzD]}|j|tdd!y)Nrr)objecttimes)rrr))rrrr)r'rrrry?zrepeat((1+0j))rzrepeat((1+0j), 5)zrepeat((1+0j), 0)rfr'aar)r}r rr$r=rSrrvrrrrrirr)rr`rrms    rtest_repeatzTestBasicOps.test_repeatsfCq9:OLeAhvc{37	9fS!n-?a-?fS!n-r2fS"o.3)V,)VT1a8)VT374La"234Oa"56Qa"56
#R(a#&a1.W
>aq!12DMB622Q67	AEOOE6B#?@	Arc0|jttddd|jttddd|jttddd|jttdddy)Nrrzrepeat('a', 0)rrQ)r}rrrDs rtest_repeat_with_negative_timesz,TestBasicOps.test_repeat_with_negative_timesstfS"o.0@AfS"o.0@AfS346FGfS346FGrc|jtttjtdtddgd|jtttdtdgd|jtttdtgd|jtdttdtd	d
g|jtttjgg|jtt|jtttdtdtd|jtttj|jtttdtd|jttttdgdg|jttttdgdggd}ttdt}|jtt!j ||ttdt}|jtt!j"||tt$j&dzD]-}ttdt}|j)||/y)
Nrrrrrrrrr|r'r}r~rfr)r}r rrVpowr=r:rrSrrvnegrr,r-r*rrrirrrs    rtest_mapzTestBasicOps.test_mapsc(,,a%!*EF+	-c(E58<=2	4c(E57;<2	4aHeUW =>!'*	,c(,,34b9)S))T3tU1XuQx+HI)S(,,7)T3r58+<=*dC!qc,BC)T3vsQC+@A(%)diil+S1%)dmmA./5622Q67	&EHeUW-AOOE1%	&rc|jtttjtt
dt
ddgd|jtdttjtttdgd|jtttjgg|jtttjtddggdg|jttttjdg|jtt|jtttjdgd	|jtttd
dg|jttttdg|jttttdggd}ttjtt
dt
dd}|jtt!j ||ttjtt
dt
dd}|jtt!j"||t
t$j&dzD]K}ttjtt
dt
dd}|j)||My)NrrrrYrrirrextrarf)r}r starmaprVrZr!r=rSrrrrvrr,r-r*rrrirrrs    rtest_starmapzTestBasicOps.test_starmap"s"ghllCa%!*4MNO+	-as57E!H7M!NO+	-ghllB78"=ghllT1Q%[MBCdVL)T78<<$+HI)W-)WhllUGWM)T72w+?@*dGGeW,EF)T76E7+CD!HLL#eAha
";<diil+S1HLL#eAha
";<dmmA./5622Q67	&Ec%(E!AJ&?@AOOE1%	&rc
dD]?}|jtttdg|tt|AdD]B\}}|jtttdg|tt|D|jtttddttd|jtttdddttd|jtttddddttd|jtttdddttdd|jtttddddttdddt	td}|jtt|dttd|jt|ttddt	td}|jtt|ddg|jt|ttddtd}|jtt||jtt|dddd|jtt|d	dd|jtt|dd	d
|jtt|ddd
|jtt|ddd|jtt|d|jtt|dd|jtt|dd|jtt|ddd|jtt|ddd|jttttddtdt}|jtt|ddd
dg|jt|ddD]}|jttjttdg|tt||jttjttdg|tt|ttjdzD]'}|j!|ttdg|)ddD}t#j$|}t|d}|j'|t|t)j*|j-|Gddt.}|jtttd|dttd|jtttd|d|d
ttdd
|jtttd|d|d
|dttdd
dy)N)rfrrrfrrrfr)rfrfrfrrr)))rfrr)rfrr))rfr)rfr))r)rrfr'rrrrrr2)rcrdrerfrgc3 K|]}|ywrr)rr)s  rrz+TestBasicOps.test_islice.<locals>.<genexpr>s
 Aa
 rRceZdZdZdZy))TestBasicOps.test_islice.<locals>.IntLikec||_yrvalrrps  rrz2TestBasicOps.test_islice.<locals>.IntLike.__init__s	rc|jSrrorDs r	__index__z3TestBasicOps.test_islice.<locals>.IntLike.__index__sxxrN)rMrNrOrrsrrrIntLikerms

 rrtr)r}r rQr=rrrvr,rrrrrrrirrweakrefrefassertIsNotNoner
gc_collectassertIsNonerP)	rr#tgtargsrwrarrmwrrts	         rtest_islicezTestBasicOps.test_islice>s=		1D
T&s";d";<!%,/
1		1	4MD'

T&s";d";<!%/2
4	4	
fU2Y56U2YHfU2Yd;<d59oNfU2YdDABDrOTfU2Y4894a;MNfU2Y4;<d5BPQ?>ST%)_fRm,d58n=b4a#56
%)_fRA./4b4a#562Y)VR0)VRAq!<*fb"b!<*fb!R<*fb!R<*fb!R;*fb#6*fb#q9*fb!S9*fb#q!<*fb!S!<T&!R"ABCQG
GfQ1b12QC8a!$	BD
T$))F5:,E,E"FG!%,/
1T$--uSz0ID0I"JK!%,/
1v66:;
BveCj'@4'@A
B	B !
 
[[_
B]RT"R"$	 f	 
	
fU3Z=>U2YPfU3ZgbkJKeBm,	.fU3Zgbk7ST:VWeBr!n-	/rc
@gd}|jttt|gd|jtttgg|j	t
t|j	t
ttj|j	t
ttjdgd|j	t
ttddg|j	ttttdgttgd}|jt|gd|j	tt||jttjtt|gd|jttjtt|gdtt j"dzD]"}|j%|tt|$y)	Nrrrrr'rrrrrr^r_rf)rrrrrrrrrr)r}r 	takewhilergrrvrVrZrr,r-rrIrrr=rirr)rrrgrms    rtest_takewhilezTestBasicOps.test_takewhilesm(i$78)Di"56;)Y/)Y=)YugwO)T9R%+AB*dIgw,GHd./a),-q1	
dii	(D(ABCYOdmmIh,EFG!	#622Q67	>EOOE9Xt#<=	>rc
gd}|jttt|gd|jtttgg|j	t
t|j	t
ttj|j	t
ttjdgd|j	t
ttddg|j	ttttdg|jttjtt|gd|jttjtt|gdttjdzD]"}|j!|tt|$y)Nr)rr'rrrr^r_rfr)r}r 	dropwhilergrrvrVrZrr,r-rrr=rirr)rrrms   rtest_dropwhilezTestBasicOps.test_dropwhiles<(i$78:JKi"56;)Y/)Y=)YugwO)T9R%+AB*dIgw,GH	
dii	(D(ABCEUVdmmIh,EFG(	*622Q67	>EOOE9Xt#<=	>rc	d}tg\}}|jt|g|jt|gtt|\}}|jt	||t	t|t|tt|\}}|jt|tt||jt|tt|tt|\}}tdD]}|jt
||~|jt|tt|tt|\}}tdD]}|jt
||~|jt|ttd|tdD]}dg|zdg|zz}tj|ggf}tt|}|D]$}t
||}	||j|	&|j|dtt||j|dtt||jtt|jttd|jttddgd|jttddgddtd	\}}t|d
}
|jt|
td
ttdd\}}}
tdD]}|jt
|||jt|ttd|jt
|
t
|
gttd|jt|ttdd|jt|
ttdd|jttd	d|jttgd
tdD]~}td	|}|jt|t|jt|||j|Dcgc]
}t|c}td	g|ztd	\}}t|\}
}
|j!||
utd	\}}t|}|jt||jt|d||}|j!t|t|cxk(xrt|cxk(xrtd	k(ncttd\}}t#j$|}|jt'|dt|~t)j*|jt,t&|dtd	}ttd}td	\}}|jtt/j.|||jtt/j.||tttd\}}|jtt/j.|||jtt/j.||td	\}}t1d|t1d||jtt/j.||dd|jtt/j.||dd|jt||dd|jt||ddttd\}}t1d|t1d||jtt/j.||dd|jtt/j.||dd|jt||dd|jt||ddtd	\}}|jtt/j2|||jtt/j2|||jt|||jt||ttd\}}|jtt/j2|||jtt/j2|||jt|||jt||td	\}}t1d|t1d||jtt/j2||dd|jtt/j2||dd|jt||dd|jt||ddttd\}}t1d|t1d||jtt/j2||dd|jtt/j2||dd|jt||dd|jt||ddtt4j6dzD]\}|j9|t;td	td	\}}|j9||||j9|||^ycc}w)Nrrrrrr'r)rrrinvalidrrf	__class__rq<r)teer}r r?r$r=rr?shufflerrrvr~r,rrrruproxygetattrrrxReferenceErrorrrSrrirrr)rr>rrr0rorderlistsitsrrr r)rt1t2tnewt3r\rlong_ansrms                      rtest_teezTestBasicOps.test_teesz	2w1a"%a"%6!9~1aDq58$<=6!9~1a$uQx.1a$uQx.16!9~1s	)AT!Wa(	)
a$uQx.16!9~1s	)AT!Wa(	)
a$uS!}"56q		7ACEQCEMENN5!HEfQi.C
'SVa&
'
U1XtE!H~6U1XtE!H~6		7	
)S))S!,)S1Q%5)S1Q%C85z1DGENa$u+.eDk1%1as	)AT!Wa(	)a$uT{"34$q'47+T%(^<a$uS"78a$uQt}"56	
)S%;*c2r2q	IA]FT&\51S[!,v6!d1g6e
aH		I5z11v1QUBBx)T*)T2.
"XRDHGRGDKGH59~1MM!K0$q':
.'1kB5ke%5z1diil+S1diil+S14e%&1diil+X6diil+X65z1Q
Q
diil+SW5diil+SW5a#ab'*a#ab'*5< 1S!Rdiil+Xcd^<diil+Xbc];a(34.1a(23-05z1dmmA./5dmmA./5a#&a#&5< 1dmmA./:dmmA./:a(+a(+5z1Q
Q
dmmA./QR9dmmA./QR9a#ab'*a#ab'*5< 1S!RdmmA./#$@dmmA./"#?a(34.1a(23-0622Q67	3EOOE4E
#34u:DAqOOE1cO2OOE1cO2		3_7s>q
c^ttdd\}}	t|~y#~~xYw)Ni-1)rrr9)rforwardbackwards   rtest_tee_del_backwardz"TestBasicOps.test_tee_del_backward[s6tX 67	L	s',cGfdd}t|\}|jtd5t|dddy#1swYyxYw)Nc"eZdZdZdZfdZy)(TestBasicOps.test_tee_reenter.<locals>.ITc|SrrrDs rrEz1TestBasicOps.test_tee_reenter.<locals>.I.__iter__gr rcF|j}d|_|rtSyNF)firstr)rrrs  rrJz1TestBasicOps.test_tee_reenter.<locals>.I.__next__is$

"
7NrN)rMrNrOrrErJr0srIresE

#rrr)rassertRaisesRegexrsr)rrrrs   @rtest_tee_reenterzTestBasicOps.test_tee_reenterdsJ	#	#13x1

#
#L%
8	G			sAActjtjGfdd}t|\}}tjt|g}|j	j
|jtd5t	|dddj|jy#1swY*xYw#j|jwxYw)Nc eZdZdZfdZy)+TestBasicOps.test_tee_concurrent.<locals>.Ic|SrrrDs rrEz4TestBasicOps.test_tee_concurrent.<locals>.I.__iter__xr rcFjjyr)rwait)rfinishrs rrJz4TestBasicOps.test_tee_concurrent.<locals>.I.__next__zs		
rNrL)rrsrrrws


rr)rr#r)	threadingEventrThreadrrrrrsrr)rrrrthreadrrs     @@rtest_tee_concurrentz TestBasicOps.test_tee_concurrentss!"		13x1!!QC8	JJL''e<
Q

JJLKKM	


JJLKKMs$8&CC*CCC"Dc
|jttttt
ttfD]L}|jtt|g|jtt|tN|jtttgd|jttttdtg\}}|jtt||jtt|tt\}}|jtt||jtt||jtttddtttttt fD]P}|jtt|dg|jtt|dtRy)Nrc|Srrr(s rrnz1TestBasicOps.test_StopIteration.<locals>.<lambda>rrc|Srrr(s rrnz1TestBasicOps.test_StopIteration.<locals>.<lambda>rr)rrIrr!rrrBrBrQrrrcrrrrr`)rrr\qs    rtest_StopIterationzTestBasicOps.test_StopIterationsb-su5W-	AAmT1R59mT1WY<@	A	
-vb$/?@-vgi/FG2w1-q1-q179~1-q1-q1-vdA?+sIy'J	MAmT1Z3DEmT1Z3KL	Mrctdggd}t|tj|j	tj
t|yrU)rrgccollectr
is_trackedrs  rtest_combinations_result_gcz(TestBasicOps.test_combinations_result_gcs?
4*a
(R


	


d2h/0rctdggd}t|tj|j	tj
t|yrU)rrrrrrrs  r,test_combinations_with_replacement_result_gcz9TestBasicOps.test_combinations_with_replacement_result_gcs=+D":q
9R




d2h/0rctdggd}t|tj|j	tj
t|yrU)r
rrrrrrs  rtest_permutations_result_gcz(TestBasicOps.test_permutations_result_gcs=4*a
(R




d2h/0rctdgg}t|tj|j	tj
t|yr)r<rrrrrrs  rtest_product_result_gcz#TestBasicOps.test_product_result_gcs;dBZ
 R




d2h/0rctgg}tj|jtjt|yr)rrrrrrrs  rtest_zip_longest_result_gcz'TestBasicOps.test_zip_longest_result_gcs2"





d2h/0rcddlm}m}m}tt
ttttttttt|tt t"t$t&t(t*||t,f}|D]C}|j/|5|j1t2d5d|_ddddddEy#1swYxYw#1swY\xYw)Nr)_grouper_tee_tee_dataobject)tp	immutabler)	itertoolsrrrrrrrrrwrrrrrBrQr-r
r<rr`rrrrrvfoobar)rrrrdatasetrs      rtest_immutable_typesz!TestBasicOps.test_immutable_typess==)-
0	"B$
"++I{C" !BI"
"
"	"""
"
"s$CB8%C8C=CC
	)rrN)DrMrNrOrrrrrrrrr!rbigaddrspacetestr&impl_detailr-rHrKrMr]r_rarhrzrrrrrrrrrrrr
rrrr)r.rDrFrHrJrNrTrWr\rar}rrrrrrrequires_working_threadingrrcpython_onlyrrrrrrrrrrprphso'$R!,!,F$3L
7YPPJJMDMD^
&&
W=>R?RJ:J:X
77
W=>I?I
=D=D~
%%W=>R?REBPPB.,.,`5858nP"H"HHKK>"D"DH@F@FD&6BB- W=>8?84(2TW=><?<==
/&2P&8Ft
22W=>O?O
7
722AA4H&&<&&6\/\/|>>(>>"S3S3l
10023*M.

1
1
11
11
11
11
""rrpceZdZdZedZedZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZdZdZdZdZy)TestExamplescT|jttgdgdyNrr'rrrrrrrfr)r}r rrDs rrzTestExamples.test_accumulatesj568IJrcgd}gd}ttjdzD]}t|}|j	ttjtj|||dd|j	t|d|j	ttjtj|||ddt|}|j	t|d|j	ttj||dd|j	ttj||ddy)Nrrr)r=rirrr}r rjrkrrr)rraccumulatedrmrws     rtest_accumulate_reduciblez&TestExamples.test_accumulate_reducibles'622Q67	[ED!BT&,,v||B/F"GH+VW.YT"Xq)T&,,v||B/F"GH+VWVX/Z		[

b1%dmmB/0+ab/Bdiim,k!"o>rctgdtj}|jt	|dttjdzD]H}t
jt
j||}|jt|ddgJ|jttj|ddg|jttj|ddgy)N)NNNrTF)
rrVis_r}rr=rirrjrkr rr)rrwrmit_copys    rtest_accumulate_reducible_nonez+TestExamples.test_accumulate_reducible_nones*HLL
9b4(622Q67	;Ell6<<E#:;GT']T5M:	;	
dmmB/04-@diim,tUm<rcZ|jdjtdddyNrr1DEFrj)r}rrrDs rrzTestExamples.test_chain
s"ue!45x@rcp|jdjtjddgdyr)r}rrrrDs rrz%TestExamples.test_chain_from_iterables*!4!4eU^!DExPrc	|jttddgd|jtttddgdy)Nrr'rrrr)r}r rr=rDs rr!zTestExamples.test_combinationssEl6156[	]l58Q78=	?rcR|jttddgdy)Nr1r'r2)r}r rrDs rrHz/TestExamples.test_combinations_with_replacements#;E1EF[	]rc	d|jttdgdtdy)Nrjrkrm)r}r rwrDs rrzzTestExamples.test_compresss"hx?@$v,Orc	d|jtttddgdy)Nrfr)rfrrrr)r}r rQrrDs rrzTestExamples.test_count s#fU2Y235IJrc	r|jtttddtdy)NrrABCDABCDABCD)r}r rQrrDs rrzTestExamples.test_cycle#s'fU6]B78$~:NOrc	X|jttdgdgdy)Nc|dkSNrrr(s rrnz-TestExamples.test_dropwhile.<locals>.<lambda>'
!A#rrrrrr)rrr)r}r rrDs rrzTestExamples.test_dropwhile&si
{CDgNrc	H|jtdDcgc]\}}|	c}}td|jtdDcgc]\}}t|c}}tdtdtdtdgycc}}wcc}}w)NAAAABBBCCDAABBBABCDAB
AAAABBBCCDAAAABBBCCr)r}rBr )rrErs   rrzTestExamples.test_groupby)s|0A(BC1!Ch	)0EF147Fv,UT$ZcK	MDFsB
B
c
f|jttdtdgdy)Nc|dzSr&rr(s rrnz*TestExamples.test_filter.<locals>.<lambda>0s
qsrrf)rrrrr)r}r rcr=rDs rrzTestExamples.test_filter/s"f]E"I>?Mrc
f|jttdtdgdy)Nc|dzSr&rr(s rrnz/TestExamples.test_filterfalse.<locals>.<lambda>3s
AaCrrf)rr'rrr)r}r rr=rDs rrzTestExamples.test_filterfalse2s"k-rCDkRrc	\|jtttddgdy)N)r'rrf)rr'rrrr)r}r rrZrDs rr\zTestExamples.test_map5s c#x9:MJrc
||jttddtd|jttdddtd|jttdddtd|jttddddtdy)	Nrr'ABrCDCDEFGrACEG)r}r rQrDs rr}zTestExamples.test_islice8sfY23T$Z@fY156T
CfY4894=IfY4;<d6lKrcR|jttddddgy)Nrxyrr)rr)r}r r!rDs rrzTestExamples.test_zip>s#c&$/0:z2JKrc	V|jttdddgdy)Nrr-r)rr)rr)rr)r}r rrDs rtest_zip_longestzTestExamples.test_zip_longestAs$k&$#FGI	Krc
|jttddtttdj|jttt
dgdy)Nrr'z#AB AC AD BA BC BD CA CB CD DA DB DCr)r/)rr'r)rrr')rr'r)r'rr)r'rr)r}r r
rrsplitr=rDs rr]zTestExamples.test_permutationsEsZl6156c%)N)T)T)VWX	Zl5845O	Qrc
|jttddtttdj|jttt
ddgdy)NrrzAx Ay Bx By Cx Cy Dx Dyr'rr:)r)rrr)rrr)rrr)rrrrn)rrrr)r}r r<rrr	r=rDs rrDzTestExamples.test_productKs]gfd34c%)B)H)H)JKL	NgeAhq9:=	>rcR|jttddgdy)Nrfr)rfrfrf)r}r rrDs rrTzTestExamples.test_repeatRsfRm,l;rc	^|jtttgdgdy)N))r'rrr'rfr)r}r r`rZrDs rtest_stapmapzTestExamples.test_stapmapUs"gc+ABC&	(rc	X|jttdgdddgy)Nc|dkSrrr(s rrnz-TestExamples.test_takewhile.<locals>.<lambda>Zrrrrr)r}r rrDs rrzTestExamples.test_takewhileYs"i
{CDqeLrN)rMrNrOrrrrrrr!rHrzrrrrrrr\r}rrr]rDrTrrrrrrrsK
?
?==AQ?]PKPOMNSKLLKQ><(Mrrc(eZdZdZedZdZy)TestPurePythonRoughEquivalentsc	d}tgdgdD]r\}}|j||5	dtt||}}	dt|||}}|j
|||j
||dddty#t$r}t|d}}Yd}~_d}~wwxYw#t$r}t|d}}Yd}~md}~wwxYw#1swYxYw)Nc3K	|dkrtdt|}tt||x}r|tt||x}ryyw)Nrzn must be at least one)r,rrrQ)rYr>rwrs    rbatched_recipezJTestPurePythonRoughEquivalents.test_batched_recipe.<locals>.batched_recipe`sXP1u !9::hB A//%/!A//%/sAAA)	rrrrrr*rrN)rrrr'rrrrrrrN)rYr>)r<rr rrr~r})	rrrYr>e1rrye2rs	         rtest_batched_recipez2TestPurePythonRoughEquivalents.test_batched_recipe_s	#R8:
	)KHax15

)+!4!(<#=B+!4x(C#DB  R(  R(

)

)
	)!+!!WdB+!+!!WdB+

)

)sXCB
B-$C
	B*
B% C%B**C-	C
6
CCC

CC	c'Kt|}|jxsd|jxstj|j
xsd}}}t
t|||}	t|}	t|D]\}}	||k(s|	t|}y#t$r tt||D]\}}	YywxYw#t$r$ttdz||D]\}}	YywxYwwr?)slicerr{rrrrr=rrIr!	enumerate)
rYr#rlrr{rrwnextir0rs
          rrQz%TestPurePythonRoughEquivalents.islicexs4LGGLq!&&*?CKK1Tt
%tT*
+	HE	'1
%
7:!M HE
%
	!%,9

7
			!%At"4h?

7
	sNAC1 B,CCC1&B>;C1=B>>C1*C.+C1-C..C1c
,|jt|jddtd|jt|jdddtd|jt|jdddtd|jt|jddddtdtt	d	}|jt|j|d
tt	d
|jt|tt	d
d	tt	d	}|jt|j|d
d
g|jt|tt	d
d	t}|jt|j|dd
ddg|jt
|d
y)
Nrr'rrrrrrrfrrri)r}r rQrr=rr)rrwrs   rtest_islice_recipez1TestPurePythonRoughEquivalents.test_islice_recipes}dkk)Q78$t*Edkk)Q:;T$ZHdkk)Q=>W
Ndkk)Qa@A4<P
%)_dkk"a014a>Bb4a#56
%)_dkk"a34b9b4a#56Gdkk!Q267!=a!$rN)rMrNrOrstaticmethodrQrrrrrr]s )2*%rrceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZy)TestGCc@|j|t|~~yr)rr)riterator	containers   r	makecyclezTestGC.makecycles"XxrcFg}|jtdd|dg|yNrr'r)r%rrrs  rrzTestGC.test_accumulates"z1Qq),a0rcHg}|jtdd|dgd|yr')r%rr(s  rrzTestGC.test_batcheds$w!Aay!,a0rc>g}|jt||yr)r%rr(s  rrzTestGC.test_chainsuQx#rcTg}|jtj|g|yr)r%rrr(s  rrzTestGC.test_chain_from_iterables"u**A3/3rcHg}|jtdd|dgd|yr')r%rr(s  rr!zTestGC.test_combinations$|Qq1Iq115rcHg}|jtdd|dgd|yr')r%rr(s  rrHz)TestGC.test_combinations_with_replacements%4a!AYBAFrcDg}|jtdgd|y)Nrj)rrrrrr)r%rwr(s  rrzzTestGC.test_compresssx-8!<rcg}tdtft|}|jt	|d|d|y)NIntr(rr)r~rrr%r)rrr1s   rrzTestGC.test_counts853&$),uSVSV,a0rcFg}|jt|gdz|yr&)r%rr(s  rrzTestGC.test_cyclesuaSU|Q'rcNg}|jttd||g|yr^)r%rrr(s  rrzTestGC.test_dropwhiles"y1ay115rcJg}|jt|gdzd|y)Nr'c|Srrr(s rrnz%TestGC.test_groupby.<locals>.<lambda>sqr)r%rBr(s  rrzTestGC.test_groupbys"ws1uj115rcd}d}tt||D]0\}}|jjdgj	|2y)Nrfc|Srrr(s rrnz'TestGC.test_issue2246.<locals>.<lambda>rrrr))rBr=__dict__
setdefaultr)rr>rr0rs     rtest_issue2246zTestGC.test_issue2246sKE!H'2	:DAq''B/66q9	:rcJg}|jtd|gdz|y)Ncy)NTrr(s rrnz$TestGC.test_filter.<locals>.<lambda>rr')r%rcr(s  rrzTestGC.test_filters"vmaSU3Q7rcBg}|jtd||y)Ncyrrr(s rrnz)TestGC.test_filterfalse.<locals>.<lambda>r=r)r%rr(s  rrzTestGC.test_filterfalses{>15q9rcPg}|jt|gdz|gdz|y)Nr'r)r%r!r(s  rrzTestGC.test_zips(sA3q51#a%(!,rcg}|jt|gdz|gdz||dg}|jt|gdz|gdz||y)Nr'rr)r%r)rrrs   rrzTestGC.test_zip_longestsT{A3q51#a%0!4
I{A3q51#a%1=qArcJg}|jtd|gdz|y)Nc|Srrr(s rrnz!TestGC.test_map.<locals>.<lambda>sArr')r%rr(s  rr\zTestGC.test_maps"s:s1u-q1rcHg}|jt|gdzd|yr&)r%rQr(s  rr}zTestGC.test_islices"vqc!eT*A.rcFg}|jt|gdz|yr)r%r-r(s  rr.zTestGC.test_pairwisesxA*rcHg}|jtdd|dgd|yr')r%r
r(s  rr]zTestGC.test_permutationsr-rcJg}|jtdd|dgd|y)Nrr'rr:)r%r<r(s  rrDzTestGC.test_products$w!Aay3Q7rc>g}|jt||yr)r%rr(s  rrTzTestGC.test_repeatsvay!$rcNg}|jtd||fgdz|y)Nc|Srr)rgs rrnz%TestGC.test_starmap.<locals>.<lambda>s!rr')r%r`r(s  rrazTestGC.test_starmaps&w|qeWQY7;rc	Pg}|jttdd||g|y)Nrr)r%rrr(s  rrzTestGC.test_takewhile	s$y1a|4a8rN)rMrNrOr%rrrrr!rHrzrrrrr:rrrrr\r}r.r]rDrTrarrrrr!r!s 
11$46G=1
(66:8:-B2/+68%<9rr!c#$K	|D]}|ywrrseqnr0s  rRrO
s
r2ceZdZ	dZdZy)rc||_yrrNrrNs  rrz
G.__init__s		rc |j|SrrR)rr0s  r__getitem__z
G.__getitem__syy|rN)rMrNrOrrUrrrrrs rrc eZdZ	dZdZdZy)rc ||_d|_yr^rMrSs  rrz
I.__init__	rc|SrrrDs rrEz
I.__iter__rFrc|jt|jk\rt|j|j}|xjdz
c_|SrUr0rrNrIrrFs  rrJz
I.__next__ ?66S^#=%8IIdff!rNr"rrrrrs&rrceZdZ	dZdZy)Igc ||_d|_yr^rMrSs  rrzIg.__init__(rXrc#6K|jD]}|ywrrRrqs  rrEzIg.__iter__+s99	CI	sNrMrNrOrrErrrr_r_&s?rr_ceZdZ	dZdZy)rc ||_d|_yr^rMrSs  rrz
X.__init__1rXrc|jt|jk\rt|j|j}|xjdz
c_|SrUr[r\s  rrJz
X.__next__4r]rN)rMrNrOrrJrrrrr/s&rrceZdZ	dZdZy)Nc ||_d|_yr^rMrSs  rrz
N.__init__<rXrc|SrrrDs rrEz
N.__iter__?rFrNrbrrrrgrg:s!rrgc eZdZ	dZdZdZy)rc ||_d|_yr^rMrSs  rrz
E.__init__DrXrc|SrrrDs rrEz
E.__iter__GrFrcddzy)NrrrrDs rrJz
E.__next__Is		QrNr"rrrrrBs$rrc eZdZ	dZdZdZy)E2c ||_d|_yr^rMrSs  rrzE2.__init__NrXrc|SrrrDs rrEzE2.__iter__QrFrc|jdk(rt|j|j}|xjdz
c_|Sr7)r0ZeroDivisionErrorrNr\s  rrJzE2.__next__Ss766Q;##IIdff!rNr"rrrroroLs9rroc eZdZ	dZdZdZy)ScyrrrSs  rrz
S.__init__\src|SrrrDs rrEz
S.__iter__^rFrctrrHrDs rrJz
S.__next__`rKrNr"rrrruruZs
rrucf	ttdttt	|S)Nc|Srrr(s rrnzL.<locals>.<lambda>esar)rrrOr_rrRs rLr{cs#&Z2ag;011rcxeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZy)TestVariousIteratorArgsc
gd}gd}t|}ttttt
fD],}|j
tt|||.|j
ttt|g|jttt||jttt||jtttt|yr)rrrr_r{rOr}r rrurrvrrgrsrrrlr`r>rs     rrz'TestVariousIteratorArgs.test_accumulatejsFQAq!	8AT*QqT"23Q7	8j1./4)Z16)Z16+T:ad3CDrcd}gd}d}tttttfD]H}|j|5|j
tt||||dddJ|j
ttt|dg|jttt|d|jttt|d|jtttt|d|jtttt!|dy#1swY*xYw)Nr*)r+r,)ryr')rr)rrr_r{rOrr}r rrurrvrrgrsrrors     rrz$TestVariousIteratorArgs.test_batchedus,
QAq!	<A"
<  gadA&6!7;
<
<	<	
gadA./4)WadA6)WadA6+T71Q43CD+T72a5!3DE

<
<s,EE	cddtddtdddfD]:}ttttt
tfD]}|jtt||t|||jtt||||t||t||z|jtttt||jtttt||jtttt|=yN123rrdog333333?rr)r=rrr_rur{rOr}r rrrvrrgrsrrrlrs   rrz"TestVariousIteratorArgs.test_chainsU4[+uT$q7IJ	DAB1a(
Q  eAaDk!2D1J?  eAaD!A$&7!8$qt*T!A$Z:OP
Q
iuQqT{;iuQqT{;/uQqT{C
	DrcTddtddtdddfD]	}t|}tttt
ttfD]E}|jtt||tdt||G|jttt|td|jttt|td|jt ttt#|tdy	Nrrrrrrrr)r=rrrr_rur{rOr}r rwrrrvrrgrsr)rrlr>rs    rrzz%TestVariousIteratorArgs.test_compresssU4[+uT$q7IJ	RAAAB1a(
N  hqtVAY&?!@$qt*M
Ni1Q4Ci1Q4C/x!fQi7PQ
	Rrc	ddtddtdddfD]n}|jttt	||jttt||jttt|pyr)r=rrvr<rrgrsr)rrls  rrDz$TestVariousIteratorArgs.test_productsnU4[+uT$q7IJ	@Ai!A$7i!A$7/!A$?	@rc(ddtddtdddfD]}ttttt
tfD]Z}t|dz}t||dz}ttt|||}|j||\|jttt||jttt||jt ttt#|y)	Nrrrrrrrr)r=rrr_rur{rOrr rQrr}rrvrrgrsr)rrlrtgtlenexpectedactuals      rrz"TestVariousIteratorArgs.test_cyclesU4[+uT$q7IJ	DAB1a(
3Q!!:a<fU1Q4[&9:  2	
3

i!5i!5/uQqT{C	Drc
.tdtdtddtdddfD]}ttttt
tfD]E}|jt||Dcgc]\}}|	c}}t||G|jttt||jttt||jtttt|ycc}}wNrfrrrrrrr)r=rrr_rur{rOr}rBr rrvrrgrsr)rrlrrEsbs     rrz$TestVariousIteratorArgs.test_groupbys)U1XuT{FE$tA<NO	FAB1a(
M  1!?2!!?adL
Mi!A$7i!A$7/wqt}E	F!?s3DcbtdtdtddtdddfD]}ttttt
tfD]Q}|jttt||||Dcgc]}t|s|c}S|jtttt||jtttt||jttttt!|ycc}wr)r=rrr_rur{rOr}r rcr4rrvrrgrsrrrlrr)s    rrz#TestVariousIteratorArgs.test_filters)U1XuT{FE$tA<NO	MAB1a(
A  fVQqT&:!;-.qT!?VAY!!?A
A
i1>i1>/vfad7KL
	M"@D,D,cbtdtdtddtdddfD]}ttttt
tfD]Q}|jttt||||Dcgc]}t|s|c}S|jtttt||jtttt||jt tttt#|ycc}wr)r=rrr_rur{rOr}r rr4r8rrvrrgrsrrs    rrz(TestVariousIteratorArgs.test_filterfalses)U1XuT{FE$tA<NO	RAB1a(
@  k&!A$&?!@-.qT!>U1X!!>@
@
ifadCifadC/{61Q47PQ
	R"?rc|ddtddtdddfD]}ttttt
tfD]}|jtt||t|||jtt||||t|||||jttt||jttt||jtttt!| yr)r=rrr_rur{rOr}r r!r$rrvrrgrsrrs   rrz TestVariousIteratorArgs.test_zipsU4[+uT$q7IJ	BAB1a(
J  c!A$i$qt*=  c!A$!o!6QqT1Q48HI
J
iad3iad3/s1Q4yA
	Brc
ddtddtdddfD]/}ttttt
tfD]}|jtt||tt|||jtt||||tt|||||jttt||jttt||jtttt!|2yr)r=rrr_rur{rOr}r rr!rrvrrgrsrrs   rr
z'TestVariousIteratorArgs.test_ziplongestsU4[+uT$q7IJ	JAB1a(
W  k!A$&7!8$s1Q4y/J  k!A$!&=!>S1qQRt_@UV
W
iad;iad;/{1Q47HI
	Jrc
tdtdtddtdddfD]O}ttttt
tfD]}|jttt||||Dcgc]
}t|c}|jtttj||||||Dcgc]}||z	c}|jtttt||jtttt!||jt"tttt%|Rycc}wcc}wNrfrrrrrir)r=rrr_rur{rOr}r rr*rVrZrrvrrgrsrrs    rr\z TestVariousIteratorArgs.test_maps)U1XuSz65Bq>J	JAB1a(
7  c&!A$&7!856qT!:&)!:<  c(,,!ad&C!D01!!51!Q$!57
7

ifad;ifad;/s61Q47HI	J";!5sF%FcddtddtdddfD]}ttttt
tfD]D}|jtt||ddd	t||ddd	F|jttt|d
|jttt|d
|jtttt|d
y)N12345rrrrrrrr'rf)r=rrr_rur{rOr}r rQrrvrrgrsrrs   rr}z#TestVariousIteratorArgs.test_islices2uT{KtD9KL	IAB1a(
P  fQqT!D&;!<d1Q4jA>NO
Pi1r:i1r:/vadB7GH	Irc
"ddtddtdddfD]}ttttt
tfD]W}t||}tt||dd}tt||}|j||Y|jttt||jttt||jtttt!|yr)r=rrr_rur{rOr r!r-r}rrvrrgrsr)rrlrrRrrs      rr.z%TestVariousIteratorArgs.test_pairwisesU4[+uT$q7IJ	GAB1a(
31Q4jCQR 12hqtn-  2	
3

i1Q48i1Q48/x!~F	GrctdtdtddtdddfD]&}ttttt
tfD]^}t||}|jtttj||||Dcgc]}||z	c}`|jtttjt|jtttjt!||jt"tttjt%|)ycc}wr)r=rrr_rur{rOr$r}r r`rVrZrrvrrgrsr)rrlrssr)s     rraz$TestVariousIteratorArgs.test_starmaps)U1XuSz65Bq>J	UAB1a(
7!QZ  ghllAbE&B!C01!!51!Q$!57
7
i(,,"Fi(,,"F/wx||QrU7ST	U"6sEcvtdtdtddtdddfD]}ttttt
tfD]^}g}||D] }t|sn|j|"|jttt|||`|jtttt||jtttt||jt tttt#|yr)r=rrr_rur{rOr4rr}r rrrvrrgrsrrrlrtgtrs     rrz&TestVariousIteratorArgs.test_takewhiles)U1XuT{FE$tA<NO		PAB1a(
EaD%D!$<JJt$%  i!&=!>D
E
iFAaDAiFAaDA/y17NO		PrcxtdtdtddtdddfD]	}ttttt
tfD]_}g}||D]!}|st|r|j|#|jttt|||a|jtttt||jtttt||jt tttt#|yr)r=rrr_rur{rOr8rr}r rrrvrrgrsrrs     rrz&TestVariousIteratorArgs.test_dropwhile	s)U1XuT{FE$tA<NO		OAB1a(
DaD%D5;JJt$%  iqt&<!=sC
D
iE1Q4@iE1Q4@/y!7MN		Orc
RddtddtdddfD]}ttttt
tfD]j}t||\}}|jt|t|||jt|t||l|jttt||jttt||jtttt|dy)	Nrrrrrrrr)r=rrr_rur{rOrr}r rrvrrgrsr)rrlrit1it2s     rrz TestVariousIteratorArgs.test_tee	sU4[+uT$q7IJ	EAB1a(
8qt9S  cD1J7  cD1J7
8
iad3iad3/s1Q4y|D	ErN)rMrNrOrrrrzrDrrrrrr
r\r}r.rarrrrrrr}r}hsn	EFDR@	DFMRBJ	JI	GU
P
OErr}ceZdZdZdZy)LengthTransparencyc|jtjtddd|jtjtddd|jtjtdddy)Nrirrr}rVlength_hintrrDs rrTzLengthTransparency.test_repeat	sf--fT2.>?D--fT1o>B--fTlB?Drc|jtjtddd|jtjtddd|jtjtddd|jtjtdddy)NrrrrVrrDs rrWz2LengthTransparency.test_repeat_with_negative_times"	s--fT2.>?C--fT2.>?C--fT.DEqI--fT.DEqIrN)rMrNrOrTrWrrrrr	sE
JrrcreZdZdZdZejejddZdZ	dZ
y)RegressionTestscpd}fd}g|d|dtt}|j|y)Ncdgffd	}t|}t||ddt||}t|gt|zt	y)Nrc8|r|dd=t|Srr)rrrzs  rrz@RegressionTests.test_sf_793826.<locals>.mutatingtuple.<locals>.g1	sad1gJr)r rr!rr)tuple1rtuple2ritemsgenrs `    @r
mutatingtuplez5RegressionTests.test_sf_793826.<locals>.mutatingtuple-	sP!"s

LEfE!AJa-CcU3v;&'AGrc.|attddyr)Tr )rgrs rrz)RegressionTests.test_sf_793826.<locals>.f<	sAAwE!Hrr)rrr)r rr})rrrsecondrs    @rtest_sf_793826zRegressionTests.test_sf_793826*	s9
		
gq'*a'rc
fd}fd}g|jttt||d|j	ddgg|jttt||d|j	ddgg|jttt||j	ddgy)Nc3dKjddjdtwr?)rr)histsrgen1z,RegressionTests.test_sf_950057.<locals>.gen1K	s(KKNGKKN  s-0c3ZKjddjdyw)Nrr'r)r)r)rs rgen2z,RegressionTests.test_sf_950057.<locals>.gen2R	s"KKNGKKNs(+FrrT)rrr rr}r)rrrrs   @rtest_sf_950057zRegressionTests.test_sf_950057G	s		
.$dfd5k0JK!u%.$dfd4j0IJ!u%.$df
>!u%rcpuctjdtdD}|jt5t|dddy#1swYyxYw)Nc3 K|]}dyw)rNr)runuseds  rrzERegressionTests.test_long_chain_of_empty_iterables.<locals>.<genexpr>i	s B Brki)rrr=rrIrrs  r"test_long_chain_of_empty_iterablesz2RegressionTests.test_long_chain_of_empty_iterablesc	sH
 
  B%/ B
B


}
-	H			sAAc`fd}ttd|D]\}ty)Nc.|dk(rt|dk7S)Nrr)r )r>rs rrz,RegressionTests.test_issue30347_1.<locals>.fn	sAvQ6Mrrf)rBr=r )rrrErs   @rtest_issue30347_1z!RegressionTests.test_issue30347_1m	s/	eBi+	FQG	rcGfdd}dtttd|dtdD]}tdy)Nc eZdZdZfdZy),RegressionTests.test_issue30347_2.<locals>.Kcyrrr\s  rrz5RegressionTests.test_issue30347_2.<locals>.K.__init__w	src2dz
dk(rtdy)NrTr)rotherrr0s  rrz3RegressionTests.test_issue30347_2.<locals>.K.__eq__y	sQ6DMrN)rMrNrOrr)rr0srKrv	s


rrrrfrr')rrBr=)rrrrr0s   @@rtest_issue30347_2z!RegressionTests.test_issue30347_2u	sJ		
rA&'*q	ADM	rN)rMrNrOrrrskip_if_pgo_taskrequires_resourcerrrrrrrr(	sE(:&8
Wu%&
rrceZdZdZy)SubclassWithKwargsTestctdddgftddgdfddgftdddgfdgftdddgfdgftddgdd	gfgd
ft
tddgfddgfttjd
fddgftgdddfddgfttgdfdgfttgdfdd	gftddgfgdftdgdfddgfg}|D]\}}}|j!|5Gdd|}||}|j#t%|||j't)t|dd||j+t,5||ddidddddd|D]\}}}|tttfvr|j!|5Gdd|}||ddi}|j#t%|||j't)t|dd||j'|j.dddd|D]\}}}|j!|5Gdd|}||ddi}|j#t%|||j't)t|dd||j'|j.ddddy#1swYSxYw#1swYxYw#1swYaxYw#1swYxYw)NrRrr'rrRrrrrr12)rMr
rr)rr'rr)r'rr)rr'rr1rnrrceZdZy)BSubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclassNrrrrsubclassr	srrnewargceZdZdddZy)LSubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclass_with_initNrc||_yrr)rrr#s   rrzUSubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclass_with_init.__init__	s	&,r)rMrNrOrrrrsubclass_with_initr	s
59-rrc$eZdZddfd
ZxZS)KSubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclass_with_newNrc6t||g|}||_|Sr)super__new__r)clsrr#rrs    rrzSSubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclass_with_new.__new__	s"$ws:T:&,#r)rMrNrOr
__classcell__)rs@rsubclass_with_newr	s37$$rr)rr!rcrrrrur`rVrZrQrr4rrrwrrr~r}r rrvr)	rrrr#r rurrs	         rtest_keywords_in_subclassz0SubclassWithKwargsTest.test_keywords_in_subclass	sVaV$
Aq64.8X"67
dQF^aS)
4!Q.1#.
aVaV$i0
3A-#s,
x||%56A?
lAq)Aq62
+aS1
+aV4
aVIy)
y)C:6

	"+	.Cvc"
.sdO

d1gx0  fQ1o!6?&&y1.d-1-.

.
.	."+
	.CvvsH--c"
.--'7Q7

d1g'9:  fQ1o!6?  1-
.
.

	."+
	.Cvc"	
.$$
&t6A6

d1g'89  fQ1o!6?  1-	
.	
.
	.%..

.
.
.
.	
.	
.s?A'J&?	JJ&A1J3A1KJ#J&&J0	3J=	K		N)rMrNrOrrrrrr	s3.rrcBeZdZdZej
ZdZdZdZdZ	y)
SizeofTestc8tjd|_y)Nr>)structcalcsizessize_trDs rsetUpzSizeofTest.setUp	ss+rctjd}|j}|tdd|d|jzz|td|d|jzzy)N3Pir12r')
rrrrrrrrrrrf)rcalcobjsizecheck_sizeofr<rrbasesizechecks   rtest_product_sizeofzSizeofTest.test_product_sizeof	sY&&u-!!
gdD!8a$,,.>#>?
g
'B4E)EFrctjd}|j}|tdd|d|jzz|ttdd|d|jzzyN3Pnirrrfr)rrrrrr=rs   rtest_combinations_sizeofz#SizeofTest.test_combinations_sizeof	s_&&v.!!
l61%x!dll2B'BC
l59a((Q5E*EFrct}tjd}|j}||dd|d|jzz||tdd|d|jzzyr)rrrrrr=)rrCrrs    r)test_combinations_with_replacement_sizeofz4SizeofTest.test_combinations_with_replacement_sizeof	sc+&&v.!!
c&!nhT\\)99:
c%)QA,<!<=rctjd}|j}|td|d|jzzd|jzz|tdd|d|jzzd|jzz|tdd|d|jzzd|jzz|ttdd|d|jzzd|jzzy)N4Pnirrrr*rrf)rrrr
rr=rs   rtest_permutations_sizeofz#SizeofTest.test_permutations_sizeof	s&&v.!!
l6"T\\))A,<<	>
l61%T\\))A,<<	>
l7A&T\\))A,<<	>
l59a(dll**Q-==	?rN)
rMrNrOrrrrrrrrrrrr	s*,''LGG>
?rrcL|jtj|Sr)addTestdoctestDocTestSuite)loadertestspatterns   r
load_testsr	s	MM'&&()Lr__main__)Er	unittesttestrtest.supportrrrudecimalr	fractionsrrVr?rri	functoolsrrrrrrrMAX_Py_ssize_trminsizer$r*r-r1r4r8r:r?rBrSrZr\rardrgr=rrTestCaserprrr!rOrrr_rrgrrorur{r}rrrrrrrMmain)rms0r<module>rs))



	&
 
 (1*
 -
$F$;$;a$?@B"'LB
B"8$$B"J4mM8$$mM`@%X%6%6@%Fk9X

k9Z
		2
qEh//qEfJ**JZh''Zz4.X..4.n	#?""#?#?L
zHMMOGLBs4H