
    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$ )Nc                 (  > 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 -  $ N   r   xs    r   oneargr,   .   s    Q3Jr   c                      [         er!   )
ValueErrorr$   s    r   errfuncr/   2   s    
r   c               #   &   #    S H  n U v   M	     g 7f)Nr   r   r)   r   )is    r   gen3r3   6   s         c                     U S-  S:H  $ )Nr)   r   r   r*   s    r   isEvenr6   ;       Q36Mr   c                     U S-  S:H  $ Nr)   r   r   r*   s    r   isOddr:   ?   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)nr2   s     r   irangerA   F   s     1X    c                        \ rS rSrS rS rSrg)StopNowJ   c                     U $ r!   r   r   s    r   __iter__StopNow.__iter__L       r   c                     [         er!   StopIterationrG   s    r   __next__StopNow.__next__N       r   r   N__name__
__module____qualname____firstlineno__rH   rN   __static_attributes__r   r   r   rD   rD   J   s    r   rD   c                 *    [        [        X5      5      $ r!   )r"   islice)r@   seqs     r   takerZ   Q   s    sr   c                 8    [        [        R                  U S5      $ Nr   )r	   operatormuliterables    r   prodra   U   s    (,,!,,r   c                 2    [        [        SU S-   5      5      $ r\   )ra   r?   )r@   s    r   factrc   X   s    a1r   c                     U S   $ Nr   r   rs    r   testRrh   ]       Q4Kr   c                     U S   $ r(   r   rf   s    r   testR2rk   `   ri   r   c                     U S:  $ )N
   r   r*   s    r   undertenrn   c   s    R4Kr   c                 V    [         R                  " [         R                  " X5      5      $ r!   )pickleloadsdumps)sprotos     r   <lambda>ru   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)Nr   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 )Nrm   zinfinite recursion encounteredr   )RuntimeError
isinstancestrr"   rX   	TypeError)itr2   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   r   )rp   rr   rq   assertEqualtyper?   nextrM   )r   protocolr   r   rZ   comparedumpi2abci3tookr2   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)Nrm   )
r   r         rm            $   -   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)rm   r   r   )rm   r   r   d   )r   n   s   t      )r   r"   
accumulater?   intcomplexr   r   mapr   r~   minmaxr]   r^   chrrp   HIGHEST_PROTOCOLr   )r   typrs   rt   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   )rs   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   datar2   rs   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r!   r   )	iterablesr   elements      r   chain2'TestBasicOps.test_chain.<locals>.chain2   s     !G!M  "  rB   r   defabcdefr   r   abcdr)   r   )r   r   r"   rZ   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_iterablerZ   r   r~   rX   repeatr?   rG   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   rZ   r   r~   r?   rp   r   r   )r   operr   rt   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   ru   0TestBasicOps.test_combinations.<locals>.<lambda>      Ar       ABCDr   r   r   r   r   r   r   r   r   r   )r  r  r  r  r   r   r   r1   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)Nc              3   .   >#    U  H
  nTU   v   M     g 7fr!   r   r   r2   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@   indicesr2   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)Nc              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  )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)Nc              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  )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   r0  r'  r   r   rp   r   r   )r   optestIntermediater   r)  r1  r@   r+   rg   resultr   r   rt   r6  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:  rG   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   r0  r   idr:  assertNotEqualr"   rG   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   ru   ATestBasicOps.test_combinations_with_replacement.<locals>.<lambda>x  r  r   ABC)r   r   r   r  r   r   r  r   r   )r   r  rT  r  rU  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)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   rX    r  r  )r   r   r  r?   )r`   rg   r@   r  r2   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)N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  )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   r3  r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr!   r   r5  s     r   r   BTestBasicOps.test_combinations_with_replacement.<locals>.<genexpr>  r8  r9  )r/  r   r~   r.   r   r   r"   r   r?   r   r0  r'  r:  r   groupbyr   rp   r   r   )r   cwrr;  r<  rZ  ra  re  r@   r+   rg   r=  regular_combsr   kvnorunsr   rt   r6  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)NrA     @)r   rB  rC  r/  rG   s    r   +test_combinations_with_replacement_overflow8TestBasicOps.test_combinations_with_replacement_overflow  s+    {;<)$6 =<<rF  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 rH  )r/  r   r   r0  r   rJ  rK  r"   )r   rj  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  rs   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)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  cyclesr2   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)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   r`  r?   r0  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   r3  r   c              3   ,   >#    U  H	  oT;   v   M     g 7fr!   r   r5  s     r   r   1TestBasicOps.test_permutations.<locals>.<genexpr>  r8  r9  r!   )r   r~   r&  r.   r   r"   r?   r   rc   r0  r'  r   r   rp   r   r   )
