python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_itertools.cpython-312.opt-1.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)reducecfd}|S)z Run the test three times.
    First, verify that a Deprecation Warning is raised.
    Second, run normally but with DeprecationWarnings temporarily disabled.
    Third, run with warnings promoted to errors.
    c|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|zS)zTest function of one argumentrxs roneargr)-sQ3Jrct)z"Test function that raises an error)
ValueErrorr"s rerrfuncr,1s
rc#"KdD]}|yw)zNon-restartable source sequencerrr&Nr)is rgen3r05s

c|dzdk(S)Test predicater&rrr's risEvenr4:Q36Mrc|dzdk(S)r3r&rrr's risOddr7>r5rc|Srrr"s rtupleizer9BsKrc#4Kt|D]}|ywrrange)nr/s  riranger>Es
1XceZdZdZdZdZy)StopNowz"Class emulating an empty iterable.c|Srrrs r__iter__zStopNow.__iter__Krctr
StopIterationrCs r__next__zStopNow.__next__MrN)__name__
__module____qualname____doc__rDrIrrrrArAIs(rrAc,tt||S)zHConvenience function for partially consuming a long of infinite iterable)r islice)r=seqs  rtakerRPssArc8ttj|dSNr)roperatormuliterables rprodrYTs(,,!,,rc2ttd|dzS)	Factorialr)rYr<)r=s rfactr\Wsa1
rc|dSNrrrs rtestRra\Q4Krc|dSNr&rr_s rtestR2re_rbrc|dkS)N
rr's rundertenrhbsR4KrcTtjtj||Sr)pickleloadsdumps)sprotos  r<lambda>roes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)>TestBasicOpsNcdfd	tj||}tj|}|jt	|t	|||}	}|j||	|r|}
|j||
tj|}d}	t|D]}
t
||dz
}	tj||}tj|}||}	}|j||	|r||d}
|j||
yy#t$rYywxYw)zITest that an iterator is the same after pickling, also when part-consumedrc|dkDrtdt|tr|S	tt	|}|Dcgc]}||dzc}S#t
$r|cYSwxYwcc}w)Nrgzinfinite recursion encounteredr)RuntimeError
isinstancestrr rP	TypeError)itr/leexpandstops    rr{z'TestBasicOps.pickletest.<locals>.expandlsp2v"#CDD"c"	
D)*-..qF1acN..
	
.sAA%A"!A"rNr)rjrlrkassertEqualtyper<nextrH)rprotocolrxr|rRcomparedumpi2abci3tookr/i4r{s   `           @r
pickletestzTestBasicOps.pickletestjs7
	/||B)
\\$
b48,bz6":1AwAQ"\\$
	4[
R	

||B)
\\$
bz6":1Awtu~&AQ"
		s/ D>>	E
	E
c
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)Nrg)
rrrg$-rWabc)rabrrr'r)
r&	rrrrrr)
r&r&r&r&r&rrrrr)
r&rrrrrrrrr)
r&iirrrrr)initial)rgrr)rgrrd)rnst)r~r 
accumulater<intcomplexrrmaprrwminmaxrUrVchrrjHIGHEST_PROTOCOLr)rtyprmrns    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)rmr=batchesc3>K|]}t|tuywr)rtuple).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 batchedrrwr+r<rsubTestjoinchain
assertTrueallpopappend)rdatar/rmr
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)
Nc70K|D]
}|D]}|yw)zPure python version in the docsNr)	iterablesrxelements   rchain2z'TestBasicOps.test_chain.<locals>.chain2s)
"!"G!M"
"srdefabcdefrrabcdr&r)rr~r rRrrw)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_iterablerRrrwrPrepeatr<rCs 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 rrRrrwr<rjrr)roperrxrns    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)rrrdrzfghi)rrrrrrzr)rrwr__setstate__iterr~r rrxs  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 rroz0TestBasicOps.test_combinations.<locals>.<lambda>Ar ABCDrrrrrrrrrr)rrrrrrrr.rrrrr&rrr&r)rrrc3zKt|t}||kDrytt|}tfd|D	t	t|D]}||||z|z
k7sny||xxdz
cc<t|dz|D]}||dz
dz||<tfd|Dpw)%Pure python version shown in the docsNc3(K|]	}|ywrrrr/pools  rrzHTestBasicOps.test_combinations.<locals>.combinations1.<locals>.<genexpr>/1AQ1rc3(K|]	}|ywrrrs  rrzHTestBasicOps.test_combinations.<locals>.combinations1.<locals>.<genexpr>95DG5rrrr r<reversed)rXr`r=indicesr/jrs      @r
combinations1z5TestBasicOps.test_combinations.<locals>.combinations1(s?DD	A1u58nG1111!%(+AqzQUQY.
a
qsA2A!(1!1GAJ25W555s
A-B;1A
B;c3Kt|t}tt||D]0}t	|t|k(stfd|D2yw)rc3(K|]	}|ywrrrs  rrzHTestBasicOps.test_combinations.<locals>.combinations2.<locals>.<genexpr>A9AQ9rN)rrpermutationsr<sortedr rXr`r=r	rs    @r
combinations2z5TestBasicOps.test_combinations.<locals>.combinations2;sT?DD	A'a!4
:'?d7m39999
:AA#
A#c3Kt|t}tt||D]0}tt	||k(stfd|D2yw)zPure python version from cwr()c3(K|]	}|ywrrrs  rrzHTestBasicOps.test_combinations.<locals>.combinations3.<locals>.<genexpr>IrrN)rrcombinations_with_replacementr<setrs    @r
combinations3z5TestBasicOps.test_combinations.<locals>.combinations3CsU?DD	A8q1E
:s7|$)9999
:rrrrc3&K|]}|v
ywrrrrzvaluess  rrz1TestBasicOps.test_combinations.<locals>.<genexpr>V'?V'?)rrwcombinationsr+rr~r rr<rr\rrrrrjrr)roptestIntermediaterrrr=r(r`resultrrzrnrs             @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
OverflowErrorMemoryErrorrrCs rtest_combinations_overflowz'TestBasicOps.test_combinations_overflow`s4



