
    0hh                        S SK r S SKrS SKrS SKJr  S SKJrJr  S SK7  S SKrS SK	J
r
  S SKJr  S SKrS SKrS SKrS SKrS SKJr  S SKrS SKrS SKrS SKrS SKrS r\R2                  r\* S	-
  rS
 rS rS rS rS r S r!S r"S r# " S S5      r$S r%S r&S r'S r(S r)S r*\+" \RX                  S	-   5       V s/ s H	  n U 4S jPM     sn r- " S S\R\                  5      r/ " S S\R\                  5      r0 " S S \R\                  5      r1 " S! S"\R\                  5      r2S# r3 " S$ S%5      r4 " S& S'5      r5 " S( S)5      r6 " S* S+5      r7 " S, S-5      r8 " S. S/5      r9 " S0 S15      r: " S2 S35      r;S4 r< " S5 S6\R\                  5      r= " S7 S8\R\                  5      r> " S9 S:\R\                  5      r? " S; S<\R\                  5      r@\R                   " S= S>\R\                  5      5       rBS? rC\DS@:X  a  \R                  " 5         ggs  sn f )A    N)support)threading_helperscript_helper)*)Decimal)Fraction)reducec                    ^  U 4S jnU$ )zRun 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                 (  > U R                  [        5         T" U 5        S S S 5        [        R                  " 5          [        R                  " S[        S9  T" U 5        S S S 5        [        R                  " 5          [        R                  " S[        S9  U R                  [        [        [        45         T" U 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N9= f! , (       d  f       g = f)Nignore)categoryerror)assertWarnsDeprecationWarningwarningscatch_warningssimplefilterassertRaisesAssertionErrorSystemError)selftestfuncs    </opt/python-3.13.8/usr/lib/python3.13/test/test_itertools.pyinner pickle_deprecated.<locals>.inner   s    01TN 2$$&!!(5GHTN ' $$&!!'4FG""$6#TU V '& 21&&
 VU '&s:   	C"C!<:D6	C2?D
C!
C/2
D 	<D
D )r   r   s   ` r   pickle_deprecatedr      s    	 L       c                  $    [        [        U 6 5      $ N)listzipargss    r   lzipr&   +   s    T
r   c                     SU -  $ )zTest function of one argument   r   xs    r   oneargr+   .   s    Q3Jr   c                      [         e)z"Test function that raises an error)
ValueErrorr$   s    r   errfuncr.   2   s    
r   c               #   &   #    S H  n U v   M	     g7f)zNon-restartable source sequencer   r   r(   Nr   )is    r   gen3r2   6   s         c                     U S-  S:H  $ )Test predicater(   r   r   r)   s    r   isEvenr6   ;       Q36Mr   c                     U S-  S:H  $ )r5   r(   r   r   r)   s    r   isOddr9   ?   r7   r   c                      U $ r!   r   r$   s    r   tupleizer;   C   s    Kr   c              #   8   #    [        U 5       H  nUv   M	     g 7fr!   range)nr1   s     r   iranger@   F   s     1X    c                   $    \ rS rSrSrS rS rSrg)StopNowJ   z"Class emulating an empty iterable.c                     U $ r!   r   r   s    r   __iter__StopNow.__iter__L       r   c                     [         er!   StopIterationrF   s    r   __next__StopNow.__next__N       r   r   N)__name__
__module____qualname____firstlineno____doc__rG   rM   __static_attributes__r   r   r   rC   rC   J   s    (r   rC   c                 *    [        [        X5      5      $ )zHConvenience function for partially consuming a long of infinite iterable)r"   islice)r?   seqs     r   takerY   Q   s    sr   c                 8    [        [        R                  U S5      $ Nr   )r	   operatormuliterables    r   prodr`   U   s    (,,!,,r   c                 2    [        [        SU S-   5      5      $ )	Factorialr   )r`   r>   )r?   s    r   factrc   X   s    a1r   c                     U S   $ Nr   r   rs    r   testRrh   ]       Q4Kr   c                     U S   $ Nr(   r   rf   s    r   testR2rl   `   ri   r   c                     U S:  $ )N
   r   r)   s    r   undertenro   c   s    R4Kr   c                 V    [         R                  " [         R                  " X5      5      $ r!   )pickleloadsdumps)sprotos     r   <lambda>rv   f   s    V\\!5K(Lr   c                   ,   \ rS rSrSES jr\S 5       rS rS rS r	\S 5       r
\S	 5       r\S
 5       r\R                  S 5       r\R                   " S5      S 5       r\S 5       r\R                  S 5       r\R                   " S5      S 5       r\S 5       r\R                  S 5       r\R                   " S5      S 5       rS r\S 5       r\S 5       r\S 5       r\R:                  " 5       SFS j5       rS rS r \S 5       r!\S 5       r"\S 5       r#\S 5       r$S r%\S  5       r&S! r'\R                   " S5      \S" 5       5       r(S# r)\R                   " S5      S$ 5       r*\S% 5       r+S& r,S' r-S( r.S) r/S* r0S+ r1\R                  S, 5       r2\R                   " S5      S- 5       r3\S. 5       r4\S/ 5       r5\S0 5       r6S1 r7\S2 5       r8\S3 5       r9\S4 5       r:\S5 5       r;\S6 5       r<\S7 5       r=S8 r>S9 r?S: r@\R:                  " 5       S; 5       rAS< rB\R                  S= 5       rD\R                  S> 5       rE\R                  S? 5       rF\R                  S@ 5       rG\R                  SA 5       rH\R                  SB 5       rI\R                  SC 5       rJSDrKg)GTestBasicOpsi   Nc                   ^^ SUU4S jjm[         R                  " X!5      n[         R                  " U5      nU R                  [	        U5      [	        U5      5        T" U5      T" U5      pU R                  X5        U(       a  T" U5      n
U R                  X5        [         R                  " U5      nSn [        U5       H  n[        U5        US-  nM     [         R                  " X5      n[         R                  " U5      nT" U5      T" U5      pU R                  X5        U(       a  T" X\S 5      n
U R                  X5        gg! [         a     N|f = f)zITest that an iterator is the same after pickling, also when part-consumedr   c                    > US:  a  [        S5      e[        U [        5      (       a  U $  [        [	        U T5      5      nU Vs/ s H  nT" X1S-   5      PM     sn$ ! [
         a    U s $ f = fs  snf )Nrn   zinfinite recursion encounteredr   )RuntimeError
isinstancestrr"   rW   	TypeError)itr1   leexpandstops       r   r   'TestBasicOps.pickletest.<locals>.expandm   su    2v"#CDD"c""	D)* -..AqF1cNA..  	.s   A A.A+*A+r   Nr   )rq   rs   rr   assertEqualtyper>   nextrL   )r   protocolr   r   rY   comparedumpi2abci3tookr1   i4r   s      `           @r   
pickletestTestBasicOps.pickletestk   s%   
	/ 
	/ ||B)\\$b48,bz6":1wAQ" \\$	4[R	 !
 ||B)\\$bz6":1wu~&AQ"   		s   5"E 
EEc                 r   U R                  [        [        [        S5      5      5      / SQ5        U R                  [        [        [        S5      S95      / SQ5        [        [
        [        [        4 HO  nU R                  [        [        [        U[        S5      5      5      5      [        [        U/ SQ5      5      5        MQ     U R                  [        [        S5      5      / SQ5        U R                  [        [        / 5      5      / 5        U R                  [        [        S/5      5      S/5        U R                  [        [        [        S5      SS5        U R                  [        [        5        U R                  [        [        [        S5      S	9  U R                  [        [        [        S
/ /5      5        / SQnU R                  [        [        U[        5      5      / SQ5        U R                  [        [        U[        5      5      / SQ5        U R                  [        [        U[        R                  5      5      / SQ5        U R                  [        5         [        [        U[        5      5        S S S 5        [        [         R"                  S
-   5       HJ  nU R%                  U[        [        S5      5      5        U R%                  U[        [        S5      SS95        ML     U R                  [        [        / SQS S95      / SQ5        U R                  [        [        / SQSS95      / SQ5        U R                  [        [        / SS95      S/5        U R                  [        5         [        [        SS/S5      5        S S S 5        g ! , (       d  f       GN!= f! , (       d  f       g = f)Nrn   )
r   r         rn            $   -   r^   abc)r   abr         r   r)   r   )
r(      	   r   r   r   r      r   r   )
r(   r(   r(   r(   r(   r   r   r   r   r   )
r(   r   r   r   r   r   r   r   r   r   )
r(         i  i  r   r   r   r   r   )initial)rn   r   r   )rn   r   r   d   )r   n   s   t      )r   r"   
accumulater>   intcomplexr   r   mapr   r   minmaxr\   r]   chrrq   HIGHEST_PROTOCOLr   )r   typrt   ru   s       r   test_accumulateTestBasicOps.test_accumulate   s   jr34>	@j%)<=>	@(2CZCr 345SBCDF 3 	j/02DEjn-r2j!o.4)ZrAqA)Z0)Z59=)T:q"g+>?*jC017	9jC017	9jHLL9:?	Ay)As#$ *622Q67EOOE:eBi#89OOE:eBi#CD 8 	jTBC\RjSABDXYjS9:SEBy)RHc*+ *) *) *)s   "N5N(
N%(
N6c           
      T  ^ U R                  [        [        SS5      5      / SQ5        U R                  [        [        SS5      5      / SQ5        U R                  [        [        SS5      5      / SQ5        U R                  [        [        SSS	S
95      / SQ5        U R                  [        5         [        [        SSS	S
95        S S S 5        U R                  [
        5         [        [        S5      5        S S S 5        U R                  [
        5         [        [        SSS 5      5        S S S 5        U R                  [
        5         [        [        S S5      5        S S S 5        U R                  [
        5         [        [        SS5      5        S S S 5        U R                  [        5         [        [        SS5      5        S S S 5        U R                  [        5         [        [        SS5      5        S S S 5        Sn[        SS5       GH  m[        [        U5      5       H  nUS U n[        [        UT5      5      nU R                  UTUS9   U R                  SR                  [        U6 5      U5        U R                  [        S U 5       5      5        U(       ab  UR                  5       nU R                  [        U4S jU 5       5      5        U R                  [        U5      T:*  5        UR                  U5        S S S 5        M     GM     g ! , (       d  f       GNY= f! , (       d  f       GN9= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GM  = f)NABCDEFGr   ))ABC)DEFGr(   )r   r   r   r   r   r   r   r   ))r   )r   )r   )r   )r   )r   r   ABCDEFT)strict)r   r   r   hellor   ABCDEFGHIJKLMNOPQRSTUVWXYZr   )rt   r?   batches c              3   D   #    U  H  n[        U5      [        L v   M     g 7fr!   )r   tuple).0batchs     r   	<genexpr>,TestBasicOps.test_batched.<locals>.<genexpr>   s     'R'Uu(<'s    c              3   @   >#    U  H  n[        U5      T:H  v   M     g 7fr!   len)r   r   r?   s     r   r   r      s     +QCJ!Os   )r   r"   batchedr   r-   r   r>   r   subTestjoinchain
assertTrueallpopappend)r   datar1   rt   r   
last_batchr?   s         @r   test_batchedTestBasicOps.test_batched   s   gi34G	Igi34I	Kgi34T	Vgh$?@A	C z*Ad34 +y)#$ *y)At,- *y)q!" *y)G,- *z*A&' +z*B'( + ,q!A3t9%!Hwq!}-\\AG\<$$RWWUG_%=qAOOC'R''R$RS%,[[]
+Q+Q(QRJ1(<=z2 =< & ! +*))))))))**** =<sa   2L$L+L=
M=M!0M3#NB2N
L(+
L:=
M
M!
M03
N
N
N'c           
         S n[         U4 H  nU R                  [        U" SS5      5      [        S5      5        U R                  [        U" S5      5      [        S5      5        U R                  [        U" S5      5      / 5        U R                  [        SU" SS5      5      [        S5      5        U R	                  [
        [        U" SS	5      5        M     g )
Nc               7   8   #    U  H  nU H  nUv   M	     M     g7f)zPure python version in the docsNr   )	iterablesr   elements      r   chain2'TestBasicOps.test_chain.<locals>.chain2   s     !G!M  "  rA   r   defabcdefr   r   abcdr(   r   )r   r   r"   rY   r   r   )r   r   r   s      r   
test_chainTestBasicOps.test_chain   s    	" AT!E5/2DNCT!E(^T%[9T!B%["-T!Que_5tF|Dia1g6 !r   c                    U R                  [        [        R                  SS/5      5      [        S5      5        U R                  [        [        R                  S/5      5      [        S5      5        U R                  [        [        R                  S/5      5      / 5        U R                  [	        S[        R                  SS/5      5      [        S5      5        U R                  [        [        [        R                  SS/5      5        U R                  [        [        [        R                  [        [        S	5      5      5      S5      5      S
S/5        g )Nr   r   r   r   r   r   r(   r   r   r   r   )
r   r"   r   from_iterablerY   r   r   rW   repeatr>   rF   s    r   test_chain_from_iterable%TestBasicOps.test_chain_from_iterable   s    e115%.ABDNSe115':;T%[Ie112$78"=a!4!4eU^!DEtF|T)T5+>+>1v+FGfU%8%8a9I%JANORSUVQWXr   c                    [         R                  /[        -    GH	  n[        SS5      nU R	                  [        U" U5      5      [        S5      5        U R	                  [        U5      S5        U R	                  [        U" U5      5      [        S5      5        U R	                  [        U" [        S5      5      5      / 5        U R	                  [        SU" [        SS5      5      5      [        S5      5        U R                  [        [
        U" [        S	S
5      5      5        GM     [        [        R                  S-   5       H'  nU R                  U[        SS5      [        S5      S9  M)     g )Nr   r   r   r   bcdefr   r   r   r(   r   r   r   )copydeepcopypicklecopiersr   r   r"   r   rY   r   r   r>   rq   r   r   )r   operr   ru   s       r   test_chain_reducible!TestBasicOps.test_chain_reducible   s	   ]]Om3Due$BT$r(^T(^<T"Xs+T$r(^T'];T$uRy/2B7T!T%u*=%>?fNitE!QK/@A 4 622Q67EOOE5#6XOO 8r   c                    U R                  [        [        5       R                  S5        U R                  [        [        5       R                  / 5        U R                  [        [        5       R                  S5        U R                  [        [        5       R                  / 45        U R                  [        [        5       R                  [	        / 5      / 45        [        5       nUR                  [	        SS/5      45        U R                  [        U5      / SQ5        [        5       nUR                  [	        SS/5      [	        S/5      45        U R                  [        U5      / SQ5        g )Nr   r   r   r   )r   r   r   dr   fghi)r   r   r   r   r   r   r   )r   r   r   __setstate__iterr   r"   r   r   s     r   test_chain_setstate TestBasicOps.test_chain_setstate  s    )UW%9%92>)UW%9%92>)UW%9%91=)UW%9%9B5A)UW%9%9DHb>JW
uen-/0b#ABW
uen-tUG}=>b#HIr   c                   ^ U R                  [        [        S5        U R                  [        [        SSS5        U R                  [        [        S 5        U R                  [        [        SS5        S /[        -    GH  nU R                  [        U" [        SS5      5      5      / 5        U R                  [        U" [        SS5      5      5      / SQ5        [        SS5      n[        U5        U R                  [        U" U5      5      / S	Q5        U R                  [        U" [        [        S
5      S5      5      5      / SQ5        [        [        S
5      S5      n[        U5        U R                  [        U" U5      5      / SQ5        GM     S nS nS n[        S5       GHG  n[        U5       Vs/ s H  nSU-  S-
  PM     snm[        US-   5       GH  n[        [        TU5      5      n	U R                  [        U	5      X:  a  SO$[        U5      [        U5      -  [        Xh-
  5      -  5        U R                  [        U	5      [        [        U	5      5      5        U R                  U	[        U	5      5        U	 H  n
U R                  [        U
5      U5        U R                  [        [        U
5      5      U5        U R                  [        U
5      [        U
5      5        U R                  [        U4S jU
 5       5      5        U R                  [        U
5      T Vs/ s H  oU
;   d  M
  UPM     sn5        M     U R                  U	[        U" TU5      5      5        U R                  U	[        U" TU5      5      5        U R                  U	[        U" TU5      5      5        [        [        R                   S-   5       H  nU R#                  U[        TU5      5        M!     GM     GMJ     g s  snf s  snf )Nr   r(   r   c                     U $ r!   r   r   s    r   rv   0TestBasicOps.test_combinations.<locals>.<lambda>      Ar       ABCDr   r   r   r   r   r   r   r   r   r   )r  r  r  r  r   r   r   r0   r   r   r   r   r(   r   r   r(   r   )r  r  r  c              3     ^#    [        U 5      m[        T5      nX:  a  g[        [        U5      5      n[        U4S jU 5       5      v    [	        [        U5      5       H  nX4   XB-   U-
  :w  d  M    O   gX4==   S-  ss'   [        US-   U5       H  nX5S-
     S-   X5'   M     [        U4S jU 5       5      v   Mr  7f)%Pure python version shown in the docsNc              3   .   >#    U  H
  nTU   v   M     g 7fr!   r   r   r1   pools     r   r   HTestBasicOps.test_combinations.<locals>.combinations1.<locals>.<genexpr>4       1AQ   r   c              3   .   >#    U  H
  nTU   v   M     g 7fr!   r   r  s     r   r   r  >       5WDGWr  r   r   r"   r>   reversed)r_   rg   r?   indicesr1   jr  s         @r   combinations15TestBasicOps.test_combinations.<locals>.combinations1-  s     ?DD	Au58nG1111!%(+AzQUQY. , 
a
qsAA!(1!1GJ '5W555 s   A+B>2AB>c              3      ^#    [        U 5      m[        T5      n[        [        U5      U5       H4  n[	        U5      [        U5      :X  d  M  [        U4S jU 5       5      v   M6     g7f)r  c              3   .   >#    U  H
  nTU   v   M     g 7fr!   r   r  s     r   r   HTestBasicOps.test_combinations.<locals>.combinations2.<locals>.<genexpr>F       9AQr  N)r   r   permutationsr>   sortedr"   r_   rg   r?   r   r  s       @r   combinations25TestBasicOps.test_combinations.<locals>.combinations2@  sN     ?DD	A'a!4'?d7m39999 5   AA(A(c              3      ^#    [        U 5      m[        T5      n[        [        U5      U5       H4  n[        [	        U5      5      U:X  d  M  [        U4S jU 5       5      v   M6     g7f)zPure python version from cwr()c              3   .   >#    U  H
  nTU   v   M     g 7fr!   r   r  s     r   r   HTestBasicOps.test_combinations.<locals>.combinations3.<locals>.<genexpr>N  r'  r  N)r   r   combinations_with_replacementr>   setr*  s       @r   combinations35TestBasicOps.test_combinations.<locals>.combinations3H  sP     ?DD	A8q1Es7|$)9999 Fr-  r   r      r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr!   r   r   r   valuess     r   r   1TestBasicOps.test_combinations.<locals>.<genexpr>[       '?QVQ   )r   r   combinationsr-   r   r   r"   r   r>   r   rc   r2  r)  r   r   rq   r   r   )r   optestIntermediater"  r+  r3  r?   r*   rg   resultr   r   ru   r8  s                @r   test_combinationsTestBasicOps.test_combinations  s(   )\59)\5!Q?)\48*lE2>,.BT"\%%<"=>CT"\&!%<"=>_a+FA6!"T"%5"67TV T"\%(A%>"?@AC+E!Ha8!"T"%5"678: /"	6&	:	: qA&+Ah/hac"fh/F1Q3Zl6156  V13aDGd1g<MPTUVUXPY<YZ  Vc#f+.>?  8A$$SVQ/$$SQ[!4$$T!WfQi8OOC'?Q'?$?@$$T!W17%BA6a%BD     mFA.F)GH  mFA.F)GH  mFA.F)GH"6#:#:Q#>?EOOE<+BC @!   / &Cs   5O1#	O60O6c                     U R                  [        [        45         [        SS5        S S S 5        g ! , (       d  f       g = f)NAAi    )r   OverflowErrorMemoryErrorr<  rF   s    r   test_combinations_overflow'TestBasicOps.test_combinations_overflowe  s+    {;<u% =<<	   2
A z"tuple reuse is specific to CPythonc                    U R                  [        [        [        [        [        SS5      5      5      5      S5        U R                  [        [        [        [        [        [        SS5      5      5      5      5      S5        g Nabcder   r   )r   r   r2  r   idr<  assertNotEqualr"   rF   s    r   test_combinations_tuple_reuse*TestBasicOps.test_combinations_tuple_reusek  W    SRgq)A!BCDaHCCDgq1I,J$K LMqQr   c                   ^ [         nU R                  [        US5        U R                  [        USSS5        U R                  [        US 5        U R                  [        USS5        S /[        -    Hd  nU R                  [        U" U" SS5      5      5      / SQ5        U" SS5      n[        U5        U R                  [        U" U5      5      / SQ5        Mf     S	 nS
 nS n[        S5       GHt  n[        U5       Vs/ s H  nSU-  S-
  PM     snm[        US-   5       GH;  n	[        U" TU	5      5      n
U R                  [        U
5      U" Xy5      5        U R                  [        U
5      [        [        U
5      5      5        U R                  U
[        U
5      5        [        [        TU	5      5      nUS:X  d  U	S::  a  U R                  X5        O&U R                  [        U
5      [        U5      :  5        U
 H  nU R                  [        U5      U	5        [        U5       VVs/ s H  u  pUPM	     nnnU R                  [        U5      [        [        U5      5      5        U R                  [        U5      [        U5      5        U R                  [        U4S jU 5       5      5        U R                  UT Vs/ s H  nUU;   d  M  UPM     sn5        M     U R                  U
[        U" TU	5      5      5        U R                  U
[        U" TU	5      5      5        [        [         R"                  S-   5       H  nU R%                  UU" TU	5      5        M     GM>     GMw     g s  snf s  snnf s  snf )Nr   r(   r   r  c                     U $ r!   r   r  s    r   rv   ATestBasicOps.test_combinations_with_replacement.<locals>.<lambda>x  r  r   ABC)r   r   r   r  r   r   r  r   r   )r   r  rV  r  rW  c              3   4  ^#    [        U 5      m[        T5      nU(       d  U(       a  gS/U-  n[        U4S jU 5       5      v    [        [        U5      5       H  nX4   US-
  :w  d  M    O   gX4   S-   /X-
  -  X4S& [        U4S jU 5       5      v   MQ  7f)r  Nr   c              3   .   >#    U  H
  nTU   v   M     g 7fr!   r   r  s     r   r   PTestBasicOps.test_combinations_with_replacement.<locals>.cwr1.<locals>.<genexpr>  r  r  r   c              3   .   >#    U  H
  nTU   v   M     g 7fr!   r   r  s     r   r   rZ    r  r  )r   r   r  r>   )r_   rg   r?   r   r1   r  s        @r   cwr1=TestBasicOps.test_combinations_with_replacement.<locals>.cwr1  s      ?DD	AcAgG1111!%(+AzQU* , &zA~.!%85W555 s   A$B+-Bc              3      ^#    [        U 5      m[        T5      n[        [        U5      US9 H4  n[	        U5      [        U5      :X  d  M  [        U4S jU 5       5      v   M6     g7f)r  r   c              3   .   >#    U  H
  nTU   v   M     g 7fr!   r   r  s     r   r   PTestBasicOps.test_combinations_with_replacement.<locals>.cwr2.<locals>.<genexpr>  r'  r  N)r   r   productr>   r)  r"   r*  s       @r   cwr2=TestBasicOps.test_combinations_with_replacement.<locals>.cwr2  sN     ?DD	A"58A6'?d7m39999 7s   AA&
A&c                 |    U (       d  U(       a  S$ S$ [        X-   S-
  5      [        U5      -  [        U S-
  5      -  $ Nr   r   )rc   )r?   rg   s     r   numcombsATestBasicOps.test_combinations_with_replacement.<locals>.numcombs  s8    q$1$A;a($qs)33r   r   r   r5  r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr!   r   r7  s     r   r   BTestBasicOps.test_combinations_with_replacement.<locals>.<genexpr>  r:  r;  )r1  r   r   r-   r   r   r"   r   r>   r   r2  r)  r<  r   groupbyr   rq   r   r   )r   cwrr=  r>  r\  rc  rg  r?   r*   rg   r?  regular_combsr   kvnorunsr   ru   r8  s                     @r   "test_combinations_with_replacement/TestBasicOps.test_combinations_with_replacementp  s   +)S%0)S%A6)S$/*c5"5,.BT"S]"34_a"5!}!"T"%5"67TV /	6$	:	4
 qA&+Ah/hac"fh/F1Q3Zc&!n-  Vhqn=  Vc#f+.>?  8 $\&!%< =6Q!V$$V;OOCK3}3E$EFA$$SVQ/+21:6:CAa:F6$$S[#c&k2BC$$T!WfQi8OOC'?Q'?$?@$$V17%BA16a%BD     d61o)>?  d61o)>?"6#:#:Q#>?EOOE3va=9 @1   /  7
 &Cs   ?M((M->
M3M3c                     U R                  [        [        45         [        SS5        S S S 5        g ! , (       d  f       g = f)NrC     @)r   rD  rE  r1  rF   s    r   +test_combinations_with_replacement_overflow8TestBasicOps.test_combinations_with_replacement_overflow  s+    {;<)$6 =<<rH  c                    [         nU R                  [        [        [	        [
        U" SS5      5      5      5      S5        U R                  [        [        [	        [
        [        U" SS5      5      5      5      5      S5        g rJ  )r1  r   r   r2  r   rL  rM  r"   )r   rl  s     r   .test_combinations_with_replacement_tuple_reuse;TestBasicOps.test_combinations_with_replacement_tuple_reuse  sZ    +SRWa!9:;Q?CCDWa,A$B CDaHr   c                 "  ^	 U R                  [        [        5        U R                  [        [        SSS5        U R                  [        [        S 5        U R                  [        [        SS5        U R	                  [        [        SS5      5      / 5        U R                  [        [        SS5        U R	                  [        [        [        S5      S5      5      / SQ5        SS	 jnSS
 jn[        S5       GH  n[        U5       Vs/ s H  nSU-  S-
  PM     snm	[        US-   5       GH  n[        [        T	U5      5      nU R	                  [        U5      XS:  a  SO[        U5      [        X5-
  5      -  5        U R	                  [        U5      [        [        U5      5      5        U R	                  U[        U5      5        U Hf  nU R	                  [        U5      U5        U R	                  [        [        U5      5      U5        U R                  [        U	4S jU 5       5      5        Mh     U R	                  U[        U" T	U5      5      5        U R	                  U[        U" T	U5      5      5        XS:X  aI  U R	                  U[        [        T	S 5      5      5        U R	                  U[        [        T	5      5      5        [        [        R                  S-   5       H  nU R                  U[        T	U5      5        M!     GM     GM     g s  snf )Nr   r(   r   r  r	  rt   r   )r   r   r   r(   r   r   r   r(   )r(   r   )r(   r   c              3     ^#    [        U 5      m[        T5      nUc  UOUnX:  a  g[        [        U5      5      n[        [        X!-
  S-   US-   5      5      SSS2   n[        U4S jUSU  5       5      v   U(       a  [	        [        U5      5       H]  nXE==   S-  ss'   XE   S:X  a  X5S-   S X5US-    -   X5S& X%-
  XE'   M0  XE   nX6*    X5   sX5'   X6* '   [        U4S jUSU  5       5      v     O   gU(       a  M  gg7f)r  Nr   r   c              3   .   >#    U  H
  nTU   v   M     g 7fr!   r   r  s     r   r   HTestBasicOps.test_permutations.<locals>.permutations1.<locals>.<genexpr>  s     5AQr  r   c              3   .   >#    U  H
  nTU   v   M     g 7fr!   r   r  s     r   r   r    s     #A[DG[r  r  )r_   rg   r?   r   cyclesr1   r!  r  s          @r   permutations15TestBasicOps.test_permutations.<locals>.permutations1  s	    ?DD	AYAAu58nG%Aqs+,TrT2F5!555!%(+AINIyA~&-cdmg!n&D$%E	"I29"+wz/
GBK##AWRa[#AAA ,  !s   C9D >D c              3      ^#    [        U 5      m[        T5      nUc  UOUn[        [        U5      US9 H4  n[        [	        U5      5      U:X  d  M  [        U4S jU 5       5      v   M6     g7f)r  Nr_  c              3   .   >#    U  H
  nTU   v   M     g 7fr!   r   r  s     r   r   HTestBasicOps.test_permutations.<locals>.permutations2.<locals>.<genexpr>  r'  r  )r   r   rb  r>   r2  r*  s       @r   permutations25TestBasicOps.test_permutations.<locals>.permutations2  sZ     ?DD	AYAA"58A6s7|$)9999 7s   A
A-A-r   r   r5  r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr!   r   r7  s     r   r   1TestBasicOps.test_permutations.<locals>.<genexpr>  r:  r;  r!   )r   r   r(  r-   r   r"   r>   r   rc   r2  r)  r   r   rq   r   r   )
r   r  r  r?   r*   rg   r?  pru   r8  s
            @r   test_permutationsTestBasicOps.test_permutations  sO   )\2)\5!Q?)\48*lE2>l5"56;)\5#>l58Q78+U	W	0	: qA&+Ah/hac"fh/F1Q3Zl6156  V13aDGd13i<OP  Vc#f+.>?  8A$$SVQ/$$SQ[!4OOC'?Q'?$?@     mFA.F)GH  mFA.F)GH6$$VT,vt2L-MN$$VT,v2F-GH"6#:#:Q#>?EOOE<+BC @   /s   Lc                     U R                  [        [        45         [        SS5        S S S 5        g ! , (       d  f       g = f)Nr   rt  )r   rD  rE  r(  rF   s    r   test_permutations_overflow'TestBasicOps.test_permutations_overflow	  s+    {;<e$ =<<rH  c                    U R                  [        [        [        [        [        SS5      5      5      5      S5        U R                  [        [        [        [        [        [        SS5      5      5      5      5      S5        g rJ  )r   r   r2  r   rL  r(  rM  r"   rF   s    r   test_permutations_tuple_reuse*TestBasicOps.test_permutations_tuple_reuse  rP  r   c                 <   [        S5       GHx  nSS U n[        S5       GH_  n[        [        X#S95      n[        [        X#5      5      n[        [	        X#5      5      n[        [        X#5      5      nU R                  [        U5      X-  5        U R                  [        U5      U(       a+  [        X-   S-
  5      [        U5      -  [        US-
  5      -  OU(       + 5        U R                  [        U5      X1:  a  SO[        U5      [        X-
  5      -  5        U R                  [        U5      X1:  a  SO$[        U5      [        U5      -  [        X-
  5      -  5        U R                  U[        [        U5      5      5        U R                  U[        [        U5      5      5        U R                  U[        [        U5      5      5        U R                  U[        [        U5      5      5        U R                  XT Vs/ s H  n[        U5      [        U5      :X  d  M  UPM!     sn5        U R                  Xd Vs/ s H  n[        [        U5      5      U:X  d  M  UPM!     sn5        U R                  Xv Vs/ s H  n[        U5      [        U5      :X  d  M  UPM!     sn5        U R                  Xu Vs/ s H  n[        [        U5      5      U:X  d  M  UPM!     sn5        U R                  U[        [        [        U5      R                  U5      5      5        U R                  U[        [        [        U5      R                  U5      5      5        U R                  U[        [        U5      [        U5      -  5      5        GMb     GM{     g s  snf s  snf s  snf s  snf )Nr   r   r   r_  r   r   )r>   r"   rb  r1  r(  r<  r   r   rc   r)  r2  filter__contains__)	r   r?   rt   rg   r`   rl  permcombts	            r   test_combinatoricsTestBasicOps.test_combinatorics  s    qA"1A1XGA018>?L./L./   TAD1  SQRDQK$q',A4!9,L]^Y^`  TA$q'DI:MN  TA$q'DG:KdSTSVi:WX   vc$i'89  fSX&67  vc$i'89  vc$i'89   $&M$Q&)T!W:Lq$&MN  4'J4a3s1v;>4'JK  4'N4a6!9d1g;M4'NO  3'I3a#c!f+q.3'IJ  tF3s83H3H$,O'PQ  tF3t93I3I3,O'PQ  vc#hT.B'CD3  * 'N'J'N'Is0   >N
N
:NN6NN2NNc                 (   U R                  [        [        S/ SQS95      [        S5      5        U R                  [        [        S/ SQ5      5      [        S5      5        U R                  [        [        S/ SQ5      5      [        S5      5        U R                  [        [        S/ SQ5      5      [        S5      5        U R                  [        [        S/ SQ5      5      [        S	5      5        U R                  [        [        S
/ SQ5      5      [        S5      5        Sn[        R	                  [        [        S5      U5      5      n[        R	                  [        S5      5      nU R                  [        [        X#5      5      / SQU-  5        U R                  [        [        S [        S5      5        U R                  [        [        [        S5      S 5        U R                  [        [        [        S5      5        U R                  [        [        [        S5      S 5        S S /[        -    H  nS/ SQSS4S/ SQSS4S/ SQSS4S/ SQS	S4S
/ SQSS44 H  u  p#pVU R                  [        U" [        X#S95      5      [        U5      5        U R                  [        U" [        X#5      5      5      [        U5      5        [        X#5      nU(       d  M~  [        U5        U R                  [        U" U5      5      [        U5      5        M     M     g )Nr   r   r   r   r   r   r   )r   	selectorsACEF)r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   ACrT  )r   r   r   r   r   r   BC'  r   r{  r   r   r   c                 .    [         R                   " U 5      $ r!   )r   r  s    r   rv   ,TestBasicOps.test_compress.<locals>.<lambda>F  s    DIIaLr   c                 .    [         R                  " U 5      $ r!   )r   r   r  s    r   rv   r  F  s    4==3Cr   CEFBCDEFr   )r   r"   compressr   r   r   r>   r   r   r   r   )r   r?   r   r  r=  result1result2r>  s           r   test_compressTestBasicOps.test_compress4  s]   hHNOQUV\Q]^hx?@$v,Ohx?@$r(Khx?@$x.Qhx9:DJGhum<=tDzJ""6%(A#67''v7	ht78'A+F)XtU1X>)XuQx>)XuQx8)XuQx> )*CD}TB=&%8="b1=(G<7D#.tS161   bt)Q&R!SUYZaUbc  b$)B&C!Dd7mT#+D#< 7)*$$T"-=*>%?gO6 Ur   c                    U R                  [        S[        5       5      / SQ5        U R                  [        S[        S5      5      / SQ5        U R                  [        S[        S[        S5      5      5      SS/5        U R                  [        S[	        S[        S5      5      5      S	S
/5        U R                  [        S[	        S[        S5      5      5      SS/5        U R                  [        [        SSS5        U R                  [        [        S5        U R                  [        S[        [        5      5      [        [        S-   [        S-   /5        U R                  [        S[        [        S-
  5      5      [        [        [        S-
  [        S-   5      5      5        U R                  [        S[        [        * S-
  5      5      [        [        [        * S-
  [        * S-   5      5      5        U R                  [        S[        S5      5      / SQ5        U R                  [        S[        S5      5      / SQ5        U R                  [        S[        [        S5      5      5      [        S5      [        S5      [        S5      /5        U R                  [        S[        [        SS5      5      5      [        SS5      [        SS5      [        SS5      /5        SS-  nU R                  [        S[        U5      5      XS-   US-   /5        [        S5      nU R                  [        U5      S5        [        U5        U R                  [        U5      S5        [        S5      nU R                  [        U5      S5        [        U5        U R                  [        U5      S 5        U R                  [        [        S!5      5      S"5        U R                  [        [        S#5      5      S$5        U R                  [        [        [        5      5      S%[         S&35        [        [        S-
  5      nU R                  [        U5      S%[        S-
   S&35        [        U5        U R                  [        U5      S%[         S&35        [        U5        U R                  [        U5      S%[        S-    S&35        U R                  [        [        [        S#5      5      5      [        5        [         R                  * S-
  [         R                  * S-   S'SS(S[         R                  S-
  [         R                  S-   4 H9  n[        [        U5      5      nS)R#                  U5      nU R                  XE5        M;     SS[        S-
  [        S-   4 H  n[        U5      nU R                  [        [$        R$                  " U5      5      U5        U R                  [        [$        R&                  " U5      5      U5        [        [(        R*                  S-   5       H  nU R-                  U[        U5      5        M      M     [        S[        S-   5        [         R.                  " 5         g )*Nr   r   r   r   r   r   r(   r   )r   r   r   r   )r   r   r(   r  r  r   )r   r   )r   r   )r   r  )r   r  r   r   r   rn   r         
@)r  g      @g      @      
@      )r  y      @            @      1.1z2.1z3.1r     zcount(3)zcount(4)z	count(-9)ig     $@zcount(10.25)g      $@zcount(10.0)count()r   	count(%r))r   r&   countrY   r#   r   r   maxsizer"   r>   r   r   reprr   r   floatsys__mod__r   r   rq   r   r   exc_info)r   BIGINTr   r1   r1r2valueru   s           r   
test_countTestBasicOps.test_countV  s   eEG,.LMeE!H-/MNaeE!H!5688LMaU59!56H8MNaU59!56I8NO)UAq!4)UC0aw0 'A+w{;	=b%	"23eGAIwqy9:	<b%
"34eWHQJ
;<	>at-/ABaw02MNawu~!67!%.'%.'%.I	Kax1~!67"1a.(1a.(1a.I	KDav/&(F1H1MN!Ha*-Qa*-"Ia+.Qa"%eEl+^<eDk*M:eGn-y/BC'A+aF7Q;-q"9:QaF7)1"56QaF7Q;-q"9:d5;/0%8;;,q.3;;,q.#r1b#++a-QTQ\Q\]^Q^_AeAhB$$Q'BR$	 ` GAIwqy0EeAT$))A,/7T$--"23U;v66:;uU|4 <	 1 	aS\\^r   c                    U R                  [        S[        SS5      5      / SQ5        U R                  [        S[        SSS95      / SQ5        U R                  [        S[        SS95      / SQ5        U R                  [        [        S	S
5        U R                  [        S[        SS5      5      / SQ5        U R                  [        S[        SS5      5      / SQ5        U R                  [        S[        SS5      5      / SQ5        U R                  [        S[        [        S-
  S5      5      [        S[        [        S-
  [        S-   S5      5      5        U R                  [        S[        [        * S-
  S5      5      [        S[        [        * S-
  [        * S-   S5      5      5        U R                  [        S[        S[        S-   5      5      [        [        SSS[        S-   -  -   [        S-   5      5      5        U R                  [        S[        [        S5      5      [        [        S-   [        S-   /5        U R                  [        S[        [        [        5      5      [        S[        -  S[        -  /5        U R                  [        S[        [        * [        5      5      [        * S[        /5        U R                  [        S[        SS5      5      / SQ5        U R                  [        S[        SS5      5      / SQ5        U R                  [        S[        [        S5      [        S5      5      5      [        S5      [        S5      [        S5      /5        U R                  [        S[        [        SS5      [        SS5      5      5      [        SS5      [        SS5      [        SS5      /5        SS -  nU R                  [        S[        US95      SUSU-  /5        U R                  [        [        S[        SS!5      5      5      [        / S"Q5      5        [        SS5      nU R                  [        U5      S#5        [        U5        U R                  [        U5      S$5        [        S%S5      nU R                  [        U5      S&5        [        U5        U R                  [        U5      S&5        [        S%S'5      nU R                  [        U5      S(5        [        U5        U R                  [        U5      S)5        U R                  [        U5      S)5        U R                  [        [        S*S5      5      S+5        U R                  [        [        S*S5      5      S,5        U R                  [        [        S*S-5      5      S.5        U R                  [        [        SS-5      5      S/5        [        SS-5      nU R                  [        [        U5      5      [        5        U R                  [        [        U5      5      [        5        [         R                  * S-
  [         R                  * S-   S0SSS[         R                  S-
  [         R                  S-   4 H  n[         R                  * S-
  [         R                  * S-   S0SSSS[         R                  S-
  [         R                  S-   4	 H}  n[        [        X45      5      nUS:X  a  S1U-  nOS2U< S3U< S43nU R                  XV5        [        ["        R$                  S-   5       H  nU R'                  U[        X45      5        M      M     M     [        [        S-
  S5      nU R                  [        U5      S2[        S-
   S535        [        U5        U R                  [        U5      S2[         S535        [        U5        U R                  [        U5      S2[        S-    S535        [        [        S-   S5      nU R                  [        U5      S2[        S-    S635        [        U5        U R                  [        U5      S2[         S635        [        U5        U R                  [        U5      S2[        S-
   S635        g )7Nr   r(   r   )r   r(   )r   r   )r   r   )startstepr   r  )r  )r   r   )r   r  r   r   r   )r  )r   r(   r  r   )r  )r   r   )r   r   r   r   r   rn   r   r   g      ?)r(   r  g      @r  )r(   r  y      !@       r  z.1z1.2z1.3r      r   r  g      @)rn   g      )@g      .@zcount(3, 5)zcount(8, 5)r  zcount(-9, 0)r  zcount(-9, -3)zcount(-12, -3)g      %@zcount(10.5, 1.25)zcount(10.5)g      ?zcount(10.5, 1.0)zcount(10, 1.0)r  r  r  z, r  z, 2)z, -1))r   r&   r  r   r   rY   r  r>   r"   r   r   r  r   r   r   r  r  rq   r   r   )r   r  r   r1   r!  r  r  ru   s           r   test_count_with_step!TestBasicOps.test_count_with_step  s   eE!AJ/1OPeEq$9:7	9eErN39	;)UC5eE!AJ/1OPeE!AJ/1OPeE!AJ/1OPb%
A"67b%PR
T[\_T_abBc9deb%Q"78$r5'RTV]U]^aUacdCe:fgar719!56eB1gai=(8'!)DE	Gaw!23!7Q;!<	>aw!89!1w;G<	>ax!9:!1g.	0aq$0.Aaq'!235IJawu~wt}!EF!%.'%.'%.I	Kax!}hqm!DE"1Q-"R(2b/J	LDaF!34q&!F(6KLd1eBn56=M8NO!QKa-0Qa-0"aLa.1Qa.1"bMa/2Qa"23a"23eD$/02EFeD!n-}=eD$/02DEeBo.0@A"cNd1g,d1g.;;,q.3;;,q.#r1b#++a-QTQ\Q\]^Q^_A|A~|A~sB1b#++VW-Y\YdYdefYfg%+&6%/B  ./2B  ("6#:#:Q#>?EOOE5;7 @ h ` '1*a aF7Q;-t"<=QaF7)4"89QaF7Q;-t"<='A+r"aF7Q;-u"=>QaF7)5"9:QaF7Q;-u"=>r   c                 6  ^^ SmSn[        US9mUU4S jn/ n[        U5       H8  n[        R                  " US9nUR	                  5         UR                  U5        M:     U H  nUR                  5         M     U R                  [        T5      TU-  U-  5        g )Nr  rn   r  c                  @   > [        T5       H  n [        T5        M     g r!   )r>   r   )r1   r   count_tos    r   counting_thread:TestBasicOps.test_count_threading.<locals>.counting_thread  s    8_Q %r   )target)	r  r>   	threadingThreadr  r   r   r   r   )	r   r  num_threadsr  threadsr1   threadr   r  s	          @@r   test_count_threading!TestBasicOps.test_count_threading  s     t	 {#A%%_=FLLNNN6" $ FKKM a(["84"?@r   c                 "    U R                  SS9  g )Nr   r  )r  rF   s    r   test_count_with_step_threading+TestBasicOps.test_count_with_step_threading  s    !!q!)r   c           
         U R                  [        S[        S5      5      [        S5      5        U R                  [        [        S5      5      / 5        U R	                  [
        [        5        U R	                  [
        [        S5        U R                  [        [        [        [        5       5      S5      5      / SQ5        g )Nrn   r   
abcabcabcar   r   )
r   r   r(   r   r   r(   r   r   r(   r   )r   rY   cycler"   r   r   rW   r2   rF   s    r   
test_cycleTestBasicOps.test_cycle  s    b%,/l1CDeBi"-)U+)UA.fU46]2679NOr   c                    [        S5      nU R                  [        U5      S5        U R                  [        S[        R
                  " U5      5      [        S5      5        [        [        R                  S-   5       H  nU R                  [        S[        R                  " [        R                  " X5      5      5      [        S5      5        [        U5        U R                  [        S[        R                  " [        R                  " X5      5      5      [        S5      5        [        U5        [        U5        M     [        [        R                  S-   5       H  nU R                  U[        S5      5        M      [        [        R                  S-   5       GH  n[        S5      n[        U5      n[        S5       Vs/ s H  n[        U5      PM     nn[        R                  " X5      n[        R                  " U5      nU R                  [        S	U5      [        S
5      5        [        S5      n[        U5      n[        S5       Vs/ s H  n[        U5      PM     nn[        R                  " X5      n[        R                  " U5      nU R                  [        S	U5      [        S
5      5        GM     g s  snf s  snf )Nr   r   rn   
bcabcabcabr   
cabcabcabcrK  r(   r   cdeabcdeabcdeabcdeabr   )r  r   r   rY   r   r   r"   r>   rq   r   rr   rs   r   r   )r   r   ru   r   r1   _r  r   s           r   test_cycle_copy_pickle#TestBasicOps.test_cycle_copy_pickle  s    %La#& 	b$--"23T,5GH622Q67ET"fll6<<3I&JK!,/1GT"fll6<<3I&JK!,/1GG 8 622Q67EOOE5<0 8 622Q67EgBb	A"'(+(Qa(A+Q&AQAT"a[$/E*FG gBb	A"'(+(Qa(A+Q&AQAT"a[$/E*FG 8 , ,s   ?J8
J=c                     / SQnU H7  n[         R                  " U5      nU R                  [        SU5      / SQ5        M9     g )N)sH   citertools
cycle
(c__builtin__
iter
((lI1
aI2
aI3
atRI1
btR((lI1
aI0
tb.s?   citertools
cycle
(c__builtin__
iter
(](KKKetRKbtR(]KaK tb.s>   citertools
cycle
c__builtin__
iter
](KKKeRKbR]KaK b.s;   citertools
cycle
cbuiltins
iter
](KKKeRKbR]KaK b.sH   =       	itertoolscyclebuiltinsiter](KKKeRKbR]KaK b.sH   citertools
cycle
(c__builtin__
iter
((lp0
I1
aI2
aI3
atRI1
btR(g0
I1
tb.s?   citertools
cycle
(c__builtin__
iter
(]q (KKKetRKbtR(h Ktb.s>   citertools
cycle
c__builtin__
iter
]q (KKKeRKbRh Kb.s;   citertools
cycle
cbuiltins
iter
]q (KKKeRKbRh Kb.sG   <       	itertoolscyclebuiltinsiter](KKKeRKbRh Kb.sI   citertools
cycle
(c__builtin__
iter
((lI1
aI2
aI3
atRI1
btR((lI1
aI00
tb.sA   citertools
cycle
(c__builtin__
iter
(](KKKetRKbtR(]KaI00
tb.s=   citertools
cycle
c__builtin__
iter
](KKKeRKbR]Kab.s:   citertools
cycle
cbuiltins
iter
](KKKeRKbR]Kab.sG   <       	itertoolscyclebuiltinsiter](KKKeRKbR]Kab.sI   citertools
cycle
(c__builtin__
iter
((lp0
I1
aI2
aI3
atRI1
btR(g0
I01
tb.sA   citertools
cycle
(c__builtin__
iter
(]q (KKKetRKbtR(h I01
tb.s=   citertools
cycle
c__builtin__
iter
]q (KKKeRKbRh b.s:   citertools
cycle
cbuiltins
iter
]q (KKKeRKbRh b.sF   ;       	itertoolscyclebuiltinsiter](KKKeRKbRh b.rn   )
r(   r   r   r(   r   r   r(   r   r   r(   )rq   rr   r   rY   )r   	testcasesr  r   s       r   test_cycle_unpickle_compat'TestBasicOps.test_cycle_unpickle_compat   s9    
	4 AaBT"b\+IJ r   c                    [        S5      nUR                  [        S5      S45        U R                  [	        SU5      [        S5      5        [        S5      nUR                  [        S5      S45        U R                  [	        SU5      [        S5      5        U R                  [        5         [        S5      R                  [        S5      S/5        S S S 5        U R                  [        5         [        S5      nUR                  [        S5      S45        S S S 5        [	        SU5        U R                  [        5         [        S5      R                  [        S5      S45        S S S 5        U R                  [        [        S	5      R                  S
5        U R                  [        [        S	5      R                  / 45        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)Ndefgr   r   r   defgabcdefgabcdefgababcdefgr   r*   r   r   )r  r   r"   r   rY   r   r   r   )r   r   s     r   test_cycle_setstate TestBasicOps.test_cycle_setstate@  so    &M	UQ'(b!d+A&BC &M	Y+,b!d+A&BC y)&M&&Y';< * y)fANNE&M1-. * 	R y)&M&&Y'=> * 	)U2Y%;%;R@)U2Y%;%;bUC *) *) *)s$   .&G1(G&G(
G
G%(
G6c                   ^^ U R                  / [        [        / 5      5      5        U R                  / [        [        / [        S95      5        U R	                  [
        [        [        S/ 5      5        U R	                  [
        [        S 5        U R	                  [
        [        SS S5        / SQn/ n[        US 5       H3  u  p4U H(  nU R                  X5S   5        UR                  U5        M*     M5     U R                  X5        [        [        R                  S-   5       H  n/ n[        R                  " [        R                  " [        U[        5      U5      5       H3  u  p4U H(  nU R                  X5S   5        UR                  U5        M*     M5     U R                  X5        M     / n[        U[        5       H`  u  p4[        U[        5       HG  u  pxU H<  nU R                  X5S   5        U R                  XuS	   5        UR                  U5        M>     MI     Mb     U R                  X5        [        [        R                  S-   5       H  n/ n[        R                  " [        R                  " [        U[        5      U5      5       H  u  p4[        R                  " [        R                  " [        U[        5      U5      5       HG  u  pxU H<  nU R                  X5S   5        U R                  XuS	   5        UR                  U5        M>     MI     M     U R                  X5        M     [        U[        5       VVs/ s H  u  p4UPM	     n	nn[        U V
s/ s H  oS   PM	     sn
5      nU R                  [        U	5      U5        U R                  [        U	5      [        U5      5        [        [!        S
[        S5      5      5      n[        U[        5      n[#        U5      u  p[#        U5      u  p[#        U5      u  nnU R                  [        U5      / 5        U R                  [        U5      / 5        U R                  [#        U5      S5        [        U5        U R                  [        U5      / 5        [        [        R                  S-   5       Hy  n[        U[        5      n[#        U5      u  p[#        U5        [#        U5        U R                  [        [        R                  " [        R                  " XF5      5      5      / 5        M{     Sn[        [%        U5      5       VVs/ s H  u  p4UPM	     n
nnU R                  U
/ SQ5        [        [%        U5      5       VVs/ s H$  u  p4[        ['        USS	5      5      (       d  M"  UPM&     n
nnU R                  U
/ SQ5        [        [%        U5      5       VVs/ s H  u  p4[        [        U5      5      U4PM     n
nnU R                  U
/ SQ5        [%        [        [%        U5      5       VVs/ s H  u  p4[        [        U5      5      U4PM     snnSS9S S n
U R                  U
/ SQ5         " S S[(        5      mSU4S jjnS [        4S jnU R	                  TUU" S5      5        U R	                  TUU" S5      5         " U4S jS5      nU" 5       U" 5       S /nU R	                  TUU[        S9  U R	                  TUU5        UU4S jmSTl        U R	                  TUS /T5        STl        U R	                  TUS S /T5        g s  snnf s  sn
f s  snnf s  snnf s  snnf s  snnf )Nkeyr   c                     U $ r!   r   r)   s    r   rv   +TestBasicOps.test_groupby.<locals>.<lambda>l      ar   rn   ))r   rn   r   )r      r   )r   r5  r   )r      r   )r         )r(   r   r  )r   r      )r   r  r  c                     U S   $ re   r   rf   s    r   rv   r  r  s    !r   r   r   r(   	AABBBAAAAr   )r   r   abracadabra)r   r   r   r   rg   )r   r   rg   )r   r   r(   r   )r   r   )r   r   r(   rg   T)reverser   )r  r  r  c                       \ rS rSrSrg)0TestBasicOps.test_groupby.<locals>.ExpectedErrori  r   NrP   rQ   rR   rS   rU   r   r   r   ExpectedErrorr    s    r   r  c              3   <   >#    [        U 5       H  nSv   M	     Te7f)Nyor=   )r?   r1   r  s     r   delayed_raise0TestBasicOps.test_groupby.<locals>.delayed_raise  s     1X
 s   c                 Z    [        X5       VVs/ s H  u  p4U" U5      PM     snn$ s  snnf r!   )rk  )r_   keypfuncrn  gs        r   gulp'TestBasicOps.test_groupby.<locals>.gulp  s'    (/(?@(?DG(?@@@s   'c                   "   > \ rS rSrU 4S jrSrg)+TestBasicOps.test_groupby.<locals>.DummyCmpi  c                    > Ter!   r   )r   dstr  s     r   __eq__2TestBasicOps.test_groupby.<locals>.DummyCmp.__eq__  s	    ##r   r   N)rP   rQ   rR   rS   r"  rU   )r  s   r   DummyCmpr    s    $ $r   r$  )r  c                 V   > TR                   S:  a  T=R                   S-  sl         U $ Terf  )skip)objr  keyfuncs    r   r(  *TestBasicOps.test_groupby.<locals>.keyfunc  s(    ||a!
##r   r   )r   r"   rk  rL  r   r   r   r>   rq   r   rr   rs   rh   rl   r2  r   r#   r   r)  rW   	Exceptionr&  )r   rt   duprn  r  elemru   ikigkeysrg   expectedkeysr   r  g1g2g3r  r  r$  r  r(  s                       @@r   test_groupbyTestBasicOps.test_groupbye  s    	T'"+./T'"""567)T75"+=>)Wd3)WeZD.A}-DA  G,

4   . 	  622Q67ECV\\'!U2CU%KLD$$QQ0JJt$  M Q$ 8 Au%DA!!V,D$$QQ0$$Ra1JJt$  - & 	  622Q67ECV\\'!U2CU%KL$ll6<<68JE+RSFB "((G4((!W5

4( !# T M Q$ 8 &a/0/da/0!,!QaD!,-TL1TC$56 [%(+,QRRR2b2&b2&b8,Rb2&622Q67EE"B8DAHHT&,,v||A/E"FGL 8 "6!9-.-41Q-.56"6!9-E-41fQqm1DQ-EO,+26!9+=>+=41c$q'lA+=>NO76!93EF3E41Sa\A&3EFPTUVXWXY:;	I 		  !%4 	A 	-}Q/?@-}Q/?@	$ 	$ ZT* 	-qr:-q1	$ -vw?-d|WE] 1,6 / F ? Gs*   \4\:0\?,!]]"]"]
c                 J   U R                  [        [        [        [	        S5      5      5      / SQ5        U R                  [        [        S / SQ5      5      SS/5        U R                  [        [        [
        / SQ5      5      SS/5        U R                  [        S[        [        [        5       5      5      / SQ5        U R                  [        [        5        U R                  [        [        S 5        U R                  [        [        S	 [	        S5      S
5        U R                  [        [        [        S5        U R                  [        [        [        [	        S5      [	        S5      5      5        / SQn[        [        [	        S5      5      nU R                  [        [        R                  " U5      5      U5        [        [        [	        S5      5      nU R                  [        [        R                  " U5      5      U5        [	        [        R                  S-   5       H  n[        [        [	        S5      5      nU R                  [        [        R                  " [        R                   " X#5      5      5      U5        [        U5        U R                  [        [        R                  " [        R                   " X#5      5      5      USS  5        M     [	        [        R                  S-   5       H-  n[        [        [	        S5      5      nU R#                  X25        M/     g )Nr   )r   r(   r   r   r   r   r(   r   r   r(   r   )r   r(   r   r   c                     U $ r!   r   r)   s    r   rv   *TestBasicOps.test_filter.<locals>.<lambda>      ar   c                     U $ r!   r   r)   s    r   rv   r9    r:  r   r   r   )r   r"   r  r6   r>   boolrY   r  r   r   r   r   r   rq   r   rr   rs   r   r   ansr   ru   s       r   test_filterTestBasicOps.test_filter  s   fVU1X67AfT;781Q%@fT;781Q%@a!899E)V,)VZ8)VZq1E)VVQ7)T6%(E!H+EF 658$diil+S1658$dmmA./5622Q67EvuQx(AT&,,v||A/E"FGMGT&,,v||A/E"FGQRQ	 8
 622Q67EvuQx(AOOE% 8r   c           
         U R                  [        [        [        [	        S5      5      5      / SQ5        U R                  [        [        S / SQ5      5      / SQ5        U R                  [        [        [
        / SQ5      5      / SQ5        U R                  [        S[        [        [        5       5      5      / SQ5        U R                  [        [        5        U R                  [        [        S 5        U R                  [        [        S [	        S5      S	5        U R                  [        [        [        S
5        U R                  [        [        [        [	        S5      [	        S5      5      5        [	        [        R                  S-   5       H,  nU R                  U[        [        [	        S5      5      5        M.     g )Nr   r  r7  r   r   r   r   )r   r   r   r   c                     U $ r!   r   r)   s    r   rv   /TestBasicOps.test_filterfalse.<locals>.<lambda>
      1r   c                     U $ r!   r   r)   s    r   rv   rD    rE  r   r   r   r   )r   r"   filterfalser6   r>   r<  rY   r  r   r   r   rq   r   r   r   ru   s     r   test_filterfalseTestBasicOps.test_filterfalse  s   k&%(;<gFk$<=wGk$<=wGaVUW!=>	J)[1)[*=)[*eAhJ)[&!<)T;uQxq+JK622Q67EOOE;vuQx#@A 8r   c           
      R   [        S[        5       5       VVs/ s H  u  pX4PM
     nnnU R                  U/ SQ5        U R                  [        [        S[	        S5      5      5      [        S[	        S5      5      5        U R                  [        [        S[	        S5      5      5      [        S[	        S5      5      5        U R                  [        S[        S[        5       5      5      [        S[	        S5      5      5        U R                  [        [        S5      5      [        S5      5        U R                  [        [        5       5      [        5       5        U R                  [        [         S5        U R                  [        [         [	        S5      S5        U R                  [        SS5       Vs/ s H  n[        [        U5      5      PM     sn[        SS5      5        U R                  [        SS5       Vs/ s H  oDPM     sn[        SS5      5        g s  snnf s  snf s  snf )Nr   r  r   r   r   r   )
r#   r  r   r"   r>   r&   rY   r   r   r   )r   r*   yr>  pairs        r   test_zipTestBasicOps.test_zip  s   !$U57!34!3u!34<=c%q23T%q5JKc(E!H56XuQx8PQaHeg 67ha9QRc(m,d8n=cedf-)S!,)S%(A6E58IJ8I%T
+8IJeU+	-3ue+<=+<4$+<=eU+	- 5 K=s   H2H;H$c                    [        [        [        [        SS5      5      5      nU R	                  [        U5      [        U5      5        [        [        [        [        [        SS5      5      5      5      nU R	                  [        [        R                  U5      5      [        U5      5        [        R                  " [        S[        5       5      5       VVs/ s H  u  p#X#4PM
     nnnU R	                  U/ SQ5        [        R                  " [        S[        5       5      5       VVs/ s H  u  p#X#4PM
     nnnU R	                  U/ SQ5        [        [        R                  S-   5       Hi  n[        R                   " [        R"                  " [        S[        5       5      U5      5       VVs/ s H  u  p#X#4PM
     nnnU R	                  U/ SQ5        Mk     [        [        R                  S-   5       Hu  n[        S[        5       5      n[%        U5        [        R                   " [        R"                  " Xe5      5       VVs/ s H  u  p#X#4PM
     nnnU R	                  USS/5        Mw     [        [        R                  S-   5       H'  nU R'                  U[        S[        5       5      5        M)     g s  snnf s  snnf s  snnf s  snnf )Nr   r   r  r   r  r  )r"   r   rL  r#   r   r   r   r   dictfromkeysr   r  r   r>   rq   r   rr   rs   r   r   )r   idsr*   rL  r>  ru   r>  s          r   test_zip_tuple_reuse!TestBasicOps.test_zip_tuple_reuse!  s    3r3ue,-.S3s8,3r4E5 1234T]]3/0#c(; "&3uUW+=!>?!>u!>?<=!%s5/A!BC!Bu!BC<=622Q67E%+\\&,,s5?QSX2Y%Z[%ZTQA5%ZC[S"@A 8 622Q67E"51!"%+\\&,,?O2W%XY%XTQA5%XCYS8X"67	 8 622Q67EOOE3ueg#67 8! @ D \ Zs   J3'J9,J?Kc                    S[        S5      /[        S5      S/[        S5      [        SS5      [        SS5      /[        S5      [        S5      [        SS5      [        S	5      [        S
5      /[        S5      [        S5      [        SS5      [        S	5      [        S
5      [        S5      /4 H  n[        [        [        [        U5      5      5       VVs/ s H1  n[	        U Vs/ s H  o2[        U5      :  a  X2   OS PM     sn5      PM3     nnnU R                  [        [        U6 5      U5        U R                  [        [        U0 0 D65      U5        U Vs/ s H  n[	        S U 5       5      PM     nnU R                  [        [        U0 [        SS9D65      U5        M     U R                  [        S[        S[        5       5      5      [        [        S[        S5      5      5      5        U R                  [        [        5       5      [        [        5       5      5        U R                  [        [        / 5      5      [        [        / 5      5      5        U R                  [        [        S5      5      [        [        S5      5      5        U R                  [        [        S0 0 D65      [        [        [        S5      S /-   S5      5      5        U R                  [        [        S5        U R                  [        [        [        S5      S5        S H5  n [        U[        5       [!        5       5        U R#                  SU-   5        M7     U R                  [        SS5       Vs/ s H  n[	        [        U5      5      PM     sn[        [        SS5      5      5        U R                  [        SS5       Vs/ s H  owPM     sn[        [        SS5      5      5        g s  snf s  snnf s  snf ! [         a     M  f = fs  snf s  snf )Nr   r   r    i4  i  i  r   i  i  c              3   L   #    U  H  oS L =(       a    S=(       d    Uv   M     g 7f)NXr   )r   r   s     r   r   /TestBasicOps.test_ziplongest.<locals>.<genexpr>I  s     @a$Y.33!3as   "$rY  	fillvaluer   r   r  )zzip_longest('abc', fv=1)z3zip_longest('abc', fillvalue=1, bogus_keyword=None)zDid not raise Type in:  r   )r   r  )r>   r   r   r   r   r   r"   zip_longestrQ  rY   r  r#   r   r   evalglobalslocalsfail)r   r%   r1   argr  r  stmtrM  s           r   test_ziplongestTestBasicOps.test_ziplongest=  s9   a!q5!teD.d40@AteAhd4(8%+uT{SteAhd4(8%+uT{TYZ[T\]D  %SS$%89;9! N#3s8|SV=NO9  ;T+t"45v>T+t":r":;VDJPQ&Qe@a@@&FQT+t"Ktc7J"KLfU 	aHeg >?c(TYZ[T\F]A^_km,d35k:k"o.SW>k(34d3x=6IJk>2>?c$u+tf"4f=>	@)[!4)[%(A>
D=T79fh/ 		4t;<
 	E58QR8Q%T
+8QRc%/0	2;ue+DE+D4$+DEc%/0	2? O ; R(  
 SEs<   O'%O"O'O-O2)P;P"O'2
P ?P c                 X   [        [        [        [        SS5      5      5      nU R	                  [        U5      [        U5      5        [        [        [        [        [        SS5      5      5      5      nU R	                  [        [        R                  U5      5      [        U5      5        g )Nr   r   )
r"   r   rL  r]  r   r   r   r   rQ  rR  )r   rS  s     r   test_zip_longest_tuple_reuse)TestBasicOps.test_zip_longest_tuple_reuseg  sq    3r;ue456S3s8,3r4E5 9:;<T]]3/0#c(;r   c           
      (   [        [        R                  S-   5       Hr  nU R                  U[	        SS5      5        U R                  U[	        SS5      5        U R                  U[	        SSSS95        U R                  U[	        SS5      5        Mt     g )Nr   r   r   defghr[  r   )r>   rq   r   r   r]  rH  s     r   test_zip_longest_pickling&TestBasicOps.test_zip_longest_picklingn  sr    622Q67EOOE;ue#<=OOE;ug#>?OOE;ug#KLOOE;r7#;<	 8r   c                    ^ [        5       m " U4S jS5      nU R                  [         5       n[        U" 5       5        S S S 5        U R                  WR                  T5        g ! , (       d  f       N+= f)Nc                   "   > \ rS rSrU 4S jrSrg)?TestBasicOps.test_zip_longest_bad_iterable.<locals>.BadIterableiy  c                    > Ter!   r   )r   	exceptions    r   rG   HTestBasicOps.test_zip_longest_bad_iterable.<locals>.BadIterable.__iter__z  s    r   r   N)rP   rQ   rR   rS   rG   rU   )rq  s   r   BadIterablero  y  s       r   rs  )r   r   r]  assertIsrq  )r   rs  cmrq  s      @r   test_zip_longest_bad_iterable*TestBasicOps.test_zip_longest_bad_iterablev  sR    K		  	  y)R& * 	bllI. *)s   A$$
A2c                     " S S5      nU" SS[         5      nU" SS[         5      nS nU R                  U" X#5      / SQ5        U" SS[        5      nU" SS[         5      n[        X#S	S
9nU R                  [	        U5      S5        U R                  [	        U5      S5        U R                  [	        U5      S5        U R                  [        [        U5        g )Nc                   &    \ rS rSrS rS rS rSrg),TestBasicOps.test_bug_7244.<locals>.Repeateri  c                 <    Xl         [        U5      U l        X0l        g r!   )or   r  r   )r   r|  r  r   s       r   __init__5TestBasicOps.test_bug_7244.<locals>.Repeater.__init__  s    Qr   c                     U $ r!   r   rF   s    r   rG   5TestBasicOps.test_bug_7244.<locals>.Repeater.__iter__      r   c                 |    U R                   S:  a!  U =R                   S-  sl         U R                  $ U R                  erf  )r  r|  r   rF   s    r   rM   5TestBasicOps.test_bug_7244.<locals>.Repeater.__next__  s,    66A:FFaKF66M&&Lr   )r   r|  r  NrP   rQ   rR   rS   r}  rG   rM   rU   r   r   r   Repeaterrz    s    !r   r  r   r   r(   r   c                     / n[        XSS9 HB  u  p4[        R                  " S5         [        X445        S S S 5        UR	                  X445        MD     U$ ! , (       d  f       N&= f)Nr   r[  stdout)r]  r   captured_outputprintr   )r  r  r?  r1   r!  s        r   run'TestBasicOps.test_bug_7244.<locals>.run  sT    F#Ba8,,X61&M 7qf% 9 M 76s   A
A#	)r~  r~  r~  r|  r   r[  r~  )rL   r   r|   r]  r   r   )r   r  r  r  r  r   s         r   test_bug_7244TestBasicOps.test_bug_7244  s    	! 	!" aM*aM*	 	R&BC aL)aM*1-b6*b6*b6*,b1r   c                    U R                  [        [        S5      5      / 5        U R                  [        [        S5      5      / 5        U R                  [        [        S5      5      S/5      4  U R                  [        [        S5      5      / SQ5        U R                  [        [        [        S5      5      5      [        [	        [        S5      [        SS5      5      5      5        U R                  [        5         [        5         S S S 5        U R                  [        5         [        S	S
5        S S S 5        U R                  [        5         [        S	S9  S S S 5        U R                  [        5         [        S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Np= f! , (       d  f       NZ= f! , (       d  f       g = f)Nr   r   r   r   r   rK  )r  )r   r   r   r   )r   r   r  r   r   rn   r^   )r   r"   pairwiser>   r#   r   r   rF   s    r   test_pairwiseTestBasicOps.test_pairwise  s;   hrl+R0hsm,b1htn-)l	, 	-hw/0N	PhuV}56c%-q&1ABC	E y)J *y)UB *y)e$ *y)TN *) *)))))))s0   =F%F
F-6F>
F
F*-
F;>
Gc                   ^  U 4S jnU" S1S/S/4S/4S/S/4/5        U" S1S/S/S/44S/S/4S/4S/S/4/5        U" S1S/S/4S/S/S/44S/S/4S/4S/S/4/5        U" SS1S/S/4S/4S/4S/S/4/5        U" SS1S/S/S/44S/4S/S/4/5        U" SS1S/S/4S/S/4S/44S/S/4S/4S/4S/S/4/5        U" SS1S/S/S/S/444S/S/S/44S/4S/S/4/5        g )	Nc                    >^ ^  " UU 4S jS5      n[        U" 5       5      mU H  nTR                  [        T5      U5        M      g )Nc                   .   > \ rS rSrSrS rU U4S jrSrg)<TestBasicOps.test_pairwise_reenter.<locals>.check.<locals>.Ii  r   c                     U $ r!   r   rF   s    r   rG   ETestBasicOps.test_pairwise_reenter.<locals>.check.<locals>.I.__iter__      Kr   c                 ~   > U =R                   S-  sl         U R                   T;   a  [        T5      $ U R                   /$ r[   )r  r   )r   r   
reenter_ats    r   rM   ETestBasicOps.test_pairwise_reenter.<locals>.check.<locals>.I.__next__  s1    JJNJzzZ/#Bx JJ<'r   r   NrP   rQ   rR   rS   r  rG   rM   rU   )r   r  s   r   Ir    s     ( (r   r  )r  r   r   )r  expectedr  itemr   r   s   `   @r   check1TestBasicOps.test_pairwise_reenter.<locals>.check  s8    ( ( !#B   b40 !r   r   r(   r   r   r   r   r   r   r   r  s   ` r   test_pairwise_reenter"TestBasicOps.test_pairwise_reenter  s   	1 	qccA3Z!S1#J
 	 	qcSA3*cA3Z!S1#J
 	
 	qcS1#JSA3*cA3Z!S1#J	
 	 	q!fsQCj1#$S1#J
 	 	q!fcQC!:$S1#J
 	 	q!fcA3ZA3*qc*+sQCj1#$S1#J
 	
 	q!fSA3!qc
#$cQC!:$S1#J
 	r   c                 j   ^  U 4S jnU" S/ 5        U" S/ 5        U" S/ 5        U" SS/S/4S/4/5        g )Nc                 |   >^ ^  " UU 4S jS5      n[        U" 5       5      mTR                  [        T5      U5        g )Nc                   .   > \ rS rSrSrS rU U4S jrSrg)=TestBasicOps.test_pairwise_reenter2.<locals>.check.<locals>.Ii  r   c                     U $ r!   r   rF   s    r   rG   FTestBasicOps.test_pairwise_reenter2.<locals>.check.<locals>.I.__iter__  r  r   c                    > U R                   T:  a  [        eU =R                   S-  sl         U R                   S:X  a  [        TS 5      $ U R                   /$ r[   )r  rL   r   )r   r   maxcounts    r   rM   FTestBasicOps.test_pairwise_reenter2.<locals>.check.<locals>.I.__next__  sE    zzX-++JJNJzzQ#B~- JJ<'r   r   Nr  )r   r  s   r   r  r    s     ( (r   r  )r  r   r"   )r  r  r  r   r   s   `  @r   r  2TestBasicOps.test_pairwise_reenter2.<locals>.check  s.    
( 
( !#BT"Xx0r   r   r(   r   r   r   r  s   ` r   test_pairwise_reenter2#TestBasicOps.test_pairwise_reenter2  sA    	1  	aaaaQC!:s#$%r   c                    / S/4S/SS/4[        S5      [        S5      // SQ4[        S5      [        S5      [        S5      // 4[        S5      [        S5      [        S5      // 4[        S5      [        S5      [        S5      // 44 Ht  u  pU R                  [        [        U6 5      U5        [        S	5       H?  nU R                  [        [        X-  6 5      [        [        U0 [	        US
9D65      5        MA     Mv     U R                  [        [        [        [        S5      /S-  6 5      5      S5        U R                  [        [        [        S5      S 5        S nSS
.S jnSSS[        S5      [        S	5      [	        SSSS9[        S5      [        S5      [        [        S5      5      /	n[        S5       GH  n[        [        R                  " S5      5       Vs/ s H  n[        R                  " U5      PM     nn[        [        [
        U5      5      n	U R                  [        [        [        U6 5      5      U	5        U R                  [        [        U6 5      [        U" U6 5      5        U R                  [        [        U6 5      [        U" U6 5      5        [        [        U5      nU R                  [        [        [        U6 5      5      U	5        GM!     g s  snf )Nr   r   r  r   r(   r   )r   r   r{  r|  r}  )r   r   r~  r   r   r_  r   r   i c               ?     #    [        [        [        U 5      5      UR                  SS5      -  n[	        U5      nUS:X  a  Sv   g [        S U 5       5      (       a  g S/U-  n[        S [        X$5       5       5      v    [        [        U5      5       H^  nXE   [	        X%   5      S-
  :X  a  M  XE==   S-  ss'   [        US-   U5       H  nSXF'   M	     [        S [        X$5       5       5      v     O   g My  7f)Nr   r   r   r   c              3   >   #    U  H  n[        U5      S :H  v   M     g7f)r   Nr   )r   r  s     r   r   >TestBasicOps.test_product.<locals>.product1.<locals>.<genexpr>  s     4ed3t9>es   c              3   .   #    U  H  u  pX   v   M     g 7fr!   r   r   r  r1   s      r   r   r    s     C/BGD/B   c              3   .   #    U  H  u  pX   v   M     g 7fr!   r   r  s      r   r   r  &  s     K7JGD7Jr  )	r"   r   r   getr   anyr#   r  r>   )r%   kwdspoolsr?   r   r1   r!  s          r   product1+TestBasicOps.test_product.<locals>.product1  s     UD)*TXXh-BBEE
AAv4e444cAgGCs5/BCCC!%(+AzS]Q%66 J!OJ"1Q3]%&
 +Ks57JKKK ,  s   C8C:r   c              7     #    U S:  a  [        S5      eU Vs/ s H  n[        U5      PM     snU -  n/ /nU H#  nU VVs/ s H  oR  H  oeU/-   PM
     M     nnnM%     U H  n[        U5      v   M     gs  snf s  snnf 7f)z Pure python version used in docsr   z"repeat argument cannot be negativeN)r-   r   )r   r   r  r  r?  r*   rL  r`   s           r   product2+TestBasicOps.test_product.<locals>.product2+  s     z !EFF-67YTU4[Y7&@ETF)/>AAQC%%>  Dk!  8 ?s   BA6B A;)Br   r   )r   r   r   r  r  r  r   r   )r>   r   r"   rb  rQ  r   r   r   r2  r   random	randrangechoicer`   r   r   )
r   r%   r?  rg   r  r  argtypesr1   r!  expected_lens
             r   test_productTestBasicOps.test_product  sX   "JVff%&Aha!#MNAha%(+R0Aha%(+R0Aha%(+R0LD T'4.16:1X  g&8!9!%gt&Ft1~&F!GI  	T'E!H:a<"89:DA)WeAh=	, )* 	" r58U1Xta17J	NE"IuU2Y/?AsA5:6;K;KA;N5OP5OFMM(+5ODPC/LSgtn!56ET'4.14$3HIT'4.14$3HItT?DSgtn!56E Ps   ! K c                     U R                  [        [        45         [        S/S-  SS06  S S S 5        g ! , (       d  f       g = f)Nr   r	  r   i   )r   rD  rE  rb  rF   s    r   test_product_overflow"TestBasicOps.test_product_overflowC  s4    {;<tfTk151 =<<s	   5
Ac                    U R                  [        [        [        [        [        SS5      5      5      5      S5        U R                  [        [        [        [        [        [        SS5      5      5      5      5      S5        g )Nr   r   r   )r   r   r2  r   rL  rb  rM  r"   rF   s    r   test_product_tuple_reuse%TestBasicOps.test_product_tuple_reuseH  sW    SR)>!?@A1ECCD1F,G$H IJANr   c           
      p   / S/4S/SS/4[        S5      [        S5      // SQ4[        S5      [        S5      [        S5      // 4[        S5      [        S5      [        S5      // 4[        S5      [        S5      [        S5      // 44 H  u  pU R                  [        [        R                  " [	        U6 5      5      U5        U R                  [        [        R
                  " [	        U6 5      5      U5        [        [        R                  S	-   5       H  nU R                  U[	        U6 5        M     M     g )
Nr   r   r  r  r(   r   r  r   r   )	r>   r   r"   r   rb  r   rq   r   r   )r   r%   r?  ru   s       r   test_product_pickling"TestBasicOps.test_product_picklingM  s    "JVff%&Aha!#MNAha%(+R0Aha%(+R0Aha%(+R0LD T$))GTN";<fET$--"?@&Iv66:;w~6 <r   c                     [        SS5      nUR                  S5        U R                  [        U5      S5        [        SSS5      nUR                  S5        U R	                  [
        [        U5        g )Nr~  )r   )r      r(   r   r   )r   r   r  )rb  r   r   r   r   rL   )r   r  s     r   test_product_issue_25021%TestBasicOps.test_product_issue_25021]  s\     F4 	{#a&)FB%	~&-q1r   c           	         U R                  [        [        SSS95      / SQ5        U R                  [        [	        S5      [        S5      5      / SQ5        U R                  [        [        SS5      5      / SQ5        U R                  [        S[        S5      5      / SQ5        U R                  [        [        SS5      5      / 5        U R                  [        [        SS5      5      / 5        U R                  [        [        5        U R                  [        [        S SS5        U R                  [        [        S S5        [        S	5      nU R                  [        U5      S
5        [        S	S5      nU R                  [        U5      S5        [        U5        U R                  [        U5      S5        [        SSS9nU R                  [        U5      S5        U R                  [        S[        R                  " U5      5      [        S5      5        U R                  [        S[        R                  " U5      5      [        S5      5        [	        [        R                  S-   5       H  nU R                  U[        SSS95        M     g )Nr   r   )objecttimes)r   r   r   ))r   r   r   r   )r(   r   r   r  r   y      ?        zrepeat((1+0j))r   zrepeat((1+0j), 5)zrepeat((1+0j), 0)rn   r(   aar   )r   r"   r   r&   r>   rY   r   r   r  r   r   r   rq   r   r   )r   rg   r   ru   s       r   test_repeatTestBasicOps.test_repeath  s   fCq9:OLeAhvc{37	9fS!n-?a-?fS!n-r2fS"o.3)V,)VT1a8)VT374La"234Oa"56Qa"56 #R(a#&a1.W>aq!12DMB622Q67EOOE6B#?@ 8r   c           	      $   U R                  [        [        SS5      5      S5        U R                  [        [        SS5      5      S5        U R                  [        [        SSS95      S5        U R                  [        [        SSS95      S5        g )Nr   r   zrepeat('a', 0)r  r  )r   r  r   rF   s    r   test_repeat_with_negative_times,TestBasicOps.test_repeat_with_negative_times  st    fS"o.0@AfS"o.0@AfS346FGfS346FGr   c                    U R                  [        [        [        R                  [        S5      [        SS5      5      5      / SQ5        U R                  [        [        [        S[        S5      5      5      / SQ5        U R                  [        [        [        S[        5       5      5      / SQ5        U R                  [        S[        [        S[        5       5      5      S	S
/5        U R                  [        [        [        R                  / 5      5      / 5        U R                  [        [        5        U R                  [        [        [        S [        S5      [        S5      5      5        U R                  [        [        [        R                  5        U R                  [        [        [        S[        S5      5      5        U R                  [        [        [        [        S/S/5      5        U R                  [        [        [        [        S/S/5      5        / SQn[        [        S[        5       5      nU R                  [        [         R                   " U5      5      U5        [        [        S[        5       5      nU R                  [        [         R"                  " U5      5      U5        [        [$        R&                  S-   5       H-  n[        [        S[        5       5      nU R)                  X25        M/     g )Nr   r   r   r   r   r   r   r   r  r(   r  r  rn   r   )r   r"   r   r\   powr>   r;   r  rY   r   r   negr   r-   r.   r+   r   r   rq   r   r   r=  s       r   test_mapTestBasicOps.test_map  s   c(,,a%!*EF+	-c(E58<=2	4c(E57;<2	4aHeUW =>!'*	,c(,,34b9)S))T3tU1XuQx+HI)S(,,7)T3r58+<=*dC!qc,BC)T3vsQC+@A (%)diil+S1%)dmmA./5622Q67EHeUW-AOOE% 8r   c                    U R                  [        [        [        R                  [        [        S5      [        SS5      5      5      5      / SQ5        U R                  [        S[        [        R                  [        [        5       [        S5      5      5      5      / SQ5        U R                  [        [        [        R                  / 5      5      / 5        U R                  [        [        [        R                  [        SS/5      /5      5      S/5        U R                  [        [        [        [        R                  S /5      5        U R                  [        [        5        U R                  [        [        [        R                  S/S	5        U R                  [        [        [        S
S/5      5        U R                  [        [        [        [        S/5      5        U R                  [        [        [        [        S/5      5        / SQn[        [        R                  [        [        S5      [        SS5      5      5      nU R                  [        [         R                   " U5      5      U5        [        [        R                  [        [        S5      [        SS5      5      5      nU R                  [        [         R"                  " U5      5      U5        [        [$        R&                  S-   5       HK  n[        [        R                  [        [        S5      [        SS5      5      5      nU R)                  X25        MM     g )Nr   r   r   r  r   r   i   r   r   extrarn   )r   r"   starmapr\   r  r#   r>   rY   r  r   r   r   r   r-   r.   r+   r   r   rq   r   r   r=  s       r   test_starmapTestBasicOps.test_starmap  s   ghllCa%!*4MNO+	-as57E!H7M!NO+	-ghllB78"=ghllT1Q%[MBCdVL)T78<<$+HI)W-)WhllUGWM)T72w+?@*dGGeW,EF)T76E7+CD !HLL#eAha
";<diil+S1HLL#eAha
";<dmmA./5622Q67Ec%(E!AJ&?@AOOE% 8r   c                    S H@  nU R                  [        [        [        S5      /UQ76 5      [        [        U6 5      5        MB     S HB  u  pU R                  [        [        [        S5      /UQ76 5      [        [        U6 5      5        MD     U R                  [        [        [        S5      S 5      5      [        [        S5      5      5        U R                  [        [        [        S5      S S 5      5      [        [        S5      5      5        U R                  [        [        [        S5      S S S 5      5      [        [        S5      5      5        U R                  [        [        [        S5      SS 5      5      [        [        SS5      5      5        U R                  [        [        [        S5      SS S5      5      [        [        SSS5      5      5        [	        [        S5      5      nU R                  [        [        US5      5      [        [        S5      5      5        U R                  [        U5      [        [        SS5      5      5        [	        [        S5      5      nU R                  [        [        USS5      5      / 5        U R                  [        U5      [        [        SS5      5      5        [        S5      nU R                  [        [        U5        U R                  [        [        USSSS5        U R                  [        [        US	SS5        U R                  [        [        USS	S
5        U R                  [        [        USSS
5        U R                  [        [        USSS5        U R                  [        [        US5        U R                  [        [        USS5        U R                  [        [        USS5        U R                  [        [        USSS5        U R                  [        [        USSS5        U R                  [        [        [        [        5       SS[        5      5      5      S5        [        5       nU R                  [        [        USSS5      5      S/5        U R                  [        U5      S5        S H  nU R                  [        [        R                  " [        [        S5      /UQ76 5      5      [        [        U6 5      5        U R                  [        [        R                  " [        [        S5      /UQ76 5      5      [        [        U6 5      5        [        [        R                  S-   5       H(  nU R!                  U[        [        S5      /UQ76 5        M*     M     S S 5       n["        R$                  " U5      n[        US5      nU R'                  U" 5       5        [        U5        [(        R*                  " 5         U R-                  U" 5       5         " S S[.        5      nU R                  [        [        [        S5      U" S5      5      5      [        [        S5      5      5        U R                  [        [        [        S5      U" S5      U" S5      5      5      [        [        SS5      5      5        U R                  [        [        [        S5      U" S5      U" S5      U" S5      5      5      [        [        SSS5      5      5        g )N)rn   r   r   rn   r   r   rn   r   )rn   rn   rn   r   r   r   )))rn   r   r   )rn   r   r   ))rn   r   )rn   r   ))r   )r   rn   r(   r   r   r   r   r   r   2   )r  r  r  r  r  c              3   $   #    U  H  ov   M     g 7fr!   r   )r   r*   s     r   r   +TestBasicOps.test_islice.<locals>.<genexpr>  s      Aas   r~  c                        \ rS rSrS rS rSrg))TestBasicOps.test_islice.<locals>.IntLikei  c                     Xl         g r!   valr   r   s     r   r}  2TestBasicOps.test_islice.<locals>.IntLike.__init__  s    r   c                     U R                   $ r!   r  rF   s    r   	__index__3TestBasicOps.test_islice.<locals>.IntLike.__index__  s    xxr   r  N)rP   rQ   rR   rS   r}  r  rU   r   r   r   IntLiker    s     r   r  r   )r   r"   rW   r>   r   r   r   r-   r   r  r  r   r   r   rq   r   r   weakrefrefassertIsNotNoner   
gc_collectassertIsNoner  )	r   r%   tgtargsr   rar   ru   wrr  s	            r   test_isliceTestBasicOps.test_islice  s#   D T&s";d";<!%,/1MD
 T&s";d";<!%/24 	fU2Y56U2YHfU2Yd;<d59oNfU2YdDABDrOTfU2Y4894a;MNfU2Y4;<d5BPQ?>ST %)_fRm,d58n=b4a#56%)_fRA./4b4a#56 2Y)VR0)VRAq!<*fb"b!<*fb!R<*fb!R<*fb!R;*fb#6*fb#q9*fb!S9*fb#q!<*fb!S!<T&!R"ABCQG GfQ1b12QC8a!$D T$))F5:,E,E"FG!%,/1T$--uSz0ID0I"JK!%,/1v66:;veCj'@4'@A <  ! [[_B]RT"R"$	 f 	 
 	fU3Z=>U2YPfU3ZgbkJKeBm,	.fU3Zgbk7ST:VWeBr!n-	/r   c           
      H   / SQnU R                  [        [        [        U5      5      / SQ5        U R                  [        [        [        / 5      5      / 5        U R	                  [
        [        5        U R	                  [
        [        [        R                  5        U R	                  [
        [        [        R                  S/S5        U R	                  [
        [        [        SS/5      5        U R	                  [        [        [        [        S/5      5        [        [        / SQ5      nU R                  [        U5      / SQ5        U R	                  [        [        U5        U R                  [        [        R                  " [        [        U5      5      5      / SQ5        U R                  [        [        R                  " [        [        U5      5      5      / SQ5        [        [         R"                  S-   5       H#  nU R%                  U[        [        U5      5        M%     g )	Nr   r   r   r   r(   r   r   r   r  r  r  rn   )r   r   r   r   r   r   r   r   r   r   )r   r"   	takewhilero   r   r   r\   r  r   r-   r.   r<  rL   r   r   r>   rq   r   r   )r   r   r  ru   s       r   test_takewhileTestBasicOps.test_takewhile#  sh   (i$78)Di"56;)Y/)Y=)YugwO)T9R%+AB*dIgw,GHd./a),-q1 	dii	(D(ABCYOdmmIh,EFG!	#622Q67EOOE9Xt#<= 8r   c           
         / SQnU R                  [        [        [        U5      5      / SQ5        U R                  [        [        [        / 5      5      / 5        U R	                  [
        [        5        U R	                  [
        [        [        R                  5        U R	                  [
        [        [        R                  S/S5        U R	                  [
        [        [        SS/5      5        U R	                  [        [        [        [        S/5      5        U R                  [        [        R                  " [        [        U5      5      5      / SQ5        U R                  [        [        R                  " [        [        U5      5      5      / SQ5        [        [        R                  S-   5       H#  nU R!                  U[        [        U5      5        M%     g )Nr  )r   r(   r   r   r   r  r  rn   r   )r   r"   	dropwhilero   r   r   r\   r  r   r-   r.   r   r   r>   rq   r   r   )r   r   ru   s      r   test_dropwhileTestBasicOps.test_dropwhile8  s7   (i$78:JKi"56;)Y/)Y=)YugwO)T9R%+AB*dIgw,GH 	dii	(D(ABCEUVdmmIh,EFG(	*622Q67EOOE9Xt#<= 8r   c           
         Sn[        / 5      u  p#U R                  [        U5      / 5        U R                  [        U5      / 5        [        [        U5      5      u  p#U R                  [	        X#5      [	        [        U5      [        U5      5      5        [        [        U5      5      u  p#U R                  [        U5      [        [        U5      5      5        U R                  [        U5      [        [        U5      5      5        [        [        U5      5      u  p#[        S5       H  nU R                  [        U5      U5        M      AU R                  [        U5      [        [        U5      5      5        [        [        U5      5      u  p#[        S5       H  nU R                  [        U5      U5        M      AU R                  [        U5      [        [        SU5      5      5        [        S5       H  nS/U-  S/U-  -   n[        R                  " U5        / / 4n[        [        U5      5      nU H#  n[        X   5      n	Xt   R                  U	5        M%     U R                  US   [        [        U5      5      5        U R                  US   [        [        U5      5      5        M     U R                  [        [         5        U R                  [        [         S5        U R                  [        [         SS/S5        U R                  [        [         SS/SS5        [        S	5      u  p#[        U5      " S
5      n
U R                  [        U
5      [        S
5      5        [        [        S5      S5      u  p#n
[        S5       H  nU R                  [        U5      U5        M      U R                  [        U5      [        [        S5      5      5        U R                  [        U
5      [        U
5      /[        [        S5      5      5        U R                  [        U5      [        [        SS5      5      5        U R                  [        U
5      [        [        SS5      5      5        U R                  [        [         S	S5        U R                  [        [         / S5        [        S5       H  n[        S	U5      nU R                  [        U5      [        5        U R                  [        U5      U5        U R                  U Vs/ s H  n[        U5      PM     sn[        S	5      /U-  5        M     [        S	5      u  p#[        U5      u  p[        U
5      u  pU R!                  [        X#XX15      S:H  5        [        S	5      u  nn[        U5      nU R                  [        U5        U R                  [        US5        U" U5      nU R!                  [        U5      [        U5      s=:H  =(       a$    [        U5      s=:H  =(       a    [        S	5      :H  Os  5        [        [        S5      5      u  p#["        R$                  " U5      nU R                  ['        US5      [        U5      5        A[(        R*                  " 5         U R                  [,        [&        US5        [        S	5      n[        [        S5      5      n[        S	5      u  p#U R                  [        [.        R.                  " U5      5      U5        U R                  [        [.        R.                  " U5      5      U5        [        [        [        S5      5      5      u  p#U R                  [        [.        R.                  " U5      5      U5        U R                  [        [.        R.                  " U5      5      U5        [        S	5      u  p#[1        SU5        [1        SU5        U R                  [        [.        R.                  " U5      5      USS  5        U R                  [        [.        R.                  " U5      5      USS  5        U R                  [        U5      USS  5        U R                  [        U5      USS  5        [        [        S5      5      u  p#[1        SU5        [1        SU5        U R                  [        [.        R.                  " U5      5      USS  5        U R                  [        [.        R.                  " U5      5      USS  5        U R                  [        U5      USS  5        U R                  [        U5      USS  5        [        S	5      u  p#U R                  [        [.        R2                  " U5      5      U5        U R                  [        [.        R2                  " U5      5      U5        U R                  [        U5      U5        U R                  [        U5      U5        [        [        S5      5      u  p#U R                  [        [.        R2                  " U5      5      U5        U R                  [        [.        R2                  " U5      5      U5        U R                  [        U5      U5        U R                  [        U5      U5        [        S	5      u  p#[1        SU5        [1        SU5        U R                  [        [.        R2                  " U5      5      USS  5        U R                  [        [.        R2                  " U5      5      USS  5        U R                  [        U5      USS  5        U R                  [        U5      USS  5        [        [        S5      5      u  p#[1        SU5        [1        SU5        U R                  [        [.        R2                  " U5      5      USS  5        U R                  [        [.        R2                  " U5      5      USS  5        U R                  [        U5      USS  5        U R                  [        U5      USS  5        [        [4        R6                  S-   5       HV  nU R9                  U[;        [        S	5      5      5        [        S	5      u  p#U R9                  UUUS9  U R9                  UUUS9  MX     g s  snf )N   r   r   r   r   r   r(   r*   r   r   rW  invalidr   r   rn   	__class__r  <   r   )teer   r"   r@   r&   r>   r   r  shuffler   r   r   r   r-   r   r   r   r  proxygetattrr   r
  ReferenceErrorr   rY   r   rq   r   r   r   )r   r?   r   r   r1   r!  orderlistsitsr  r   r?  r*   r   r   r   t1t2tnewt3r  r>  long_ansru   s                           r   test_teeTestBasicOps.test_teeJ  sI	   2wa"%a"%6!9~aDq58$<=6!9~a$uQx.1a$uQx.16!9~sAT!Wa( a$uQx.16!9~sAT!Wa( a$uS!}"56qACEQCEMENN5!HEfQi.CSV&  U1XtE!H~6U1XtE!H~6  	)S))S!,)S1Q%5)S1Q%C8 5zGENa$u+. eDk1%asAT!Wa( a$uT{"34$q'47+T%(^<a$uS"78a$uQt}"56 	)S%;*c2r2qA]FT&\51S[!,v6v!d1gv6eaH	  5z1v1vQ1./145 UBBx)T*)T2."XRDHGGRGGDKGH 59~MM!K0$q':.'1kB5ke% 5zdiil+S1diil+S14e%&diil+X6diil+X6 5zQ
Q
diil+SW5diil+SW5a#ab'*a#ab'*5< S!Rdiil+Xcd^<diil+Xbc];a(34.1a(23-0 5zdmmA./5dmmA./5a#&a#&5< dmmA./:dmmA./:a(+a(+ 5zQ
Q
dmmA./QR9dmmA./QR9a#ab'*a#ab'*5< S!RdmmA./#$@dmmA./"#?a(34.1a(23-0 622Q67EOOE4E
#34u:DAOOE1cO2OOE1cO2	 8a 7s   ?r	
c                 6    Sn[         R                  " SU5        g )NzHimport typing, copyreg, itertools; copyreg.buggy_tee = itertools.tee(())z-c)r   assert_python_ok)r   scripts     r   test_tee_dealloc_segfault&TestBasicOps.test_tee_dealloc_segfault  s    4 	 	&&tV4r   c                 \    [        [        S S5      5      u  p [        U5        Ag !   AAe = f)Ni -1)r   r   r  )r   forwardbackwards      r   test_tee_del_backward"TestBasicOps.test_tee_del_backward  s4    tX 67	L	s   & +c                    ^  " U4S jS5      n[        U" 5       5      u  nmU R                  [        S5         [        U5        S S S 5        g ! , (       d  f       g = f)Nc                   ,   > \ rS rSrSrS rU 4S jrSrg)(TestBasicOps.test_tee_reenter.<locals>.Ii  Tc                     U $ r!   r   rF   s    r   rG   1TestBasicOps.test_tee_reenter.<locals>.I.__iter__  r  r   c                 P   > U R                   nSU l         U(       a  [        T5      $ g NF)firstr   )r   r@  r   s     r   rM   1TestBasicOps.test_tee_reenter.<locals>.I.__next__  s$    

"
7N r   )r@  N)rP   rQ   rR   rS   r@  rG   rM   rU   r  s   r   r  r;    s    E# #r   r  r   )r   assertRaisesRegexr|   r   )r   r  r   r   s      @r   test_tee_reenterTestBasicOps.test_tee_reenter  sA    	# 	# 13x1##L%8G 988s   A
Ac                   ^^ [         R                  " 5       m[         R                  " 5       m " UU4S jS5      n[        U" 5       5      u  p#[         R                  " [        U/S9nUR                  5          TR                  5         U R                  [        S5         [	        U5        S S S 5        TR                  5         UR                  5         g ! , (       d  f       N/= f! TR                  5         UR                  5         f = f)Nc                   *   > \ rS rSrS rU U4S jrSrg)+TestBasicOps.test_tee_concurrent.<locals>.Ii  c                     U $ r!   r   rF   s    r   rG   4TestBasicOps.test_tee_concurrent.<locals>.I.__iter__  r  r   c                 F   > TR                  5         TR                  5         g r!   )r2  wait)r   finishr  s    r   rM   4TestBasicOps.test_tee_concurrent.<locals>.I.__next__	  s    		r   r   N)rP   rQ   rR   rS   rG   rM   rU   )rL  r  s   r   r  rG    s     r   r  )r  r%   r   )r  Eventr   r  r   r  rK  rB  r|   r2  r   )r   r  r   r   r  rL  r  s        @@r   test_tee_concurrent TestBasicOps.test_tee_concurrent  s    !"	 	 13x!!QC8	JJL''e<Q = JJLKKM	 =< JJLKKMs$   8&C$ C*C$ 
C!C$ $"Dc           
         U R                  [        [        [        5       5        [        [
        [        [        4 HM  nU R                  [        [        U" / 5      5        U R                  [        [        U" [        5       5      5        MO     U R                  [        [        [        / S 5      5        U R                  [        [        [        [        5       S 5      5        [        / 5      u  p#U R                  [        [        U5        U R                  [        [        U5        [        [        5       5      u  p#U R                  [        [        U5        U R                  [        [        U5        U R                  [        [        [        S S5      5        [        [        [        [        [        [         4 HQ  nU R                  [        [        U" S / 5      5        U R                  [        [        U" S [        5       5      5        MS     g )Nr   c                     U $ r!   r   r)   s    r   rv   1TestBasicOps.test_StopIteration.<locals>.<lambda>,  r  r   c                     U $ r!   r   r)   s    r   rv   rS  -  r  r   )r   rL   r   r#   r   r  rk  rC   rW   r   r   r  rG  r   r  r  r  )r   r   r  qs       r   test_StopIterationTestBasicOps.test_StopIteration  sQ   -su5W-AmT1R59mT1WY<@ . 	-vb$/?@-vgi/FG2w-q1-q179~-q1-q1-vdA?+sIy'JAmT1Z3DEmT1Z3KL Kr   c                     [        S / /S5      n[        U5        [        R                  " 5         U R	                  [        R
                  " [        U5      5      5        g r[   )r<  r   gccollectr   
is_trackedr   s     r   test_combinations_result_gc(TestBasicOps.test_combinations_result_gc/  s?    
 4*a(R


 	d2h/0r   c                     [        S / /S5      n[        U5        [        R                  " 5         U R	                  [        R
                  " [        U5      5      5        g r[   )r1  r   rY  rZ  r   r[  r   s     r   ,test_combinations_with_replacement_result_gc9TestBasicOps.test_combinations_with_replacement_result_gc<  s=     +D":q9R


d2h/0r   c                     [        S / /S5      n[        U5        [        R                  " 5         U R	                  [        R
                  " [        U5      5      5        g r[   )r(  r   rY  rZ  r   r[  r   s     r   test_permutations_result_gc(TestBasicOps.test_permutations_result_gcD  s=     4*a(R


d2h/0r   c                     [        S / /5      n[        U5        [        R                  " 5         U R	                  [        R
                  " [        U5      5      5        g r!   )rb  r   rY  rZ  r   r[  r   s     r   test_product_result_gc#TestBasicOps.test_product_result_gcL  s;     dBZ R


d2h/0r   c                     [        / /5      n[        R                  " 5         U R                  [        R                  " [        U5      5      5        g r!   )r]  rY  rZ  r   r[  r   r   s     r   test_zip_longest_result_gc'TestBasicOps.test_zip_longest_result_gcT  s2     "


d2h/0r   c                     [        S S /5      n[        R                  " 5         U R                  [        R                  " [        U5      5      5        g r!   )r  rY  rZ  r   r[  r   r   s     r   test_pairwise_result_gc$TestBasicOps.test_pairwise_result_gc[  s4     tTl#


d2h/0r   c                    SSK JnJnJn  [        [
        [        [        [        [        [        [        [        [        [        U[        [         ["        [$        [&        [(        [*        UU[,        4nU HA  nU R/                  US9   U R1                  [2        S5         SUl        S S S 5        S S S 5        MC     g ! , (       d  f       N= f! , (       d  f       Mf  = f)Nr   )_grouper_tee_tee_dataobject)tp	immutabler   )	itertoolsrn  ro  rp  r   r   r   r<  r1  r  r  r  r  rG  rk  rW   r  r(  rb  r   r  r  r]  r   rB  r   foobar)r   rn  ro  rp  datasetrq  s         r   test_immutable_types!TestBasicOps.test_immutable_typesb  s    ==)-
0 B$++I{C !BI D %$ CC %$s$   CB7"C7
CC
C	r   )r   r   N)r   )LrP   rQ   rR   rS   r   r   r   r   r   r   r   r  r@  r   bigaddrspacetestrF  impl_detailrN  rq  ru  rx  r  r  r  r  r  r  r  r   requires_working_threadingr  r  r  r  r  r  r4  r?  rI  rN  rT  rd  rg  rk  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-  r2  r7  rC  rO  rV  cpython_onlyr\  r_  rb  re  rh  rk  rv  rU   r   r   r   rx   rx   i   s   '$R !, !,F(3T7Y P P J J MD MD^ & &
 =>R ?R J: J:X 7 7
 =>I ?I
 =D =D~ % % =>R ?REB P PB 9, 9,v I? I?V 002A 3A$*P "H "HH K K> "D "DH @F @FD&6 B B-  =>8  ?84(2T =>< ?< = =
/&2P&0d&,<F| 2 2 =>O ?O 7 7 2 2 A A4H & &< & &6 \/ \/| > >( > >" T3 T3l5 002 3*M. 
1 
1 1 1 1 1 1 1 1 1 1 1 " "r   rx   c                       \ rS rSrS r\S 5       r\S 5       rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestExamplesi  c                 T    U R                  [        [        / SQ5      5      / SQ5        g Nr   r(   r   r   r   r   r   r   rn   r   )r   r"   r   rF   s    r   r   TestExamples.test_accumulate  s    j568IJr   c                    / SQn/ SQn[        [        R                  S-   5       H  n[        U5      nU R	                  [        [        R                  " [        R                  " XC5      5      5      US S  5        U R	                  [        U5      S5        U R	                  [        [        R                  " [        R                  " XC5      5      5      USS  5        M     [        U5      nU R	                  [        U5      S5        U R	                  [        [        R                  " U5      5      USS  5        U R	                  [        [        R                  " U5      5      USS  5        g )Nr  r  r   )r>   rq   r   r   r   r"   rr   rs   r   r   r   )r   r   accumulatedru   r   s        r   test_accumulate_reducible&TestExamples.test_accumulate_reducible  s    '622Q67ED!BT&,,v||B/F"GH+VW.YT"Xq)T&,,v||B/F"GH+VWVX/Z	 8
 b1%dmmB/0+ab/Bdiim,k!"o>r   c                 
   [        / SQ[        R                  5      nU R                  [	        U5      S 5        [        [        R                  S-   5       HJ  n[        R                  " [        R                  " X5      5      nU R                  [        U5      SS/5        ML     U R                  [        [        R                  " U5      5      SS/5        U R                  [        [        R                  " U5      5      SS/5        g )N)NNNr   TF)r   r\   is_r   r   r>   rq   r   rr   rs   r"   r   r   )r   r   ru   it_copys       r   test_accumulate_reducible_none+TestExamples.test_accumulate_reducible_none  s     *HLL9b4(622Q67Ell6<<#:;GT']T5M: 8 	dmmB/04-@diim,tUm<r   c                 Z    U R                  SR                  [        SS5      5      S5        g Nr   rT  DEFr   )r   r   r   rF   s    r   r   TestExamples.test_chain  s"    ue!45x@r   c                 p    U R                  SR                  [        R                  SS/5      5      S5        g r  )r   r   r   r   rF   s    r   r   %TestExamples.test_chain_from_iterable  s*    !4!4eU^!DExPr   c           	          U R                  [        [        SS5      5      / SQ5        U R                  [        [        [        S5      S5      5      / SQ5        g )Nr
  r(   r  r   r   r  )r   r"   r<  r>   rF   s    r   r@  TestExamples.test_combinations  sE    l6156[	]l58Q78=	?r   c                 R    U R                  [        [        SS5      5      / SQ5        g )NrT  r(   rU  )r   r"   r1  rF   s    r   rq  /TestExamples.test_combinations_with_replacement  s#    ;E1EF[	]r   c           	      d    U R                  [        [        S/ SQ5      5      [        S5      5        g )Nr   r  r  )r   r"   r  rF   s    r   r  TestExamples.test_compress  s"    hx?@$v,Or   c           	      d    U R                  [        [        [        S5      S5      5      / SQ5        g )Nrn   r   )rn   r  r5  r  r  )r   r"   rW   r  rF   s    r   r  TestExamples.test_count  s#    fU2Y235IJr   c           	      r    U R                  [        [        [        S5      S5      5      [        S5      5        g )Nr
  r5  ABCDABCDABCD)r   r"   rW   r  rF   s    r   r  TestExamples.test_cycle  s'    fU6]B78$~:NOr   c           	      X    U R                  [        [        S / SQ5      5      / SQ5        g )Nc                     U S:  $ Nr   r   r)   s    r   rv   -TestExamples.test_dropwhile.<locals>.<lambda>      !A#r   r   r   r   r   r   )r   r   r   )r   r"   r  rF   s    r   r  TestExamples.test_dropwhile  s    i{CDgNr   c           	      P   U R                  [        S5       VVs/ s H  u  pUPM	     snn[        S5      5        U R                  [        S5       VVs/ s H  u  p[        U5      PM     snn[        S5      [        S5      [        S5      [        S5      /5        g s  snnf s  snnf )NAAAABBBCCDAABBBABCDAB
AAAABBBCCDAAAABBBCCr   )r   rk  r"   )r   rn  r  s      r   r4  TestExamples.test_groupby  s    0A(BC(B!(BCh	)0EF0E470EFv,UT$ZcK	M DFs   B
B"
c           
      f    U R                  [        [        S [        S5      5      5      / SQ5        g )Nc                     U S-  $ rk   r   r)   s    r   rv   *TestExamples.test_filter.<locals>.<lambda>  s    qsr   rn   )r   r   r   r   r   )r   r"   r  r>   rF   s    r   r?  TestExamples.test_filter  s"    f]E"I>?Mr   c           
      f    U R                  [        [        S [        S5      5      5      / SQ5        g )Nc                     U S-  $ rk   r   r)   s    r   rv   /TestExamples.test_filterfalse.<locals>.<lambda>  s    AaCr   rn   )r   r(   r   r   r   )r   r"   rG  r>   rF   s    r   rI  TestExamples.test_filterfalse  s"    k-rCDkRr   c           	      \    U R                  [        [        [        SS5      5      / SQ5        g )N)r(   r   rn   )r   r(   r   r	  r   r  )r   r"   r   r  rF   s    r   r  TestExamples.test_map  s     c#x9:MJr   c           
      |   U R                  [        [        SS5      5      [        S5      5        U R                  [        [        SSS5      5      [        S5      5        U R                  [        [        SSS 5      5      [        S5      5        U R                  [        [        SSS S5      5      [        S5      5        g )	Nr   r(   ABr   CDCDEFGr   ACEG)r   r"   rW   rF   s    r   r  TestExamples.test_islice  s    fY23T$Z@fY156T
CfY4894=IfY4;<d6lKr   c                 R    U R                  [        [        SS5      5      SS/5        g )Nr
  xyr   r*   r   rL  )r   r"   r#   rF   s    r   rN  TestExamples.test_zip  s#    c&$/0:z2JKr   c           
      P    U R                  [        [        SSSS95      / SQ5        g )Nr
  r  -r[  )r  r  )r   r  )r   r  )r   r"   r]  rF   s    r   test_zip_longestTestExamples.test_zip_longest  s$    k&$#FGI	Kr   c           
          U R                  [        [        SS5      5      [        [        [        SR                  5       5      5      5        U R                  [        [        [        S5      5      5      / SQ5        g )Nr
  r(   z#AB AC AD BA BC BD CA CB CD DA DB DCr   )r0   )r   r(   r   )r   r   r(   )r   r(   r   )r(   r   r   )r(   r   r   )r   r"   r(  r   r   splitr>   rF   s    r   r  TestExamples.test_permutations  sZ    l6156c%)N)T)T)VWX	Zl5845O	Qr   c           
          U R                  [        [        SS5      5      [        [        [        SR                  5       5      5      5        U R                  [        [        [        S5      SS95      / SQ5        g )Nr
  r  zAx Ay Bx By Cx Cy Dx Dyr(   r   r_  )rB  )r   r   r   )r   r   r   )r   r   r   )r   r   r   r  )r   r   r   r  )r   r"   rb  r   r   r  r>   rF   s    r   r  TestExamples.test_product  s]    gfd34c%)B)H)H)JKL	NgeAhq9:=	>r   c                 R    U R                  [        [        SS5      5      / SQ5        g )Nrn   r   )rn   rn   rn   )r   r"   r   rF   s    r   r  TestExamples.test_repeat  s    fRm,l;r   c           	      ^    U R                  [        [        [        / SQ5      5      / SQ5        g )N))r(   r   r   r(   r  r  )r   r"   r  r  rF   s    r   test_stapmapTestExamples.test_stapmap  s"    gc+ABC&	(r   c           	      X    U R                  [        [        S / SQ5      5      SS/5        g )Nc                     U S:  $ r  r   r)   s    r   rv   -TestExamples.test_takewhile.<locals>.<lambda>  r  r   r  r   r   )r   r"   r  rF   s    r   r  TestExamples.test_takewhile  s"    i{CDqeLr   r   N)rP   rQ   rR   rS   r   r   r  r  r   r   r@  rq  r  r  r  r  r4  r?  rI  r  r  rN  r  r  r  r  r  r  rU   r   r   r   r}  r}    s    K ? ? = =AQ?]PKPOMNSKLLKQ><(Mr   r}  c                   6    \ rS rSrS r\S 5       rS rS rSr	g)TestPurePythonRoughEquivalentsi  c           	         S n[        / SQ/ SQ5       Hh  u  p#U R                  X#S9    S [        [        X#5      5      pT S [        U" X#5      5      pU R                  XX5        U R                  XG5        S S S 5        Mj     g ! [         a  n[        U5      S pT S nAN]S nAff = f! [         a  n[        U5      S p S nANmS nAff = f! , (       d  f       M  = f)Nc              3      #    US:  a  [        S5      e[        U 5      n[        [        X!5      5      =n(       a"  Uv   [        [        X!5      5      =n(       a  M!  gg7f)zBBatch data into tuples of length n. The last batch may be shorter.r   zn must be at least oneN)r-   r   r   rW   )r_   r?   r   r   s       r   batched_recipeJTestPurePythonRoughEquivalents.test_batched_recipe.<locals>.batched_recipe  sU      1u !9::hB //%/ !//%//s   AAA)	r   r   r   r   r   rK  r   r  N)r   r   r   r(   r   r   r   r   r   r   r   N)r_   r?   )rb  r   r"   r   r*  r   r   )	r   r  r_   r?   e1r  r   e2r  s	            r   test_batched_recipe2TestPurePythonRoughEquivalents.test_batched_recipe  s    	 #R8:KH x5+!4(<#=+!4x(C#D   (  ( 65: ! +!!Wd+ ! +!!Wd+ 65sX   CB B$"C
B!BCB!!C$
C.B?:C?CC
C	c              '     #    [        U6 nUR                  =(       d    SUR                  =(       d    [        R                  UR
                  =(       d    SpTn[        [        X4U5      5      n [        U5      n [        U 5       H  u  pX:X  d  M  U	v   [        U5      nM     g ! [         a!    [        [        U5      U 5       H  u  pM      g f = f! [         a%    [        [        WS-   U5      U 5       H  u  pM      g f = f7frf  )slicer  r   r  r  r  r   r>   r   rL   r#   	enumerate)
r_   r%   rt   r  r   r  r   nextir1   r   s
             r   rW   %TestPurePythonRoughEquivalents.islice  s     4LGGLq!&&*?CKK1T%T*+	HE	'1
:!M HE 2  	!%,9
 :		  	!%At"4h?
 @	sN   A*D-B$ 9C C #D$(CDCD,D>D DDc           
      ,   U R                  [        U R                  SS5      5      [        S5      5        U R                  [        U R                  SSS5      5      [        S5      5        U R                  [        U R                  SSS 5      5      [        S5      5        U R                  [        U R                  SSS S5      5      [        S5      5        [        [	        S	5      5      nU R                  [        U R                  US
5      5      [        [	        S
5      5      5        U R                  [        U5      [        [	        S
S	5      5      5        [        [	        S	5      5      nU R                  [        U R                  US
S
5      5      / 5        U R                  [        U5      [        [	        S
S	5      5      5        [        5       nU R                  [        U R                  USS
S5      5      S/5        U R                  [        U5      S
5        g )Nr   r(   r  r   r  r  r   r  rn   r   r   r  )r   r"   rW   r   r>   r  r   )r   r   r   s      r   test_islice_recipe1TestPurePythonRoughEquivalents.test_islice_recipe$  s}   dkk)Q78$t*Edkk)Q:;T$ZHdkk)Q=>WNdkk)Qa@A4<P%)_dkk"a014a>Bb4a#56%)_dkk"a34b9b4a#56Gdkk!Q267!=a!$r   c           
        ^ SU4S jjn " U4S jS5      mSnU" / 5      u  p4U R                  [        U5      / 5        U R                  [        U5      / 5        U" [        U5      5      u  p4U R                  [        X45      [        [	        U5      [	        U5      5      5        U" [        U5      5      u  p4U R                  [        U5      [        [	        U5      5      5        U R                  [        U5      [        [	        U5      5      5        U" [        U5      5      u  p4[	        S5       H  nU R                  [        U5      U5        M      AU R                  [        U5      [        [	        U5      5      5        U" [        U5      5      u  p4[	        S5       H  nU R                  [        U5      U5        M      AU R                  [        U5      [        [	        SU5      5      5        [	        S5       H  nS/U-  S	/U-  -   n[        R                  " U5        / / 4nU" [        U5      5      n	U H#  n[        X   5      n
X   R                  U
5        M%     U R                  US   [        [	        U5      5      5        U R                  US	   [        [	        U5      5      5        M     U R                  [        U5        U R                  [        US
5        U R                  [        US	S/S5        U R                  [        US	S/S
S5        U" S5      u  p4[        U5      " S5      nU R                  [        U5      [        S5      5        U" [	        S5      S
5      u  p4n[	        S5       H  nU R                  [        U5      U5        M      U R                  [        U5      [        [	        S5      5      5        U R                  [        U5      [        U5      /[        [	        S5      5      5        U R                  [        U5      [        [	        SS5      5      5        U R                  [        U5      [        [	        SS5      5      5        U R                  [        USS5        U R                  [        U/ S5        [	        S5       H  nU" SU5      nU R                  [        U5      [        5        U R                  [        U5      U5        U R                  U Vs/ s H  n[        U5      PM     sn[        S5      /U-  5        M     U" S5      u  p4U" U5      u  pU" U5      u  nnU R                  [        X4XUU15      S:H  5        U" S5      u  nn[        U5      nU R                  [        U5        U R                  [        US5        U" U5      nU R                  [        U5      [        U5      s=:H  =(       a$    [        U5      s=:H  =(       a    [        S5      :H  Os  5        U" [	        S5      5      u  p4[         R"                  " U5      nU R                  [%        US5      [        U5      5        A[&        R(                  " 5         U R                  [*        [$        US5        [        S5      n[        [	        S5      5      n U" [1        S S5      5      u  nn [3        U5        Ag s  snf !   AAe = f)Nr(   c                    > US:  a  [         eUS:X  a  gT" U 5      nU/n[        US-
  5       H  nUR                  T" U5      5        M     [        U5      $ )Nr   r   r   )r-   r>   r   r   )r_   r?   iteratorr?  r  ro  s        r   r   ;TestPurePythonRoughEquivalents.test_tee_recipe.<locals>.tee:  sV    1u  AvH~HZF1q5\d8n- "= r   c                   .   > \ rS rSrU 4S jrS rS rSrg)<TestPurePythonRoughEquivalents.test_tee_recipe.<locals>._teeiE  c                    > [        U5      n[        UT5      (       a#  UR                  U l        UR                  U l        g X l        S S /U l        g r!   )r   r}   r  link)r   r_   r   ro  s      r   r}  ETestPurePythonRoughEquivalents.test_tee_recipe.<locals>._tee.__init__G  s?    (^b$''$&KKDM "DI$&M!%tDIr   c                     U $ r!   r   rF   s    r   rG   ETestPurePythonRoughEquivalents.test_tee_recipe.<locals>._tee.__iter__P  r  r   c                 z    U R                   nUS   c  [        U R                  5      US'   S S /US'   Uu  o l         U$ Nr   r   )r  r   r  )r   r  r  s      r   rM   ETestPurePythonRoughEquivalents.test_tee_recipe.<locals>._tee.__next__S  sB    yy7?"4==1DG#TlDG#' yr   )r  r  Nr  )ro  s   r   ro  r  E  s    -r   ro  r  r   r   r   r   r   r*   r   r   rW  r  r   r   rn   r  r  )r(   )r   r"   r@   r&   r>   r   r  r!  r   r   r   r   r-   r   r   r   r  r"  r#  rY  rZ  r$  r   rY   r   r  )r   r   r?   r   r   r1   r!  r%  r&  r'  r  r   r?  r*   r   r   r   r(  r)  r*  r+  r  r>  r,  r5  r6  ro  s                             @r   test_tee_recipe.TestPurePythonRoughEquivalents.test_tee_recipe6  sM   		!	 	0 2wa"%a"%6!9~aDq58$<=6!9~a$uQx.1a$uQx.16!9~sAT!Wa( a$uQx.16!9~sAT!Wa( a$uS!}"56qACEQCEMENN5!HEfQi.CSV&  U1XtE!H~6U1XtE!H~6  	)S))S!,)S1Q%5)S1Q%C8 5zGENa$u+. eDk1%asAT!Wa( a$uT{"34$q'47+T%(^<a$uS"78a$uQt}"56 	)S%;*c2r2qA]FT&\51S[!,v6v!d1gv6eaH	  5z1v1v1Q1A./145 UBBx)T*)T2."XRDHGGRGGDKGH 59~MM!K0$q':


.'1kB5ke% 4  tT 23	Ls 7t	s   "Z3
&Z8 8Z=r   N)
rP   rQ   rR   rS   r  staticmethodrW   r  r  rU   r   r   r   r  r    s&    )2  *%$cr   r  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestGCi  c                 @    UR                  U5        [        U5        AAg r!   )r   r   )r   r  	containers      r   	makecycleTestGC.makecycle  s    "Xxr   c                 F    / nU R                  [        SSUS/5      U5        g Nr   r(   r   )r  r   r   r   s     r   r   TestGC.test_accumulate  s"    z1Qq),a0r   c                 H    / nU R                  [        SSUS/S5      U5        g r  )r  r   r   s     r   r   TestGC.test_batched  s$    w!Aay!,a0r   c                 >    / nU R                  [        U5      U5        g r!   )r  r   r   s     r   r   TestGC.test_chain  s    uQx#r   c                 T    / nU R                  [        R                  U/5      U5        g r!   )r  r   r   r   s     r   r   TestGC.test_chain_from_iterable  s"    u**A3/3r   c                 H    / nU R                  [        SSUS/S5      U5        g r  )r  r<  r   s     r   r@  TestGC.test_combinations  $    |Qq1Iq115r   c                 H    / nU R                  [        SSUS/S5      U5        g r  )r  r1  r   s     r   rq  )TestGC.test_combinations_with_replacement  s%    4a!AYBAFr   c                 D    / nU R                  [        S/ SQ5      U5        g )Nr   )r   r   r   r   r   r   )r  r  r   s     r   r  TestGC.test_compress  s    x-8!<r   c                     / n[        S[        4[        US95      nU R                  [	        U" S5      U" S5      5      U5        g )NIntr)   r   r   )r   r   rQ  r  r  )r   r   r  s      r   r  TestGC.test_count  s8    53&$),uSVSV,a0r   c                 F    / nU R                  [        U/S-  5      U5        g rk   )r  r  r   s     r   r  TestGC.test_cycle	  s    uaSU|Q'r   c                 L    / nU R                  [        [        SX/5      U5        g re   )r  r  r<  r   s     r   r  TestGC.test_dropwhile	  s     y1y115r   c                 J    / nU R                  [        U/S-  S 5      U5        g )Nr(   c                     U $ r!   r   r)   s    r   rv   %TestGC.test_groupby.<locals>.<lambda>	  s    qr   )r  rk  r   s     r   r4  TestGC.test_groupby	  s"    ws1uj115r   c                     SnS n[        [        U5      US9 H0  u  p4UR                  R                  S/ 5      R	                  U5        M2     g )Nrn   c                     U $ r!   r   r)   s    r   rv   'TestGC.test_issue2246.<locals>.<lambda>	  r  r   r  r*   )rk  r>   __dict__
setdefaultr   )r   r?   r(  r1   r!  s        r   test_issue2246TestGC.test_issue2246	  sD    E!H'2DA''B/66q9 3r   c                 J    / nU R                  [        S U/S-  5      U5        g )Nc                     g)NTr   r)   s    r   rv   $TestGC.test_filter.<locals>.<lambda>	  s    tr   r(   )r  r  r   s     r   r?  TestGC.test_filter	  s"    vmaSU3Q7r   c                 B    / nU R                  [        S U5      U5        g )Nc                     gr?  r   r)   s    r   rv   )TestGC.test_filterfalse.<locals>.<lambda>	  s    Er   )r  rG  r   s     r   rI  TestGC.test_filterfalse	  s    {>15q9r   c                 P    / nU R                  [        U/S-  U/S-  5      U5        g )Nr(   r   )r  r#   r   s     r   rN  TestGC.test_zip	  s(    sA3q51#a%(!,r   c                     / nU R                  [        U/S-  U/S-  5      U5        US /nU R                  [        U/S-  U/S-  US9U5        g )Nr(   r   r[  )r  r]  )r   r   r   s      r   r  TestGC.test_zip_longest#	  sT    {A3q51#a%0!4I{A3q51#a%1=qAr   c                 J    / nU R                  [        S U/S-  5      U5        g )Nc                     U $ r!   r   r)   s    r   rv   !TestGC.test_map.<locals>.<lambda>+	  s    Ar   r(   )r  r   r   s     r   r  TestGC.test_map)	  s"    s:s1u-q1r   c                 H    / nU R                  [        U/S-  S 5      U5        g rk   )r  rW   r   s     r   r  TestGC.test_islice-	  s"    vqc!eT*A.r   c                 F    / nU R                  [        U/S-  5      U5        g r  )r  r  r   s     r   r  TestGC.test_pairwise1	  s    xA*r   c                 H    / nU R                  [        SSUS/S5      U5        g r  )r  r(  r   s     r   r  TestGC.test_permutations5	  r
  r   c                 D    / nU R                  [        SSUS/SS9U5        g )Nr   r(   r   r_  )r  rb  r   s     r   r  TestGC.test_product9	  s$    w!Aay3Q7r   c                 >    / nU R                  [        U5      U5        g r!   )r  r   r   s     r   r  TestGC.test_repeat=	  s    vay!$r   c                 L    / nU R                  [        S X4/S-  5      U5        g )Nc                      U $ r!   r   )r  s    r   rv   %TestGC.test_starmap.<locals>.<lambda>C	  s    !r   r(   )r  r  r   s     r   r  TestGC.test_starmapA	  s$    w|qeWQY7;r   c           	      N    / nU R                  [        [        SSX/5      U5        g r  )r  r  r<  r   s     r   r  TestGC.test_takewhileE	  s"    y1a|4a8r   r   N)rP   rQ   rR   rS   r  r   r   r   r   r@  rq  r  r  r  r  r4  r  r?  rI  rN  r  r  r  r  r  r  r  r  r  rU   r   r   r   r  r    s     
11$46G=1
(66:8:-B2/+68%<9r   r  c              #   &   #    U  H  nUv   M	     g7f)zRegular generatorNr   seqnr1   s     r   RrD  I	  s      r3   c                   $    \ rS rSrSrS rS rSrg)r   iN	  zSequence using __getitem__c                     Xl         g r!   rC  r   rC  s     r   r}  
G.__init__P	  s    	r   c                      U R                   U   $ r!   rG  )r   r1   s     r   __getitem__G.__getitem__R	  s    yy|r   rG  N)rP   rQ   rR   rS   rT   r}  rK  rU   r   r   r   r   r   N	  s     r   r   c                   *    \ rS rSrSrS rS rS rSrg)r  iU	  z Sequence using iterator protocolc                     Xl         SU l        g re   rB  rH  s     r   r}  
I.__init__W	      	r   c                     U $ r!   r   rF   s    r   rG   
I.__iter__Z	  rI   r   c                     U R                   [        U R                  5      :  a  [        eU R                  U R                      nU =R                   S-  sl         U$ r[   r1   r   rC  rL   r   ro  s     r   rM   
I.__next__\	  ?    66S^#=%8IIdff!r   r1   rC  N	rP   rQ   rR   rS   rT   r}  rG   rM   rU   r   r   r   r  r  U	  s    &r   r  c                   $    \ rS rSrSrS rS rSrg)Igib	  z9Sequence using iterator protocol defined with a generatorc                     Xl         SU l        g re   rB  rH  s     r   r}  Ig.__init__d	  rP  r   c              #   :   #    U R                    H  nUv   M	     g 7fr!   rG  r  s     r   rG   Ig.__iter__g	  s     99CI s   rX  NrP   rQ   rR   rS   rT   r}  rG   rU   r   r   r   r[  r[  b	  s    ?r   r[  c                   $    \ rS rSrSrS rS rSrg)rY  ik	  z Missing __getitem__ and __iter__c                     Xl         SU l        g re   rB  rH  s     r   r}  
X.__init__m	  rP  r   c                     U R                   [        U R                  5      :  a  [        eU R                  U R                      nU =R                   S-  sl         U$ r[   rT  rU  s     r   rM   
X.__next__p	  rW  r   rX  N)rP   rQ   rR   rS   rT   r}  rM   rU   r   r   r   rY  rY  k	  s    &r   rY  c                   $    \ rS rSrSrS rS rSrg)Niv	  zIterator missing __next__()c                     Xl         SU l        g re   rB  rH  s     r   r}  
N.__init__x	  rP  r   c                     U $ r!   r   rF   s    r   rG   
N.__iter__{	  rI   r   rX  Nr`  r   r   r   rg  rg  v	  s    !r   rg  c                   *    \ rS rSrSrS rS rS rSrg)r   i~	  zTest propagation of exceptionsc                     Xl         SU l        g re   rB  rH  s     r   r}  
E.__init__	  rP  r   c                     U $ r!   r   rF   s    r   rG   
E.__iter__	  rI   r   c                     SS-    g )Nr   r   r   rF   s    r   rM   
E.__next__	  s	    	Qr   rX  NrY  r   r   r   r   r   ~	  s    $r   r   c                   *    \ rS rSrSrS rS rS rSrg)E2i	  z3Test propagation of exceptions after two iterationsc                     Xl         SU l        g re   rB  rH  s     r   r}  E2.__init__	  rP  r   c                     U $ r!   r   rF   s    r   rG   E2.__iter__	  rI   r   c                     U R                   S:X  a  [        eU R                  U R                      nU =R                   S-  sl         U$ )Nr(   r   )r1   ZeroDivisionErrorrC  rU  s     r   rM   E2.__next__	  s7    66Q;##IIdff!r   rX  NrY  r   r   r   rt  rt  	  s    9r   rt  c                   *    \ rS rSrSrS rS rS rSrg)Si	  zTest immediate stopc                     g r!   r   rH  s     r   r}  
S.__init__	  s    r   c                     U $ r!   r   rF   s    r   rG   
S.__iter__	  rI   r   c                     [         er!   rK   rF   s    r   rM   
S.__next__	  rO   r   r   NrY  r   r   r   r}  r}  	  s    r   r}  c                 d    [        [        S [        [        [	        U 5      5      5      5      5      $ )z Test multiple tiers of iteratorsc                     U $ r!   r   r)   s    r   rv   L.<locals>.<lambda>	  s    ar   )r   r   rD  r[  r   rG  s    r   Lr  	  s     Z2ag;011r   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rSrg)TestVariousIteratorArgsi	  c           
         / SQn/ SQn[        U5      n[        [        [        [        [
        4 H-  nU R                  [        [        U" U5      5      5      U5        M/     U R                  [        [        [        U5      5      5      / 5        U R                  [        [        [        U5      5        U R                  [        [        [        U5      5        U R                  [        [        [        [        U5      5      5        g r  )r   r   r  r[  r  rD  r   r"   r   r}  r   r   rY  rg  rz  r   r   rt   rg   r?   r  s        r   r   'TestVariousIteratorArgs.test_accumulate	  s    FQAq!AT*QqT"23Q7 "j1./4)Z16)Z16+T:ad3CDr   c                    Sn/ SQnSn[         [        [        [        [        4 HF  nU R                  US9   U R                  [        [        U" U5      U5      5      U5        S S S 5        MH     U R                  [        [        [        U5      S5      5      / 5        U R                  [        [        [        U5      S5        U R                  [        [        [        U5      S5        U R                  [        [        [        [        U5      S5      5        U R                  [        [        [        [!        U5      S5      5        g ! , (       d  f       GM/  = f)NrK  )r  r  )r   r(   )r  r   )r   r  r[  r  rD  r   r   r"   r   r}  r   r   rY  rg  rz  r   rt  r  s        r   r   $TestVariousIteratorArgs.test_batched	  s    ,QAq!A"  gadA&6!7; #" " 	gadA./4)WadA6)WadA6+T71Q43CD+T72a5!3DE #"s   ,E
E	c                    SS[        S5      S[        SSS5      4 GH=  n[        [        [        [        [
        [        4 H  nU R                  [        [        U" U5      5      5      [        U" U5      5      5        U R                  [        [        U" U5      U" U5      5      5      [        U" U5      5      [        U" U5      5      -   5        M     U R                  [        [        [        [        U5      5      5        U R                  [        [        [        [        U5      5      5        U R                  [        [        [        [        U5      5      5        GM@     g N123r   r  dog333333?rW    r   )r>   r   r  r[  r}  r  rD  r   r"   r   r   r   rY  rg  rz  r   r   rt   r  s      r   r   "TestVariousIteratorArgs.test_chain	  s    U4[+uT$q7IJAB1a(  eAaDk!2D1J?  eAaD!A$&7!8$qt*T!A$Z:OP ) iuQqT{;iuQqT{;/uQqT{C Kr   c                 \   SS[        S5      S[        SSS5      4 GH  n[        U5      n[        [        [        [
        [        [        4 HF  nU R                  [        [        U" U5      [        S5      5      5      [        U" U5      5      5        MH     U R                  [        [        [        U5      [        S5      5        U R                  [        [        [        U5      [        S5      5        U R                  [         [        [        [#        U5      [        S5      5      5        GM     g 	Nr  r   r  r  rW  r  r   r   )r>   r   r   r  r[  r}  r  rD  r   r"   r  r   r   r   rY  rg  rz  r   )r   rt   r?   r  s       r   r  %TestVariousIteratorArgs.test_compress	  s    U4[+uT$q7IJAAAB1a(  hqtVAY&?!@$qt*M )i1Q4Ci1Q4C/x!fQi7PQ Kr   c           	          SS[        S5      S[        SSS5      4 Ho  nU R                  [        [        [	        U5      5        U R                  [        [        [        U5      5        U R                  [        [        [        U5      5        Mq     g r  )r>   r   r   rb  rY  rg  rz  r   )r   rt   s     r   r  $TestVariousIteratorArgs.test_product	  sh    U4[+uT$q7IJAi!A$7i!A$7/!A$? Kr   c                 .   SS[        S5      S[        SSS5      4 H  n[        [        [        [        [
        [        4 HZ  n[        U5      S-  n[        U" U5      5      S-  n[        [        [        U" U5      5      U5      5      nU R                  XT5        M\     U R                  [        [        [        U5      5        U R                  [        [        [        U5      5        U R                  [         [        [        [#        U5      5      5        M     g )	Nr  r   r  r  rW  r  r   r   )r>   r   r  r[  r}  r  rD  r   r"   rW   r  r   r   r   rY  rg  rz  r   )r   rt   r  tgtlenr  actuals         r   r  "TestVariousIteratorArgs.test_cycle	  s    U4[+uT$q7IJAB1a(Q!!:a<fU1Q4[&9:  2	 )
 i!5i!5/uQqT{C Kr   c           
      :   [        S5      [        S5      [        S5      S[        SSS5      4 H  n[        [        [        [        [
        [        4 HH  nU R                  [        U" U5      5       VVs/ s H  u  p4UPM	     snn[        U" U5      5      5        MJ     U R                  [        [        [        U5      5        U R                  [        [        [        U5      5        U R                  [        [        [        [        U5      5      5        M     g s  snnf Nrn   r   r  r   r  rW  r  r   )r>   r   r  r[  r}  r  rD  r   rk  r"   r   r   rY  rg  rz  r   )r   rt   r  rn  sbs        r   r4  $TestVariousIteratorArgs.test_groupby	  s    )U1XuT{FE$tA<NOAB1a(  1!?!!?adL )i!A$7i!A$7/wqt}E P!?s   3Dc                    [        S5      [        S5      [        S5      S[        SSS5      4 GH  n[        [        [        [        [
        [        4 H[  nU R                  [        [        [        U" U5      5      5      U" U5       Vs/ s H  n[        U5      (       d  M  UPM     sn5        M]     U R                  [        [        [        [        U5      5        U R                  [        [        [        [        U5      5        U R                  [        [        [        [        [!        U5      5      5        GM
     g s  snf r  )r>   r   r  r[  r}  r  rD  r   r"   r  r6   r   r   rY  rg  rz  r   r   rt   r  r*   s       r   r?  #TestVariousIteratorArgs.test_filter	  s    )U1XuT{FE$tA<NOAB1a(  fVQqT&:!;-.qT!?TVAY!T!?A ) i1>i1>/vfad7KL P "@   D; D;c                    [        S5      [        S5      [        S5      S[        SSS5      4 GH  n[        [        [        [        [
        [        4 H[  nU R                  [        [        [        U" U5      5      5      U" U5       Vs/ s H  n[        U5      (       d  M  UPM     sn5        M]     U R                  [        [        [        [        U5      5        U R                  [        [        [        [        U5      5        U R                  [         [        [        [        [#        U5      5      5        GM
     g s  snf r  )r>   r   r  r[  r}  r  rD  r   r"   rG  r6   r9   r   r   rY  rg  rz  r   r  s       r   rI  (TestVariousIteratorArgs.test_filterfalse	  s    )U1XuT{FE$tA<NOAB1a(  k&!A$&?!@-.qT!>TU1X!T!>@ ) ifadCifadC/{61Q47PQ P "?r  c                    SS[        S5      S[        SSS5      4 GH   n[        [        [        [        [
        [        4 H  nU R                  [        [        U" U5      5      5      [        U" U5      5      5        U R                  [        [        U" U5      U" U5      5      5      [        U" U5      U" U5      5      5        M     U R                  [        [        [        U5      5        U R                  [        [        [        U5      5        U R                  [        [        [        [!        U5      5      5        GM#     g r  )r>   r   r  r[  r}  r  rD  r   r"   r#   r&   r   r   rY  rg  rz  r   r  s      r   rN   TestVariousIteratorArgs.test_zip	  s    U4[+uT$q7IJAB1a(  c!A$i$qt*=  c!A$!o!6QqT1Q48HI ) iad3iad3/s1Q4yA Kr   c                    SS[        S5      S[        SSS5      4 GH2  n[        [        [        [        [
        [        4 H  nU R                  [        [        U" U5      5      5      [        [        U" U5      5      5      5        U R                  [        [        U" U5      U" U5      5      5      [        [        U" U5      U" U5      5      5      5        M     U R                  [        [        [        U5      5        U R                  [        [        [        U5      5        U R                  [        [        [        [!        U5      5      5        GM5     g r  )r>   r   r  r[  r}  r  rD  r   r"   r]  r#   r   r   rY  rg  rz  r   r  s      r   rd  'TestVariousIteratorArgs.test_ziplongest
  s    U4[+uT$q7IJAB1a(  k!A$&7!8$s1Q4y/J  k!A$!&=!>S1qQRt_@UV ) iad;iad;/{1Q47HI Kr   c                 *   [        S5      [        S5      [        S5      S[        SSS5      4 GHW  n[        [        [        [        [
        [        4 H  nU R                  [        [        [        U" U5      5      5      U" U5       Vs/ s H  n[        U5      PM     sn5        U R                  [        [        [        R                  U" U5      U" U5      5      5      U" U5       Vs/ s H  o3U-  PM	     sn5        M     U R                  [        [        [        [        U5      5        U R                  [        [        [        [!        U5      5        U R                  ["        [        [        [        [%        U5      5      5        GMZ     g s  snf s  snf Nrn   r   r   r  r   r  r   )r>   r   r  r[  r}  r  rD  r   r"   r   r+   r\   r  r   r   rY  rg  rz  r   r  s       r   r   TestVariousIteratorArgs.test_map
  s   )U1XuSz65Bq>JAB1a(  c&!A$&7!856qT!:T&)T!:<  c(,,!ad&C!D01!!51Q$!57 )
 ifad;ifad;/s61Q47HI K ";!5s   F(Fc                 
   SS[        S5      S[        SSS5      4 H  n[        [        [        [        [
        [        4 HE  nU R                  [        [        U" U5      SS S	5      5      [        U" U5      5      SS S	2   5        MG     U R                  [        [        [        U5      S
5        U R                  [        [        [        U5      S
5        U R                  [        [        [        [        U5      S
5      5        M     g )N12345r   r  r  rW  r  r   r   r(   rn   )r>   r   r  r[  r}  r  rD  r   r"   rW   r   r   rY  rg  rz  r   r  s      r   r  #TestVariousIteratorArgs.test_islice
  s    2uT{KtD9KLAB1a(  fQqT!D&;!<d1Q4jA>NO )i1r:i1r:/vadB7GH Mr   c           
      &   SS[        S5      S[        SSS5      4 H  n[        [        [        [        [
        [        4 HV  n[        U" U5      5      n[        [        X3SS  5      5      n[        [        U" U5      5      5      nU R                  XT5        MX     U R                  [        [        [        U5      5        U R                  [        [        [        U5      5        U R                  [        [        [        [!        U5      5      5        M     g r  )r>   r   r  r[  r}  r  rD  r"   r#   r  r   r   r   rY  rg  rz  r   )r   rt   r  rX   r  r  s         r   r  %TestVariousIteratorArgs.test_pairwise 
  s    U4[+uT$q7IJAB1a(1Q4jCQR 12hqtn-  2	 )
 i1Q48i1Q48/x!~F Kr   c                    [        S5      [        S5      [        S5      S[        SSS5      4 GH*  n[        [        [        [        [
        [        4 H`  n[        X5      nU R                  [        [        [        R                  U" U5      5      5      U" U5       Vs/ s H  oDU-  PM	     sn5        Mb     U R                  [        [        [        R                  [        W5      5        U R                  [        [        [        R                  [!        U5      5        U R                  ["        [        [        [        R                  [%        U5      5      5        GM-     g s  snf r  )r>   r   r  r[  r}  r  rD  r&   r   r"   r  r\   r  r   r   rY  rg  rz  r   )r   rt   r  ssr*   s        r   r  $TestVariousIteratorArgs.test_starmap+
  s    )U1XuSz65Bq>JAB1a(!Z  ghllAbE&B!C01!!51Q$!57 ) i(,,"Fi(,,"F/wx||QrU7ST K "6s   Ec                    [        S5      [        S5      [        S5      S[        SSS5      4 GH  n[        [        [        [        [
        [        4 Hf  n/ nU" U5       H&  n[        U5      (       d    OUR                  U5        M(     U R                  [        [        [        U" U5      5      5      U5        Mh     U R                  [        [        [        [        U5      5        U R                  [        [        [        [        U5      5        U R                  [         [        [        [        [#        U5      5      5        GM     g r  )r>   r   r  r[  r}  r  rD  r6   r   r   r"   r  r   r   rY  rg  rz  r   r   rt   r  tgtr,  s        r   r  &TestVariousIteratorArgs.test_takewhile5
  s    )U1XuT{FE$tA<NOAB1a(aDD!$<<JJt$ !   i!&=!>D ) iFAaDAiFAaDA/y17NO Pr   c                    [        S5      [        S5      [        S5      S[        SSS5      4 GH  n[        [        [        [        [
        [        4 Hm  n/ nU" U5       H-  nU(       d  [        U5      (       a  M  UR                  U5        M/     U R                  [        [        [        U" U5      5      5      U5        Mo     U R                  [        [        [        [        U5      5        U R                  [        [        [        [        U5      5        U R                  [         [        [        [        [#        U5      5      5        GM     g r  )r>   r   r  r[  r}  r  rD  r9   r   r   r"   r  r   r   rY  rg  rz  r   r  s        r   r  &TestVariousIteratorArgs.test_dropwhileA
  s    )U1XuT{FE$tA<NOAB1a(aDD5;;JJt$ !   iqt&<!=sC ) iE1Q4@iE1Q4@/y!7MN Pr   c           
      X   SS[        S5      S[        SSS5      4 GH
  n[        [        [        [        [
        [        4 Hj  n[        U" U5      5      u  p4U R                  [        U5      [        U" U5      5      5        U R                  [        U5      [        U" U5      5      5        Ml     U R                  [        [        [        U5      5        U R                  [        [        [        U5      5        U R                  [        [        [        [        U5      5      S   5        GM     g )	Nr  r   r  r  rW  r  r   r   )r>   r   r  r[  r}  r  rD  r   r   r"   r   r   rY  rg  rz  r   )r   rt   r  it1it2s        r   r-   TestVariousIteratorArgs.test_teeM
  s    U4[+uT$q7IJAB1a(qt9  cD1J7  cD1J7 ) iad3iad3/s1Q4y|D Kr   r   N)rP   rQ   rR   rS   r   r   r   r  r  r  r4  r?  rI  rN  rd  r  r  r  r  r  r  r-  rU   r   r   r   r  r  	  sn    	EFDR@	DFMRBJ	JI	GU
P
OEr   r  c                        \ rS rSrS rS rSrg)LengthTransparencyiW
  c                 $   U R                  [        R                  " [        S S5      5      S5        U R                  [        R                  " [        S S5      5      S5        U R                  [        R                  " [        S 5      S5      S5        g )Nr  r   r5  r   r\   length_hintr   rF   s    r   r  LengthTransparency.test_repeatY
  sf    --fT2.>?D--fT1o>B--fTlB?Dr   c           	      |   U R                  [        R                  " [        S S5      5      S5        U R                  [        R                  " [        S S5      5      S5        U R                  [        R                  " [        S SS95      S5        U R                  [        R                  " [        S SS95      S5        g )Nr   r   r  r  r  rF   s    r   r  2LengthTransparency.test_repeat_with_negative_times^
  s    --fT2.>?C--fT2.>?C--fT.DEqI--fT.DEqIr   r   N)rP   rQ   rR   rS   r  r  rU   r   r   r   r  r  W
  s    E
Jr   r  c                   z    \ rS rSrS rS r\R                  \R                  " S5      S 5       5       r	S r
S rSrg	)
RegressionTestsid
  c                 r   ^ S nU4S jn/ mU" SUS5        [        [        5      nU R                  TU5        g )Nc                    ^^ S/4UU4S jjn[        U5      n[        U 5      USS& [        X45      n[        U/[        U 5      -  6 m[	        T5        g )Nr   c                 B   > U(       a  US S 2	 T" [        T5      5        U $ r!   r   )r  r@  r   zs     r   r  @RegressionTests.test_sf_793826.<locals>.mutatingtuple.<locals>.gm
  s    ad1gJr   )r"   r   r#   r   r   )tuple1r   tuple2r  itemsgenr  s    `    @r   mutatingtuple5RegressionTests.test_sf_793826.<locals>.mutatingtuplei
  sS     !"s  
 LEfE!AJa-CcU3v;&'AGr   c                 .   > U q [        [         5      TS S & g r!   )Tr"   )r  r@  s    r   r   )RegressionTests.test_sf_793826.<locals>.fx
  s    AAwE!Hr   r  )r   r   r   )r"   r  r   )r   r  r   secondr@  s       @r   test_sf_793826RegressionTests.test_sf_793826f
  s9    		
 gq'*a'r   c           
        ^ U4S jnU4S jn/ mU R                  [        [        [        U" 5       U" S5      5      5        U R	                  TSS/5        / mU R                  [        [        [        U" 5       U" S5      5      5        U R	                  TSS/5        / mU R                  [        [        [        U" 5       5      5        U R	                  TSS/5        g )Nc               3   d   >#    T R                  S5        Sv   T R                  S5        [        e7frf  )r   r   )hists   r   gen1,RegressionTests.test_sf_950057.<locals>.gen1
  s'     KKNGKKN  s   -0c              3   Z   >#    TR                  S5        Sv   TR                  S5        g 7f)Nr   r(   r   )r   )r*   r  s    r   gen2,RegressionTests.test_sf_950057.<locals>.gen2
  s!     KKNGKKNs   (+Fr   r   T)r   r   r"   r   r   r  )r   r  r  r  s      @r   test_sf_950057RegressionTests.test_sf_950057
  s    		
 .$dfd5k0JK!u%.$dfd4j0IJ!u%.$df>!u%r   cpuc                     [         R                  S [        S5       5       5      nU R                  [        5         [        U5        S S S 5        g ! , (       d  f       g = f)Nc              3   &   #    U  H  nS v   M	     g7f)r   Nr   )r   unuseds     r   r   ERegressionTests.test_long_chain_of_empty_iterables.<locals>.<genexpr>
  s      B//r3   i )r   r   r>   r   rL   r   r   s     r   "test_long_chain_of_empty_iterables2RegressionTests.test_long_chain_of_empty_iterables
  s?        B%/ BB}-H .--s   A
Ac                 f   ^ U4S jn[        [        S5      U5       H  u  nm[        T5        M     g )Nc                 0   > U S:X  a  [        T5        U S:g  $ )Nr   r   )r"   )r?   r   s    r   r   ,RegressionTests.test_issue30347_1.<locals>.f
  s    AvQ6Mr   rn   )rk  r>   r"   )r   r   rn  r   s      @r   test_issue30347_1!RegressionTests.test_issue30347_1
  s*    	 eBi+FQG ,r   c                    ^^  " UU4S jS5      nSm[        [        [        S5      U5      5      S   m[        S5       H  n[        TS 5        M     g )Nc                   *   > \ rS rSrS rU U4S jrSrg),RegressionTests.test_issue30347_2.<locals>.Ki
  c                     g r!   r   rU  s     r   r}  5RegressionTests.test_issue30347_2.<locals>.K.__init__
  s    r   c                 4   > TS-  mTS:X  a  [        TS 5        g)Nr   Tr  )r   otherr  r1   s     r   r"  3RegressionTests.test_issue30347_2.<locals>.K.__eq__
  s    Q6DMr   r   N)rP   rQ   rR   rS   r}  r"  rU   )r  r1   s   r   Kr  
  s     r   r  r   rn   r   r(   )r   rk  r>   )r   r  r!  r  r1   s      @@r   test_issue30347_2!RegressionTests.test_issue30347_2
  sE    	 	 rA&'*qADM r   r   N)rP   rQ   rR   rS   r  r  r   skip_if_pgo_taskrequires_resourcer  r  r  rU   r   r   r   r  r  d
  sC    (:&8 u% & r   r  c                       \ rS rSrS rSrg)SubclassWithKwargsTesti
  c                    [         SSS/4[        SS/S4SS/4[        S SS/4S/4[        S SS/4S/4[        SS/SS	/4/ S
Q4[
        [        SS/4SS/4[        [        R                  S4SS/4[        / SQSS4SS/4[        [        / SQ4S/4[        [        / SQ4SS	/4[        SS/4/ SQ4[        S/ SQ4SS/4/nU H  u  p#nU R!                  U5          " S SU5      nU" U6 nU R#                  [%        U5      U5        U R'                  [)        [        USS5      5      U5        U R+                  [,        5         U" USS06  S S S 5        S S S 5        M     U H  u  p#nU[         [        [        4;   a  M  U R!                  U5          " S SU5      nU" USS06nU R#                  [%        U5      U5        U R'                  [)        [        USS5      5      U5        U R'                  UR.                  S5        S S S 5        M     U H  u  p#nU R!                  U5          " S SU5      nU" USS06nU R#                  [%        U5      U5        U R'                  [)        [        USS5      5      U5        U R'                  UR.                  S5        S S S 5        M     g ! , (       d  f       GN_= f! , (       d  f       GM  = f! , (       d  f       GMw  = f! , (       d  f       M  = f)Nr~  r   r(   r   r  r  r   r   r   r  12)r  r  r   r   )r   r(   r   r   )r(   r   r   )r   r(   r   rT  r  r   r   c                       \ rS rSrSrg)BSubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclassi
  r   Nr  r   r   r   subclassr	  
  s    r   r
  newargc                   "    \ rS rSrSS.S jrSrg)LSubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclass_with_initi
  Nr  c                    Xl         g r!   r  )r   r  r%   s      r   r}  USubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclass_with_init.__init__
  s    &,r   )rP   rQ   rR   rS   r}  rU   r   r   r   subclass_with_initr  
  s    59 - -r   r  c                   0   ^  \ rS rSrSS.U 4S jjrSrU =r$ )KSubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclass_with_newi
  Nr  c                6   > [         TU ]  " U /UQ76 nXl        U$ r!   )super__new__r  )clsr  r%   r   r  s       r   r  SSubclassWithKwargsTest.test_keywords_in_subclass.<locals>.subclass_with_new.__new__
  s     $ws:T:&,#r   )rP   rQ   rR   rS   r  rU   __classcell__)r  s   @r   subclass_with_newr  
  s    37 $ $r   r  )r   r#   r  rG  r   r   r~   r  r\   r  rW   r  r6   r  r  r  r   rt  r   r   r"   r   r   r  )	r   r  r  r%   r?  r
  ur  r  s	            r   test_keywords_in_subclass0SubclassWithKwargsTest.test_keywords_in_subclass
  s    VaV$Aq64.8X"67dQF^aS)4!Q.1#.aVaV$i03A-#s,x||%56A?lAq)Aq62+aS1+aV4aVIy)y)C:6
	 "+Cvc"s dOd1gx0  fQ1o!6?&&y1d-1- 2 #" "+ "+Cv vsH--c"- - '7Q7d1g'9:  fQ1o!6?  1- #" "+ "+Cvc"$ $
 &t6A6d1g'89  fQ1o!6?  1- #" "+% 21 #" #" #"s?   A'J1>	JJ1A1K!A1K
J.)J11
K	
K	
K&	r   N)rP   rQ   rR   rS   r  rU   r   r   r   r  r  
  s    3.r   r  c                   J    \ rS rSrS r\R                  rS rS rS r	S r
Srg)	
SizeofTesti
  c                 :    [         R                  " S5      U l        g )Nr?   )structcalcsizessize_trF   s    r   setUpSizeofTest.setUp
  s    s+r   c                     [         R                  " S5      nU R                  nU" [        SS5      USU R                  -  -   5        U" [        S6 USU R                  -  -   5        g )N3Pir   12r(   )
r   r   r   r   r   r   r   r   r   r   rn   )r   calcobjsizecheck_sizeofrb  r#  r   basesizer  s      r   test_product_sizeofSizeofTest.test_product_sizeof
  sY    &&u-!!gdD!8a$,,.>#>?g'B4E)EFr   c                     [         R                  " S5      nU R                  nU" [        SS5      USU R                  -  -   5        U" [        [        S5      S5      USU R                  -  -   5        g N3Pnir   r   rn   r   )r   r)  r*  r<  r#  r>   r+  s      r   test_combinations_sizeof#SizeofTest.test_combinations_sizeof  s_    &&v.!!l61%x!dll2B'BCl59a((Q5E*EFr   c                     [         n[        R                  " S5      nU R                  nU" U" SS5      USU R                  -  -   5        U" U" [        S5      S5      USU R                  -  -   5        g r0  )r1  r   r)  r*  r#  r>   )r   rl  r,  r  s       r   )test_combinations_with_replacement_sizeof4SizeofTest.test_combinations_with_replacement_sizeof  sc    +&&v.!!c&!nhT\\)99:c%)QA,<!<=r   c                    [         R                  " S5      nU R                  nU" [        S5      USU R                  -  -   SU R                  -  -   5        U" [        SS5      USU R                  -  -   SU R                  -  -   5        U" [        SS5      USU R                  -  -   SU R                  -  -   5        U" [        [        S5      S5      USU R                  -  -   SU R                  -  -   5        g )N4Pnir   r   r   rK  r   rn   )r   r)  r*  r(  r#  r>   r+  s      r   test_permutations_sizeof#SizeofTest.test_permutations_sizeof  s    &&v.!!l6"T\\))A,<<	>l61%T\\))A,<<	>l7A&T\\))A,<<	>l59a(dll**Q-==	?r   )r#  N)rP   rQ   rR   rS   r$  r   r*  r-  r2  r5  r9  rU   r   r   r   r  r  
  s*    , ''LGG>
?r   r  c                 X    UR                  [        R                  " [        5      5        U$ r!   )addTestdoctestDocTestSuiters  )loadertestspatterns      r   
load_testsrB    s    	MM'&&y12Lr   __main__)Fr=  unittestrs  testr   test.supportr   r   r  decimalr   	fractionsr   r\   r  r   rq   	functoolsr	   r  r!  r  rY  r   r   MAX_Py_ssize_tr  minsizer&   r+   r.   r2   r6   r9   r;   r@   rC   rY   r`   rc   rh   rl   ro   r>   r   r   TestCaserx   r}  r  r  rD  r   r  r[  rY  rg  r   rt  r}  r  r  r  r  r  r{  r  rB  rP   main)ru   s   0r   <module>rN     s/       8          
   	 & 
 
 (1*
  -
 $F$;$;a$?@B@U "'L@BW"8$$ W"t8mM8$$ mM`fX%6%6 fRk9X k9Z
   	 	    2
qEh// qEfJ** JZh'' Zz4.X.. 4.n 	#?"" #? #?L
 zMMO }UBs   :H