r   r  r  r@   r+   rg   r=  prt   r6  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   rr  )r   rB  rC  r&  rG   s    r   test_permutations_overflow'TestBasicOps.test_permutations_overflow	  s+    {;<e$ =<<rF  c                    U R                  [        [        [        [        [        SS5      5      5      5      S5        U R                  [        [        [        [        [        [        SS5      5      5      5      5      S5        g rH  )r   r   r0  r   rJ  r&  rK  r"   rG   s    r   test_permutations_tuple_reuse*TestBasicOps.test_permutations_tuple_reuse  rN  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"   r`  r/  r&  r:  r   r   rc   r'  r0  filter__contains__)	r   r@   rs   rg   ra   rj  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   ACrR  )r   r   r   r   r   r   BC'  r   ry  r   r   r   c                 .    [         R                   " U 5      $ r!   )r   r  s    r   ru   ,TestBasicOps.test_compress.<locals>.<lambda>F  s    DIIaLr   c                 .    [         R                  " U 5      $ r!   )r   r   r  s    r   ru   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   rm   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&   countrZ   r#   r   r~   maxsizer"   r?   r   r   reprr   r   floatsys__mod__r   r   rp   r   r   exc_info)r   BIGINTr   r2   r1r2valuert   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   rm   r   r   g      ?)r)   r  g      @r  )r)   r  y      !@       r  z.1z1.2z1.3r      r   r  g      @)rm   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~   rZ   r  r?   r"   r   r   r  r   r   r   r  r  rp   r   r   )r   r  r   r2   r  r  r  rt   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  rm   r  c                  @   > [        T5       H  n [        T5        M     g r!   )r?   r   )r2   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  threadsr2   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  rG   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 )Nrm   r   
abcabcabcar   r   )
r   r   r)   r   r   r)   r   r   r)   r   )r   rZ   cycler"   r   r~   rX   r3   rG   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   rm   
bcabcabcabr   
cabcabcabcrI  r)   r   cdeabcdeabcdeabcdeabr   )r  r   r   rZ   r   r   r"   r?   rp   r   rq   rr   r   r   )r   r   rt   r   r2   _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.rm   )
r)   r   r   r)   r   r   r)   r   r   r)   )rp   rq   r   rZ   )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   rZ   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   ru   +TestBasicOps.test_groupby.<locals>.<lambda>l      ar   rm   ))r   rm   r   )r      r   )r   r3  r   )r      r   )r         )r)   r   r  )r   r      )r   r  r  c                     U S   $ re   r   rf   s    r   ru   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rR   rS   rT   rU   rV   r   r   r   ExpectedErrorr    s    r   r  c              3   <   >#    [        U 5       H  nSv   M	     Te7f)Nyor>   )r@   r2   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!   )ri  )r`   keypfuncrl  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)rR   rS   rT   rU   r   rV   )r  s   r   DummyCmpr    s    $ $r   r"  )r  c                 V   > TR                   S:  a  T=R                   S-  sl         U $ Terd  )skip)objr  keyfuncs    r   r&  *TestBasicOps.test_groupby.<locals>.keyfunc  s(    ||a!
##r   r   )r   r"   ri  rJ  r   r~   r   r?   rp   r   rq   rr   rh   rk   r0  r   r#   r   r'  rX   	Exceptionr$  )r   rs   duprl  r  elemrt   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   ru   *TestBasicOps.test_filter.<locals>.<lambda>      ar   c                     U $ r!   r   r*   s    r   ru   r7    r8  r   r   r   )r   r"   r  r6   r?   boolrZ   r  r   r~   r   r   r   rp   r   rq   rr   r   r   ansr   rt   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  r5  r   r   r   r   )r   r   r   r   c                     U $ r!   r   r*   s    r   ru   /TestBasicOps.test_filterfalse.<locals>.<lambda>
      1r   c                     U $ r!   r   r*   s    r   ru   rB    rC  r   r   r   r   )r   r"   filterfalser6   r?   r:  rZ   r  r   r~   r   rp   r   r   r   rt   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&   rZ   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   rJ  r#   r   r   r   r   dictfromkeysr   r  r   r?   rp   r   rq   rr   r   r   )r   idsr+   rJ  r<  rt   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   "$rW  	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_longestrO  rZ   r  r#   r   r~   evalglobalslocalsfail)r   r%   r2   argr  r  stmtrK  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   rJ  r[  r   r   r   r   rO  rP  )r   rQ  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   defghrY  r   )r?   rp   r   r   r[  rF  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   rH   HTestBasicOps.test_zip_longest_bad_iterable.<locals>.BadIterable.__iter__z  s    r   r   N)rR   rS   rT   rU   rH   rV   )ro  s   r   BadIterablerm  y  s       r   rq  )r~   r   r[  assertIsro  )r   rq  cmro  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   rz  r  r   s       r   __init__5TestBasicOps.test_bug_7244.<locals>.Repeater.__init__  s    Qr   c                     U $ r!   r   rG   s    r   rH   5TestBasicOps.test_bug_7244.<locals>.Repeater.__iter__      r   c                 |    U R                   S:  a!  U =R                   S-  sl         U R                  $ U R                  erd  )r  rz  r   rG   s    r   rN   5TestBasicOps.test_bug_7244.<locals>.Repeater.__next__  s,    66A:FFaKF66M&&Lr   )r   rz  r  NrR   rS   rT   rU   r{  rH   rN   rV   r   r   r   Repeaterrx    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   rY  stdout)r[  r   captured_outputprintr   )r  r  r=  r2   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|  rz  r   rY  r|  )rM   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   rI  )r  )r   r   r   r   )r   r   r  r   r   rm   r_   )r   r"   pairwiser?   r#   r   r~   rG   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   rG   s    r   rH   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   rN   ETestBasicOps.test_pairwise_reenter.<locals>.check.<locals>.I.__next__  s1    JJNJzzZ/#Bx JJ<'r   r   NrR   rS   rT   rU   r  rH   rN   rV   )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   rG   s    r   rH   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  rM   r   )r   r   maxcounts    r   rN   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   ry  rz  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  r2   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  r2   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)Nr   z"repeat argument cannot be negative)r.   r   )r   r   r  r  r=  r+   rJ  ra   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"   r`  rO  r   r   r~   r0  r   random	randrangechoicera   r   r   )