{;
<	&u%	&	&	&
2;z"tuple reuse is specific to CPythonc|jtttttddd|j
ttttttdddyNabcderr)r~rrridrassertNotEqualr rCs 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 rrozATestBasicOps.test_combinations_with_replacement.<locals>.<lambda>srrABC)rrrrrrrrr)rrr5rr6c3Kt|t}|s|rydg|z}tfd|D	tt|D]}|||dz
k7sny||dzg||z
z||dtfd|DPw)rNrc3(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<)rXr`r=r	r/rs     @rcwr1z=TestBasicOps.test_combinations_with_replacement.<locals>.cwr1|s?DD	AcAgG1111!%(+AqzQU*&qzA~.!a%85W555sAB-Bc3Kt|t}tt||D]0}t	|t|k(stfd|D2yw)rrc3(K|]	}|ywrrrs  rrzPTestBasicOps.test_combinations_with_replacement.<locals>.cwr2.<locals>.<genexpr>rrN)rrproductr<rr rs    @rcwr2z=TestBasicOps.test_combinations_with_replacement.<locals>.cwr2sT?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)rrrwr+rr~r rr<rrrrrgroupbyrrjrr)rcwrr r!r:r?rBr=r(r`r"
regular_combsrkvnorunsrzrnrs                  @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'rrCs 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 )rrEs  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&rrrrmr)rrrr&rrrr&)r&r)r&rc3Kt|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)rNrrc3(K|]	}|ywrrrs  rrzHTestBasicOps.test_permutations.<locals>.permutations1.<locals>.<genexpr>s5AQ5rrc3(K|]	}|ywrrrs  rrzHTestBasicOps.test_permutations.<locals>.permutations1.<locals>.<genexpr>s#ADG#Arr)rXr`r=r	cyclesr/r
rs       @r
permutations1z5TestBasicOps.test_permutations.<locals>.permutations1s)?DD	AYAA1u58nG%!Aqs+,TrT2F5!555!%(+A1INIayA~&-acdmga!n&D$%Eq	"1I291"+wqz/
GQBK##AWRa[#AAAsC6C<:C<c3Kt|t}||n|}tt||D]0}tt	||k(stfd|D2yw)rNr<c3(K|]	}|ywrrrs  rrzHTestBasicOps.test_permutations.<locals>.permutations2.<locals>.<genexpr>rr)rrr>r<rrs    @r
permutations2z5TestBasicOps.test_permutations.<locals>.permutations2s`?DD	AYAA"58A6
:s7|$)9999
:sA
A*A*rrrrc3&K|]}|v
ywrrrs  rrz1TestBasicOps.test_permutations.<locals>.<genexpr>rrr)rrwrr+r~r r<rr\rrrrrjrr)
rrYr\r=r(r`r"prnrs
         @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)NrrL)rr&r'rrCs rtest_permutations_overflowz'TestBasicOps.test_permutations_overflows4



{;
<	%e$	%	%	%r)c|jtttttddd|j
ttttttdddyr+)r~rrrr-rr.r rCs rtest_permutations_tuple_reusez*TestBasicOps.test_permutations_tuple_reuse	r0rc
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>rrrr~rr\rrfilter__contains__)	rr=rmr`rYrEpermcombts	         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)rrrrrrrrrACr3)rrrrrrBC'rrQrrrc,tj|Sr)rrs rroz,TestBasicOps.test_compress.<locals>.<lambda>AsDIIaLrc,tj|Sr)rrrs rroz,TestBasicOps.test_compress.<locals>.<lambda>As4==3CrCEFBCDEFr)r~r compressrrrr<rrwrr)rr=rrnr result1result2r!s        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)rrrrrgr
@)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$countrRr!rrwmaxsizer r<rrreprrrfloatsys__mod__rrrjrrexc_info)rBIGINTrr/r1r2valuerns        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)rrrrrrgrg?)r&rg@r)r&ry!@ rz.1z1.2z1.3rrrg@)rgg)@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$rrrwrRrr<r rrrrrrrrrjrr)rrrr/r
rrrns        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)Nrgr
abcabcabcarr)
rrr&rrr&rrr&r)r~rRcycler rrwrPr0rCs 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)Nrrrg
bcabcabcabr
cabcabcabcr,r&rcdeabcdeabcdeabcdeabr)rr~rrRrrr r<rjrrkrlrr)rrrnrxr/_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.rg)
r&rrr&rrr&rrr&)rjrkr~rR)r	testcasesrirxs    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~rRrrwr)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 rroz+TestBasicOps.test_groupby.<locals>.<lambda>2arrg))rrgr)rr)rrr)r
r)r)r&rr)rr)rrrc|dSr^rr_s rroz+TestBasicOps.test_groupby.<locals>.<lambda>8s
!rrrr&	AABBBAAAAr)rrabracadabra)rrrrr`)rrr`)rrr&r)rr)rrr&r`T)reverser)rrrceZdZy)0TestBasicOps.test_groupby.<locals>.ExpectedErrorNrKrLrMrrr
ExpectedErrorrsrrc38Kt|D]}dw)Nyor;)r=r/rs  r
delayed_raisez0TestBasicOps.test_groupby.<locals>.delayed_raises%1X


scXt||Dcgc]
\}}||c}}Scc}}wr)rD)rXkeypfuncrGgs     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)rKrLrMr)rsrDummyCmprs
$rr)rcTjdkDrxjdzc_|SrA)skip)objrkeyfuncs rrz*TestBasicOps.test_groupby.<locals>.keyfuncs(||a!
##rr})r~r rDr-rrwrr<rjrrkrlrarerrr!rrrP	Exceptionr)rrmduprGrelemrnikigkeysr`expectedkeysrxrg1g2g3rrrrrs                    @@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 rroz*TestBasicOps.test_filter.<locals>.<lambda>arc|Srrr's rroz*TestBasicOps.test_filter.<locals>.<lambda>rrrr)r~r rer4r<boolrRrrrwrrrrjrrkrlrransrrns    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)Nrrtrrrrr)rrrrc|Srrr's rroz/TestBasicOps.test_filterfalse.<locals>.<lambda>1rc|Srrr's rroz/TestBasicOps.test_filterfalse.<locals>.<lambda>rrrrr)r~r filterfalser4r<rrRrrrwrrjrrrrns  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$rRrrwr)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~rrr)r rr-r!r~rrrdictfromkeysrrrr<rjrrkrlrr)ridsr(rrrnr!s       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)rrzs  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_longestrrRrr!rrwevalglobalslocalsfail)rr#r/argtargetristmtrs        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<rjrrrrs  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 rrDzHTestBasicOps.test_zip_longest_bad_iterable.<locals>.BadIterable.__iter__@srN)rKrLrMrD)rsrBadIterabler?s
 rr)rwrrassertIsr)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)orrirz)rrrirzs    r__init__z5TestBasicOps.test_bug_7244.<locals>.Repeater.__init__LsQrc|SrrrCs rrDz5TestBasicOps.test_bug_7244.<locals>.Repeater.__iter__Prcz|jdkDr!|xjdzc_|jS|jrA)rirrzrCs rrIz5TestBasicOps.test_bug_7244.<locals>.Repeater.__next__Rs,66A:FFaKF66M&&LrN)rKrLrMr rDrIrrrRepeaterrJs


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