r   r%   r=  rg   r  r  argtypesr2   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   rB  rC  r`  rG   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   r0  r   rJ  r`  rK  r"   rG   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   r`  r   rp   r   r   )r   r%   r=  rt   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  )r`  r   r   r   r   rM   )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)rm   r)   aar   )r   r"   r   r&   r?   rZ   r   r~   r  r   r   r   rp   r   r   )r   rg   r   rt   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   rG   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  rm   r   )r   r"   r   r]   powr?   r<   r  rZ   r   r~   negr   r.   r/   r,   r   r   rp   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   extrarm   )r   r"   starmapr]   r  r#   r?   rZ   r  r   r   r~   r   r.   r/   r,   r   r   rp   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)rm   r   r   rm   r   r   rm   r   )rm   rm   rm   r   r   r   )))rm   r   r   )rm   r   r   ))rm   r   )rm   r   ))r   )r   rm   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  rG   s    r   	__index__3TestBasicOps.test_islice.<locals>.IntLike.__index__  s    xxr   r  N)rR   rS   rT   rU   r{  r  rV   r   r   r   IntLiker    s     r   r  r   )r   r"   rX   r?   r   r   r~   r.   r   r  r  r   r   r   rp   r   r   weakrefrefassertIsNotNoner   
gc_collectassertIsNoner  )	r   r%   tgtargsr   rar   rt   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  rm   )r   r   r   r   r   r   r   r   r   r   )r   r"   	takewhilern   r   r~   r]   r  r   r.   r/   r:  rM   r   r   r?   rp   r   r   )r   r   r  rt   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  rm   r   )r   r"   	dropwhilern   r   r~   r]   r  r   r.   r/   r   r   r?   rp   r   r   )r   r   rt   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   rU  invalidr   r   rm   	__class__r  <   r   )teer   r"   rA   r&   r?   r   r  shuffler   r   r~   r   r.   r   r   r   r  proxygetattrr   r  ReferenceErrorr   rZ   r   rp   r   r   r   )r   r@   r   r   r2   r  orderlistsitsr  r   r=  r+   r   r   r   t1t2tnewt3r  r<  long_ansrt   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   rG   s    r   rH   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   rN   1TestBasicOps.test_tee_reenter.<locals>.I.__next__  s$    