q!f%
&M""sAA"	)rTrTrTrRrrrT)rHr~rtrrr)rr$rrr)rxs      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)rrzrsrrrgrW)r~r pairwiser<r!rrwrCs 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)rrrQrRrS)rrrTrrr<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|]\}}||ywrrrrr/s   rrz>TestBasicOps.test_product.<locals>.product1.<locals>.<genexpr>sCGD!QCc3,K|]\}}||ywrrr6s   rrz>TestBasicOps.test_product.<locals>.product1.<locals>.<genexpr>sKGD!QKr7)	r rrgetranyr!rr<)r#kwdspoolsr=r	r/r
s       rproduct1z+TestBasicOps.test_product.<locals>.product1sUD)*TXXh-BBEE
AAv4e44cAgGCs5'/BCCC!%(+	AqzSq]Q%66 AJ!OJ"1Q3]'%&
'Ks5'7JKKK	sC2C4c?Kttt||jddz}gg}|D]}|Dcgc]}|D]}||gz
}}} |D]}t|ycc}}ww)z Pure python version used in docsrrN)r rrr9)r#r;r<r"rr(rrYs        rproduct2z+TestBasicOps.test_product.<locals>.product2sUD)*TXXh-BBETF
?)/>A>A!QC%>%>>
?
"Dk!
"?s:A0A* A0rrr)rrrrrrrr)r<r~r r>rrrrwrrrandom	randrangechoicerYrr)
rr#r"r`r=r?argtypesr/r
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>rCs rtest_product_overflowz"TestBasicOps.test_product_overflows=



{;
<	2tfTk151	2	2	2s5>c|jtttttddd|j
ttttttdddy)Nrrr)r~rrrr-r>r.r rCs 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)
Nrrrr1r&rr2rr)	r<r~r rr>rrjrr)rr#r"rns    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)NrT)r)rr&rr)rrrM)r>rr~rrrH)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)rgr&aar)r~r rr$r<rRrrwrrrrrjrr)rr`rrns    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)rrR)r~rrrCs 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&rrrgr)r~r rrUpowr<r9rrRrrwnegrr+r,r)rrrjrrrs    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)NrrrrZrrirrextrarg)r~r starmaprUr[r!r<rRrrrrwrr+r,r)rrrjrrrs    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)rgrrrgrrrgr)rgrgrgrrr)))rgrr)rgrr))rgr)rgr))r)rrgr&rrrrrr2)rdrerfrgrhc3 K|]}|ywrr)rr(s  rrz+TestBasicOps.test_islice.<locals>.<genexpr>s
 Aa
 rTceZdZdZdZy))TestBasicOps.test_islice.<locals>.IntLikec||_yrvalrrqs  rr z2TestBasicOps.test_islice.<locals>.IntLike.__init__s	rc|jSrrprCs r	__index__z3TestBasicOps.test_islice.<locals>.IntLike.__index__sxxrN)rKrLrMr rtrrrIntLikerns

 rrur)r~r rPr<rrrwr+rrrrrrrjrrweakrefrefassertIsNotNoner
gc_collectassertIsNonerQ)	rr#tgtargsrxrarrnwrrus	         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&rrrrtr_r`rg)rrrrrrrrrr)r~r 	takewhilerhrrwrUr[rr+r,rrHrrr<rjrr)rrrirns    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`rgr)r~r 	dropwhilerhrrwrUr[rr+r,rrr<rjrr)rrrns   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(rrrinvalidrrg	__class__rs<r)teer~r r>r$r<rr@shufflerrrwrr+rrrrvproxygetattrrryReferenceErrorrrRrrjrrr)rr=rrr/r
orderlistsitsrrr"r(rt1t2tnewt3r^rlong_ansrns                      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)rrr:)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|SrrrCs rrDz1TestBasicOps.test_tee_reenter.<locals>.I.__iter__gr"rcF|j}d|_|rtSyNF)firstr)rrrs  rrIz1TestBasicOps.test_tee_reenter.<locals>.I.__next__is$