"
7N r   )r>  N)rR   rS   rT   rU   r>  rH   rN   rV   r  s   r   r  r9    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   rG   s    r   rH   4TestBasicOps.test_tee_concurrent.<locals>.I.__iter__  r  r   c                 F   > TR                  5         TR                  5         g r!   )r0  wait)r   finishr  s    r   rN   4TestBasicOps.test_tee_concurrent.<locals>.I.__next__	  s    		r   r   NrQ   )rJ  r  s   r   r  rE    s     r   r  )r  r%   r  )r  Eventr  r  r   r  rI  r@  r{   r0  r   )r   r  r   r   r  rJ  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   ru   1TestBasicOps.test_StopIteration.<locals>.<lambda>,  r  r   c                     U $ r!   r   r*   s    r   ru   rQ  -  r  r   )r   rM   r   r#   r   r  ri  rD   rX   r  r   r  rE  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\   )r/  r   rW  rX  r   rY  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   rW  rX  r   rY  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!   )r`  r   rW  rX  r   rY  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[  rW  rX  r   rY  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  rW  rX  r   rY  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   )	itertoolsrl  rm  rn  r   r   r   r:  r/  r  r  r  r  rE  ri  rX   r  r&  r`  r   r  r  r[  r   r@  r~   foobar)r   rl  rm  rn  datasetro  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   )LrR   rS   rT   rU   r   r   r   r   r   r   r   r   r>  r   bigaddrspacetestrD  impl_detailrL  ro  rs  rv  r  r  r  r  r  r  r  r   requires_working_threadingr  r  r  r  r  r  r2  r=  rG  rL  rR  rb  re  ri  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r+  r0  r5  rA  rM  rT  cpython_onlyrZ  r]  r`  rc  rf  ri  rt  rV   r   r   r   rw   rw   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   rw   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   rm   r   )r   r"   r   rG   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?   rp   r   r   r   r"   rq   rr   r   r   r   )r   r   accumulatedrt   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?   rp   r   rq   rr   r"   r   r   )r   r   rt   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   rR  DEFr   )r   r   r   rG   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   rG   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?   rG   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 )NrR  r)   rS  )r   r"   r/  rG   s    r   ro  /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  rG   s    r   r  TestExamples.test_compress  s"    hx?@$v,Or   c           	      d    U R                  [        [        [        S5      S5      5      / SQ5        g )Nrm   r   )rm   r  r3  r  r  )r   r"   rX   r  rG   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	  r3  ABCDABCDABCD)r   r"   rX   r  rG   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   ru   -TestExamples.test_dropwhile.<locals>.<lambda>      !A#r   r   r   r   r   r   )r   r   r   )r   r"   r  rG   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   ri  r"   )r   rl  r  s      r   r2  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-  $ r(   r   r*   s    r   ru   *TestExamples.test_filter.<locals>.<lambda>  s    qsr   rm   )r   r   r   r   r   )r   r"   r  r?   rG   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-  $ r(   r   r*   s    r   ru   /TestExamples.test_filterfalse.<locals>.<lambda>  s    AaCr   rm   )r   r)   r   r   r   )r   r"   rE  r?   rG   s    r   rG  TestExamples.test_filterfalse  s"    k-rCDkRr   c           	      \    U R                  [        [        [        SS5      5      / SQ5        g )N)r)   r   rm   )r   r)   r   r  r   r  )r   r"   r   r  rG   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"   rX   rG   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   rJ  )r   r"   r#   rG   s    r   rL  TestExamples.test_zip  s#    c&$/0:z2JKr   c           
      P    U R                  [        [        SSSS95      / SQ5        g )Nr	  r  -rY  )r  r  )r   r  )r   r  )r   r"   r[  rG   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   )r1   )r   r)   r   )r   r   r)   )r   r)   r   )r)   r   r   )r)   r   r   )r   r"   r&  r   r   splitr?   rG   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]  )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?   rG   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 )Nrm   r   )rm   rm   rm   )r   r"   r   rG   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  rG   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   ru   -TestExamples.test_takewhile.<locals>.<lambda>  r  r   r  r   r   )r   r"   r  rG   s    r   r  TestExamples.test_takewhile  s"    i{CDqeLr   r   N)rR   rS   rT   rU   r   r   r  r  r   r   r>  ro  r  r  r  r  r2  r=  rG  r  r  rL  r  r  r  r  r  r  rV   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)Nr   zn must be at least one)r.   r   r   rX   )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   rI  r   r  N)r   r   r   r)   r   r   r   r   r   r   r   N)r`   r@   )r`  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rd  )slicer  r   r  r  r  r   r?   r   rM   r#   	enumerate)
r`   r%   rs   r  r   r  r   nextir2   r   s
             r   rX   %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  rm   r   r   r  )r   r"   rX   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  rm  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   rm  s      r   r{  ETestPurePythonRoughEquivalents.test_tee_recipe.<locals>._tee.__init__G  s?    (^b$''$&KKDM "DI$&M!%tDIr   c                     U $ r!   r   rG   s    r   rH   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   rN   ETestPurePythonRoughEquivalents.test_tee_recipe.<locals>._tee.__next__S  sB    yy7?"4==1DG#TlDG#' yr   )r  r  Nr  )rm  s   r   rm  r  E  s    -r   rm  r  r   r   r   r   r   r+   r   r   rU  r  r   r   rm   r  r  )r)   )r   r"   rA   r&   r?   r   r  r  r   r   r~   r   r.   r   r   r   r  r   r!  rW  rX  r"  r   rZ   r   r  )r   r  r@   r   r   r2   r  r#  r$  r%  r  r   r=  r+   r   r   r   r&  r'  r(  r)  r  r<  r*  r3  r4  rm  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)
rR   rS   rT   rU   r  staticmethodrX   r  r  rV   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  r/  r  s     r   ro  )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   rO  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 r(   )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   ru   %TestGC.test_groupby.<locals>.<lambda>	  s    qr   )r  ri  r  s     r   r2  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 )Nrm   c                     U $ r!   r   r*   s    r   ru   'TestGC.test_issue2246.<locals>.<lambda>	  r  r   r  r+   )ri  r?   __dict__
setdefaultr   )r   r@   r&  r2   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   ru   $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   ru   )TestGC.test_filterfalse.<locals>.<lambda>	  s    Er   )r  rE  r  s     r   rG  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   rL  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   rY  )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   ru   !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 r(   )r  rX   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  r`  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   ru   %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)rR   rS   rT   rU   r  r   r   r   r   r>  ro  r  r  r  r  r2  r  r=  rG  rL  r  r  r  r  r  r  r  r  r  rV   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r!   r   seqnr2   s     r   RrB  I	  s      r4   c                        \ rS rSrS rS rSrg)r   iN	  c                     Xl         g r!   rA  r   rA  s     r   r{  
G.__init__P	  s    	r   c                      U R                   U   $ r!   rE  )r   r2   s     r   __getitem__G.__getitem__R	  s    yy|r   rE  N)rR   rS   rT   rU   r{  rI  rV   r   r   r   r   r   N	  s    r   r   c                   &    \ rS rSrS rS rS rSrg)r  iU	  c                     Xl         SU l        g re   r@  rF  s     r   r{  
I.__init__W	      	r   c                     U $ r!   r   rG   s    r   rH   
I.__iter__Z	  rJ   r   c                     U R                   [        U R                  5      :  a  [        eU R                  U R                      nU =R                   S-  sl         U$ r\   r2   r   rA  rM   r   rm  s     r   rN   
I.__next__\	  ?    66S^#=%8IIdff!r   r2   rA  Nr  r   r   r   r  r  U	  s    r   r  c                        \ rS rSrS rS rSrg)Igib	  c                     Xl         SU l        g re   r@  rF  s     r   r{  Ig.__init__d	  rN  r   c              #   :   #    U R                    H  nUv   M	     g 7fr!   rE  r  s     r   rH   Ig.__iter__g	  s     99CI s   rV  NrR   rS   rT   rU   r{  rH   rV   r   r   r   rX  rX  b	  s    r   rX  c                        \ rS rSrS rS rSrg)rW  ik	  c                     Xl         SU l        g re   r@  rF  s     r   r{  
X.__init__m	  rN  r   c                     U R                   [        U R                  5      :  a  [        eU R                  U R                      nU =R                   S-  sl         U$ r\   rR  rS  s     r   rN   
X.__next__p	  rU  r   rV  N)rR   rS   rT   rU   r{  rN   rV   r   r   r   rW  rW  k	  s    r   rW  c                        \ rS rSrS rS rSrg)Niv	  c                     Xl         SU l        g re   r@  rF  s     r   r{  
N.__init__x	  rN  r   c                     U $ r!   r   rG   s    r   rH   
N.__iter__{	  rJ   r   rV  Nr]  r   r   r   rd  rd  v	  s    r   rd  c                   &    \ rS rSrS rS rS rSrg)r   i~	  c                     Xl         SU l        g re   r@  rF  s     r   r{  
E.__init__	  rN  r   c                     U $ r!   r   rG   s    r   rH   
E.__iter__	  rJ   r   c                     SS-    g )Nr   r   r   rG   s    r   rN   
E.__next__	  s	    	Qr   rV  Nr  r   r   r   r   r   ~	  s    r   r   c                   &    \ rS rSrS rS rS rSrg)E2i	  c                     Xl         SU l        g re   r@  rF  s     r   r{  E2.__init__	  rN  r   c                     U $ r!   r   rG   s    r   rH   E2.__iter__	  rJ   r   c                     U R                   S:X  a  [        eU R                  U R                      nU =R                   S-  sl         U$ r9   )r2   ZeroDivisionErrorrA  rS  s     r   rN   E2.__next__	  s7    66Q;##IIdff!r   rV  Nr  r   r   r   rq  rq  	  s    r   rq  c                   &    \ rS rSrS rS rS rSrg)Si	  c                     g r!   r   rF  s     r   r{  
S.__init__	  s    r   c                     U $ r!   r   rG   s    r   rH   
S.__iter__	  rJ   r   c                     [         er!   rL   rG   s    r   rN   
S.__next__	  rP   r   r   Nr  r   r   r   rz  rz  	  s    r   rz  c                 d    [        [        S [        [        [	        U 5      5      5      5      5      $ )Nc                     U $ r!   r   r*   s    r   ru   L.<locals>.<lambda>	  s    ar   )r   r   rB  rX  r   rE  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  rX  r  rB  r   r"   r   rz  r   r~   rW  rd  rw  r   r   rs   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)NrI  )r  r  )r   r)   )r  r   )r   r  rX  r  rB  r   r   r"   r   rz  r   r~   rW  rd  rw  r   rq  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?rU    r   )r?   r   r  rX  rz  r  rB  r   r"   r   r   r~   rW  rd  rw  r   r   rs   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  rU  r  r   r   )r?   r   r   r  rX  rz  r  rB  r   r"   r  r   r   r~   rW  rd  rw  r   )r   rs   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~   r`  rW  rd  rw  r   )r   rs   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  rU  r  r   r   )r?   r   r  rX  rz  r  rB  r   r"   rX   r  r   r   r~   rW  rd  rw  r   )r   rs   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 Nrm   r   r  r   r  rU  r  r   )r?   r   r  rX  rz  r  rB  r   ri  r"   r   r~   rW  rd  rw  r   )r   rs   r  rl  sbs        r   r2  $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  rX  rz  r  rB  r   r"   r  r6   r   r~   rW  rd  rw  r   r   rs   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  rX  rz  r  rB  r   r"   rE  r6   r:   r   r~   rW  rd  rw  r   r  s       r   rG  (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  rX  rz  r  rB  r   r"   r#   r&   r   r~   rW  rd  rw  r   r  s      r   rL   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  rX  rz  r  rB  r   r"   r[  r#   r   r~   rW  rd  rw  r   r  s      r   rb  '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 Nrm   r   r   r  r   r  r   )r?   r   r  rX  rz  r  rB  r   r"   r   r,   r]   r  r   r~   rW  rd  rw  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  rU  r  r   r   r)   rm   )r?   r   r  rX  rz  r  rB  r   r"   rX   r   r~   rW  rd  rw  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  rX  rz  r  rB  r"   r#   r  r   r   r~   rW  rd  rw  r   )r   rs   r  rY   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  rX  rz  r  rB  r&   r   r"   r  r]   r  r   r~   rW  rd  rw  r   )r   rs   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  rX  rz  r  rB  r6   r   r   r"   r  r   r~   rW  rd  rw  r   r   rs   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  rX  rz  r  rB  r:   r   r   r"   r  r   r~   rW  rd  rw  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  rU  r  r   r   )r?   r   r  rX  rz  r  rB  r  r   r"   r   r~   rW  rd  rw  r   )r   rs   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)rR   rS   rT   rU   r   r   r   r  r  r  r2  r=  rG  rL  rb  r  r  r  r  r  r  r+  rV   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   r3  r   r]   length_hintr   rG   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  rG   s    r   r  2LengthTransparency.test_repeat_with_negative_times^
  s    --fT2.>?C--fT2.>?C--fT.DEqI--fT.DEqIr   r   N)rR   rS   rT   rU   r  r  rV   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rd  )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//r4   i )r   r   r?   r   rM   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   rm   )ri  r?   r"   )r   r   rl  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   rS  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  r2   s     r   r   3RegressionTests.test_issue30347_2.<locals>.K.__eq__
  s    Q6DMr   r   N)rR   rS   rT   rU   r{  r   rV   )r  r2   s   r   Kr  
  s     r   r  r   rm   r   r)   )r   ri  r?   )r   r  r  r  r2   s      @@r   test_issue30347_2!RegressionTests.test_issue30347_2
  sE    	 	 rA&'*qADM r   r   N)rR   rS   rT   rU   r  r  r   skip_if_pgo_taskrequires_resourcer  r  r  rV   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   rR  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   )rR   rS   rT   rU   r{  rV   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   )rR   rS   rT   rU   r  rV   __classcell__)r  s   @r   subclass_with_newr  
  s    37 $ $r   r  )r   r#   r  rE  r   r   r}   r  r]   r  rX   r  r6   r  r  r  r   rr  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)rR   rS   rT   rU   r  rV   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_trG   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   rm   )r   calcobjsizecheck_sizeofr`  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   rm   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 r-  )r/  r   r&  r'  r   r?   )r   rj  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   rI  r   rm   )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)rR   rS   rT   rU   r!  r   r'  r*  r/  r2  r6  rV   r   r   r   r  r  
  s*    , ''LGG>
?r   r  c                 X    UR                  [        R                  " [        5      5        U$ r!   )addTestdoctestDocTestSuiterq  )loadertestspatterns      r   
load_testsr?    s    	MM'&&y12Lr   __main__)Fr:  unittestrq  testr   test.supportr   r   r  decimalr   	fractionsr   r]   r  r   rp   	functoolsr	   r  r  r  rW  r   r   MAX_Py_ssize_tr  minsizer&   r,   r/   r3   r6   r:   r<   rA   rD   rZ   ra   rc   rh   rk   rn   r?   r   r   TestCaserw   r{  r  r  rB  r   r  rX  rW  rd  r   rq  rz  r  r  r  r  r  ry  r  r?  rR   main)rt   s   0r   <module>rK     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