"
7NrN)rKrLrMrrDrIr1srIresE

#rrr)rassertRaisesRegexrtr)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|SrrrCs rrDz4TestBasicOps.test_tee_concurrent.<locals>.I.__iter__xr"rcFjjyr)rwait)rfinishrs rrIz4TestBasicOps.test_tee_concurrent.<locals>.I.__next__zs		
rN)rKrLrMrDrI)rrsrrrws


rr)r
r#r)	threadingEventrThreadrrrrrtrr)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 rroz1TestBasicOps.test_StopIteration.<locals>.<lambda>rrc|Srrr's rroz1TestBasicOps.test_StopIteration.<locals>.<lambda>rr)rrHrr!rrrDrArPrrrerrrrra)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|yrT)rrgccollectr
is_trackedrs  rtest_combinations_result_gcz(TestBasicOps.test_combinations_result_gcs?
4*a
(R


	


d2h/0rctdggd}t|tj|j	tj
t|yrT)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|yrT)rrrrrrrs  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)	itertoolsrrrrrrrrryrrrrrDrPr.rr>rrarrrrrwfoobar)rrrrdatasetrs      rtest_immutable_typesz!TestBasicOps.test_immutable_typess==)-
0	"B$
"++I{C" !BI"
"
"	"""
"
"s$CB8%C8C=CC
	)rrN)DrKrLrMrrrrrrrrr#rbigaddrspacetestr(impl_detailr/rJrMrOr_rarcrjr|rrrrrrrrrrrrrrrr*r/rErGrIrKrOrUrXr]rbr~rrrrrrrequires_working_threadingrrcpython_onlyrrrrrrrrrrqrqhso'$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
""rrqceZdZdZedZedZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZdZdZdZdZy)TestExamplescT|jttgdgdyNrr&rrrrrrrgr)r~r rrCs 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<rjrrr~r rkrlrrr)rraccumulatedrnrxs     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)
rrUis_r~rr<rjrrkrlr rr)rrxrnit_copys    rtest_accumulate_reducible_nonez+TestExamples.test_accumulate_reducible_nones*HLL
9b4(622Q67	;Ell6<<E#:;GT']T5M:	;	
dmmB/04-@diim,tUm<rcZ|jdjtdddyNrr3DEFrl)r~rrrCs rrzTestExamples.test_chain
s"ue!45x@rcp|jdjtjddgdyr)r~rrrrCs rrz%TestExamples.test_chain_from_iterables*!4!4eU^!DExPrc	|jttddgd|jtttddgdy)Nrr&rrrr)r~r rr<rCs rr#zTestExamples.test_combinationssEl6156[	]l58Q78=	?rcR|jttddgdy)Nr3r&r4)r~r rrCs rrJz/TestExamples.test_combinations_with_replacements#;E1EF[	]rc	d|jttdgdtdy)Nrlrmro)r~r ryrCs rr|zTestExamples.test_compresss"hx?@$v,Orc	d|jtttddgdy)Nrgr)rgrrrr)r~r rPrrCs rrzTestExamples.test_count s#fU2Y235IJrc	r|jtttddtdy)NrrABCDABCDABCD)r~r rPrrCs rrzTestExamples.test_cycle#s'fU6]B78$~:NOrc	X|jttdgdgdy)Nc|dkSNrrr's rroz-TestExamples.test_dropwhile.<locals>.<lambda>'
!A#rrrrrr)rrr)r~r rrCs rrzTestExamples.test_dropwhile&si
{CDgNrc	H|jtdDcgc]\}}|	c}}td|jtdDcgc]\}}t|c}}tdtdtdtdgycc}}wcc}}w)NAAAABBBCCDAABBBABCDAB
AAAABBBCCDAAAABBBCCr)r~rDr )rrGrs   rrzTestExamples.test_groupby)s|0A(BC1!Ch	)0EF147Fv,UT$ZcK	MDFsB
B
c
f|jttdtdgdy)Nc|dzSrdrr's rroz*TestExamples.test_filter.<locals>.<lambda>0s
qsrrg)rrrrr)r~r rer<rCs rrzTestExamples.test_filter/s"f]E"I>?Mrc
f|jttdtdgdy)Nc|dzSrdrr's rroz/TestExamples.test_filterfalse.<locals>.<lambda>3s
AaCrrg)rr&rrr)r~r rr<rCs rrzTestExamples.test_filterfalse2s"k-rCDkRrc	\|jtttddgdy)N)r&rrg)rr&rrrr)r~r rr[rCs rr]zTestExamples.test_map5s c#x9:MJrc
||jttddtd|jttdddtd|jttdddtd|jttddddtdy)	Nrr&ABrCDCDEFGrACEG)r~r rPrCs rr~zTestExamples.test_islice8sfY23T$Z@fY156T
CfY4894=IfY4;<d6lKrcR|jttddddgy)Nrxyrr(rr)r~r r!rCs rrzTestExamples.test_zip>s#c&$/0:z2JKrc	V|jttdddgdy)Nrr-r)rr)rr)rr)r~r rrCs 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 rrrsplitr<rCs 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)rrrrp)rrrr)r~r r>rrr
r<rCs rrEzTestExamples.test_productKs]gfd34c%)B)H)H)JKL	NgeAhq9:=	>rcR|jttddgdy)Nrgr)rgrgrg)r~r rrCs rrUzTestExamples.test_repeatRsfRm,l;rc	^|jtttgdgdy)N))r&rrr&rgr)r~r rar[rCs rtest_stapmapzTestExamples.test_stapmapUs"gc+ABC&	(rc	X|jttdgdddgy)Nc|dkSrrr's rroz-TestExamples.test_takewhile.<locals>.<lambda>Zrrrrr)r~r rrCs rrzTestExamples.test_takewhileYs"i
{CDqeLrN)rKrLrMrrrrrrr#rJr|rrrrrrr]r~rrr_rErUrrrrrrrsK
?
?==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)zBBatch data into tuples of length n. The last batch may be shorter.rzn must be at least oneN)r+rrrP)rXr=rxrs    rbatched_recipezJTestPurePythonRoughEquivalents.test_batched_recipe.<locals>.batched_recipe`sW1u !9::hB A//%/!A//%/sAAA)	rrrrrr,rrN)rrrr&rrrrrrrN)rXr=)r>rr rrrr~)	rrrXr=e1rrze2rs	         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]\}}	YywxYwwrA)slicerr|rrrrr<rrHr!	enumerate)
rXr#rmrr|rrxnextir/rs
          rrPz%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&rrrrrrrgrrrj)r~r rPrr<rr)rrxrs   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)rKrLrMrstaticmethodrPrrrrrr]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  rrJz)TestGC.test_combinations_with_replacements%4a!AYBAFrcDg}|jtdgd|y)Nrl)rrrrrr)r&ryr)s  rr|zTestGC.test_compresssx-8!<rcg}tdtft|}|jt	|d|d|y)NIntr'rr)rrrr&r)rrr2s   rrzTestGC.test_counts853&$),uSVSV,a0rcFg}|jt|gdz|yrd)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 rroz%TestGC.test_groupby.<locals>.<lambda>sqr)r&rDr)s  rrzTestGC.test_groupbys"ws1uj115rcd}d}tt||D]0\}}|jjdgj	|2y)Nrgc|Srrr's rroz'TestGC.test_issue2246.<locals>.<lambda>rrrr()rDr<__dict__
setdefaultr)rr=rr/r
s     rtest_issue2246zTestGC.test_issue2246sKE!H'2	:DAq''B/66q9	:rcJg}|jtd|gdz|y)Ncy)NTrr's rroz$TestGC.test_filter.<locals>.<lambda>rr&)r&rer)s  rrzTestGC.test_filters"vmaSU3Q7rcBg}|jtd||y)Ncyrrr's rroz)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 rroz!TestGC.test_map.<locals>.<lambda>sArr&)r&rr)s  rr]zTestGC.test_maps"s:s1u-q1rcHg}|jt|gdzd|yrd)r&rPr)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&rr)s  rr_zTestGC.test_permutationsr.rcJg}|jtdd|dgd|y)Nrr&rr<)r&r>r)s  rrEzTestGC.test_products$w!Aay3Q7rc>g}|jt||yr)r&rr)s  rrUzTestGC.test_repeatsvay!$rcNg}|jtd||fgdz|y)Nc|Srr)ris rroz%TestGC.test_starmap.<locals>.<lambda>s!rr&)r&rar)s  rrbzTestGC.test_starmaps&w|qeWQY7;rc	Pg}|jttdd||g|y)Nrr)r&rrr)s  rrzTestGC.test_takewhile	s$y1a|4a8rN)rKrLrMr&rrrrr#rJr|rrrrr;rrrrr]r~r/r_rErUrbrrrrr"r"s 
11$46G=1
(66:8:-B2/+68%<9rr"c#"K|D]}|yw)zRegular generatorNrseqnr/s  rRrP
s
r1ceZdZdZdZdZy)rzSequence using __getitem__c||_yrrOrrOs  rr z
G.__init__s		rc |j|SrrS)rr/s  r__getitem__z
G.__getitem__syy|rN)rKrLrMrNr rVrrrrrs rrc"eZdZdZdZdZdZy)rz Sequence using iterator protocolc ||_d|_yr^rNrTs  rr z
I.__init__	rc|SrrrCs rrDz
I.__iter__rErc|jt|jk\rt|j|j}|xjdz
c_|SrTr/rrOrHrrHs  rrIz
I.__next__ ?66S^#=%8IIdff!rNrKrLrMrNr rDrIrrrrrs&rrceZdZdZdZdZy)Igz9Sequence using iterator protocol defined with a generatorc ||_d|_yr^rNrTs  rr zIg.__init__(rYrc#6K|jD]}|ywrrSrrs  rrDzIg.__iter__+s99	CI	sNrKrLrMrNr rDrrrrara&s?rraceZdZdZdZdZy)rz Missing __getitem__ and __iter__c ||_d|_yr^rNrTs  rr z
X.__init__1rYrc|jt|jk\rt|j|j}|xjdz
c_|SrTr\r]s  rrIz
X.__next__4r^rN)rKrLrMrNr rIrrrrr/s&rrceZdZdZdZdZy)NzIterator missing __next__()c ||_d|_yr^rNrTs  rr z
N.__init__<rYrc|SrrrCs rrDz
N.__iter__?rErNrdrrrriri:s!rric"eZdZdZdZdZdZy)rzTest propagation of exceptionsc ||_d|_yr^rNrTs  rr z
E.__init__DrYrc|SrrrCs rrDz
E.__iter__GrErcddzy)NrrrrCs rrIz
E.__next__Is		QrNr_rrrrrBs$rrc"eZdZdZdZdZdZy)E2z3Test propagation of exceptions after two iterationsc ||_d|_yr^rNrTs  rr zE2.__init__NrYrc|SrrrCs rrDzE2.__iter__QrErc|jdk(rt|j|j}|xjdz
c_|S)Nr&r)r/ZeroDivisionErrorrOr]s  rrIzE2.__next__Ss766Q;##IIdff!rNr_rrrrqrqLs9rrqc"eZdZdZdZdZdZy)SzTest immediate stopcyrrrTs  rr z
S.__init__\src|SrrrCs rrDz
S.__iter__^rErctrrGrCs rrIz
S.__next__`rJrNr_rrrrwrwZs
rrwcdttdttt	|S)z Test multiple tiers of iteratorsc|Srrr's rrozL.<locals>.<lambda>esar)rrrPrarrSs 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)rrrrar}rPr~r rrwrrwrrirurrrmr`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-)rzr&)rr)rrrar}rPrr~r rrwrrwrrirurrqrs     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<rrrarwr}rPr~r rrrwrrirurrrmrs   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<rrrrarwr}rPr~r ryrrrwrrirur)rrmr=rs    rr|z%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<rrwr>rrirur)rrms  rrEz$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<rrrarwr}rPrr rPrr~rrwrrirur)rrmrtgtlenexpectedactuals      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}}wNrgrrrrrrr)r<rrrarwr}rPr~rDr rrwrrirur)rrmrrGsbs     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<rrrarwr}rPr~r rer4rrwrrirurrrmrr(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<rrrarwr}rPr~r rr4r7rrwrrirurrs    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<rrrarwr}rPr~r r!r$rrwrrirurrs   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<rrrarwr}rPr~r rr!rrwrrirurrs   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}wNrgrrrrrjr)r<rrrarwr}rPr~r rr)rUr[rrwrrirurrs    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&rg)r<rrrarwr}rPr~r rPrrwrrirurrs   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<rrrarwr}rPr r!r.r~rrwrrirur)rrmrrQrrs      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<rrrarwr}rPr$r~r rarUr[rrwrrirur)rrmrssr(s     rrbz$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<rrrarwr}rPr4rr~r rrrwrrirurrrmrtgtrs     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<rrrarwr}rPr7rr~r rrrwrrirurrs     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<rrrarwr}rPrr~r rrwrrirur)rrmrit1it2s     rrz TestVariousIteratorArgs.test_tee	sU4[+uT$q7IJ	EAB1a(
8qt9S  cD1J7  cD1J7
8
iad3iad3/s1Q4y|D	ErN)rKrLrMrrrr|rErrrrrrr]r~r/rbrrrrrrrrhsn	EFDR@	DFMRBJ	JI	GU
P
OErrceZdZdZdZy)LengthTransparencyc|jtjtddd|jtjtddd|jtjtdddy)Nrjrrr~rUlength_hintrrCs rrUzLengthTransparency.test_repeat	sf--fT2.>?D--fT1o>B--fTlB?Drc|jtjtddd|jtjtddd|jtjtddd|jtjtdddy)NrrrrWrrCs rrXz2LengthTransparency.test_repeat_with_negative_times"	s--fT2.>?C--fT2.>?C--fT.DEqI--fT.DEqIrN)rKrLrMrUrXrrrrr	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 )rirs 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)Nc3dKjddjdtwrA)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 Brli)rrr<rrHrrs  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	sAvQ6Mrrg)rDr<r )rrrGrs   @rtest_issue30347_1z!RegressionTests.test_issue30347_1m	s/	eBi+	FQG	rcGfdd}dtttd|dtdD]}tdy)Nc eZdZdZfdZy),RegressionTests.test_issue30347_2.<locals>.Kcyrrr]s  rr z5RegressionTests.test_issue30347_2.<locals>.K.__init__w	src2dz
dk(rtdy)NrTr)rotherrr/s  rrz3RegressionTests.test_issue30347_2.<locals>.K.__eq__y	sQ6DMrN)rKrLrMr r)rr/srKrv	s


rrrrgrr&)rrDr<)rrr
rr/s   @@rtest_issue30347_2z!RegressionTests.test_issue30347_2u	sJ		
rA&'*q	ADM	rN)rKrLrMrrrskip_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)NrTrr&rrSrrrrr12)rNrrr)rr&rr)r&rr)rr&rr3rprrceZdZy)BSubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclassNrrrrsubclassr	srrnewargceZdZdddZy)LSubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclass_with_initNrc||_yrr)rrr#s   rr zUSubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclass_with_init.__init__	s	&,r)rKrLrMr rrrsubclass_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)rKrLrMr
__classcell__)rs@rsubclass_with_newr	s37$$rr)rr!rerrrrvrarUr[rPrr4rrryrrrr~r rrwr)	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)rKrLrMrrrrrr	s3.rrcBeZdZdZej
ZdZdZdZdZ	y)
SizeofTestc8tjd|_y)Nr=)structcalcsizessize_trCs rsetUpzSizeofTest.setUp	ss+rctjd}|j}|tdd|d|jzz|td|d|jzzy)N3Pir12r&)
rrrrrrrrrrrg)rcalcobjsizecheck_sizeofr>rrbasesizechecks   rtest_product_sizeofzSizeofTest.test_product_sizeof	sY&&u-!!
gdD!8a$,,.>#>?
g
'B4E)EFrctjd}|j}|tdd|d|jzz|ttdd|d|jzzyN3Pnirrrgr)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<)rrErrs    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,rrg)rrrrrr<rs   rtest_permutations_sizeofz#SizeofTest.test_permutations_sizeof	s&&v.!!
l6"T\\))A,<<	>
l61%T\\))A,<<	>
l7A&T\\))A,<<	>
l59a(dll**Q-==	?rN)
rKrLrMrrrrrrrrrrrr	s*,''LGG>
?rrcL|jtj|Sr)addTestdoctestDocTestSuite)loadertestspatterns   r
load_testsr	s	MM'&&()Lr__main__)Erunittesttestrtest.supportrrrvdecimalr	fractionsrrUr@rrj	functoolsrrrrrrrMAX_Py_ssize_trminsizer$r)r,r0r4r7r9r>rArRrYr\rarerhr<rrTestCaserqrrr"rPrrrarrirrqrwr}rrrrrrrrKmain)rns0r<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