
    <e                        d dl Z d dlZd dlmZ d dlmZmZ d dlmZmZm	Z	 d dl
Z
d dlZd dlZd dlZd dlZg dZ G d d          Z G d d	          Z G d
 d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d dej                  Zedk    r ej                     dS dS )    N)cpython_only)TESTFNunlink)check_free_after_iterating	ALWAYS_EQNEVER_EQ))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	   )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
   r	   r   )r
   r	   r	   )r
   r	   r
   )r
   r
   r   )r
   r
   r	   )r
   r
   r
   c                        e Zd Zd Zd Zd ZdS )BasicIterClassc                 "    || _         d| _        d S Nr   )niselfr   s     %/usr/lib/python3.11/test/test_iter.py__init__zBasicIterClass.__init__   s        c                 L    | j         }|| j        k    rt          |dz   | _         |S Nr	   )r   r   StopIteration)r   ress     r   __next__zBasicIterClass.__next__!   s*    f$&==q
r   c                     | S N r   s    r   __iter__zBasicIterClass.__iter__'       r   N__name__
__module____qualname__r   r   r    r   r   r   r   r      sA                r   r   c                       e Zd Zd Zd ZdS )IteratingSequenceClassc                     || _         d S r   r   r   s     r   r   zIteratingSequenceClass.__init__+       r   c                 *    t          | j                  S r   )r   r   r   s    r   r    zIteratingSequenceClass.__iter__-   s    df%%%r   Nr#   r$   r%   r   r    r   r   r   r'   r'   *   s2          & & & & &r   r'   c                        e Zd Zd Zd Zd ZdS )IteratorProxyClassc                     || _         d S r   r   r   r   s     r   r   zIteratorProxyClass.__init__1   r*   r   c                 *    t          | j                  S r   )nextr   r   s    r   r   zIteratorProxyClass.__next__3   s    DF||r   c                     | S r   r   r   s    r   r    zIteratorProxyClass.__iter__5   r!   r   Nr"   r   r   r   r.   r.   0   sA                r   r.   c                       e Zd Zd Zd ZdS )SequenceClassc                     || _         d S r   r)   r   s     r   r   zSequenceClass.__init__9   r*   r   c                 >    d|cxk    r| j         k     rn n|S t          r   )r   
IndexErrorr1   s     r   __getitem__zSequenceClass.__getitem__;   s(    ????DF?????Hr   Nr#   r$   r%   r   r:   r   r   r   r6   r6   8   s2              r   r6   c                       e Zd Zd Zd ZdS )SequenceProxyClassc                     || _         d S r   s)r   r@   s     r   r   zSequenceProxyClass.__init__B   r*   r   c                     | j         |         S r   r?   r1   s     r   r:   zSequenceProxyClass.__getitem__D   s    vayr   Nr;   r   r   r   r=   r=   A   s2              r   r=   c                       e Zd Zd ZdS )UnlimitedSequenceClassc                     |S r   r   r1   s     r   r:   z"UnlimitedSequenceClass.__getitem__H       r   Nr#   r$   r%   r:   r   r   r   rC   rC   G   s#            r   rC   c                       e Zd ZdS )DefaultIterClassN)r#   r$   r%   r   r   r   rH   rH   K   s        Dr   rH   c                       e Zd Zd ZdZdS )NoIterClassc                     |S r   r   r1   s     r   r:   zNoIterClass.__getitem__O   rE   r   N)r#   r$   r%   r:   r    r   r   r   rJ   rJ   N   s"          HHHr   rJ   c                       e Zd Zd ZdS )BadIterableClassc                     t           r   )ZeroDivisionErrorr   s    r   r    zBadIterableClass.__iter__T   s    r   Nr#   r$   r%   r    r   r   r   rM   rM   S   s#                 r   rM   c                       e Zd Zd Zd ZdS )CallableIterClassc                     d| _         d S r   r0   r   s    r   r   zCallableIterClass.__init__X   r*   r   c                 B    | j         }|dz   | _         |dk    rt          |S )Nr	   d   )r   r9   r1   s     r   __call__zCallableIterClass.__call__Z   s(    FQs77r   N)r#   r$   r%   r   rV   r   r   r   rR   rR   W   s2              r   rR   c                       e Zd Zd Zd ZdS )EmptyIterClassc                     dS r   r   r   s    r   __len__zEmptyIterClass.__len__b   s    qr   c                     t           r   r   r1   s     r   r:   zEmptyIterClass.__getitem__d   s    r   N)r#   r$   r%   rZ   r:   r   r   r   rX   rX   a   s2              r   rX   c                      e Zd Zd>dZd>dZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d  Z!d! Z"d" Z#d# Z$d$ Z%d% Z&d& Z'd' Z(d( Z)d) Z*d* Z+d+ Z,d, Z-e.d-             Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:e.d9             Z;d: Z<d; Z=d< Z>d=S )?TestCaseTc                     |r|                      ||           g }	 	 t          |          }n# t          $ r Y nw xY w|                    |           7|                     ||           d S r   )check_pickler3   r   appendassertEqual)r   itseqpickler   vals         r   check_iteratorzTestCase.check_iteratorl   s     	'b#&&&	2hh    JJsOOO	 	c"""""s   - 
::c                     |r#|                      t          |          |           g }|D ]}|                    |           |                     ||           d S r   )r`   iterra   rb   )r   exprrd   re   r   rf   s         r   check_for_loopzTestCase.check_for_loopy   sg     	/d4jj#... 	 	CJJsOOOOc"""""r   c                 V   t          t          j        dz             D ]
}t          j        ||          }t          j        |          }|                     t          |t          j        j	                             | 
                    t          |          |           t          j        |          }	 t          |           n# t          $ r Y w xY wt          j        ||          }t          j        |          }| 
                    t          |          |dd                     d S r   )rangere   HIGHEST_PROTOCOLdumpsloads
assertTrue
isinstancecollectionsabcIteratorrb   listr3   r   )r   itorgrd   protodrc   s         r   r`   zTestCase.check_pickle   s   62Q677 	0 	0EUE**AaB OOJr;?+CDDEEET"XXs+++aBR    R''AaBT"XXs122w////!	0 	0s   3C
CCc                     |                      t          t          d                    t          t          d                               d S N
   )rg   ri   rm   rv   r   s    r   test_iter_basiczTestCase.test_iter_basic   6    DrOOT%))__=====r   c                     t          t          d                    }t          |          }t          |          }|                     ||u            d S r{   )rv   rm   ri   rq   )r   rd   rc   it2s       r   test_iter_idempotencyzTestCase.test_iter_idempotency   sE    599oo#YY2hhc	"""""r   c                     |                      t          t          d                    t          t          d                               d S r{   rk   ri   rm   rv   r   s    r   test_iter_for_loopzTestCase.test_iter_for_loop   r~   r   c                     t          d          }g }t          |          D ]>}t          |          D ],}t          |          D ]}|                    |||f           -?|                     |t                     d S N   )rm   ri   ra   rb   TRIPLETS)r   rd   r   r   jks         r   test_iter_independencezTestCase.test_iter_independence   s    Ahhc 	* 	*A#YY * *c * *AJJ1ay))))** 	h'''''r   c                     t          d          fdt                    D             }|                     |t                     d S )Nr   c                 b    g | ]+}t                    D ]}t                    D ]}|||f,S r   )ri   .0r   r   r   rd   s       r   
<listcomp>z<TestCase.test_nested_comprehensions_iter.<locals>.<listcomp>   so     I I I499I I&'d3iiI I9: 1ay I I I I Ir   )rm   ri   rb   r   r   r   rd   s     @r   test_nested_comprehensions_iterz(TestCase.test_nested_comprehensions_iter   s_    AhhI I I IS		I I Ih'''''r   c                 x    t          d          fdD             }|                     |t                     d S )Nr   c                 .    g | ]}D ]}D ]}|||fS r   r   r   s       r   r   z;TestCase.test_nested_comprehensions_for.<locals>.<listcomp>   s9    @@@Qs@@!C@@q1ay@@@@@r   )rm   rb   r   r   s     @r   test_nested_comprehensions_forz'TestCase.test_nested_comprehensions_for   sC    Ahh@@@@#@@@h'''''r   c                     |                      t          d          t          t          d                               d S r{   )rk   r'   rv   rm   r   s    r   test_iter_class_forzTestCase.test_iter_class_for   s3    2266U2YYHHHHHr   c                     |                      t          t          d                    t          t	          d                               d S r{   )rg   ri   r'   rv   rm   r   s    r   test_iter_class_iterzTestCase.test_iter_class_iter   s;    D!7!;!;<<d599ooNNNNNr   c                     |                      t          d          t          t          d                               d S r{   )rk   r6   rv   rm   r   s    r   test_seq_class_forzTestCase.test_seq_class_for   s2    M"--tE"II?????r   c                     |                      t          t          d                    t          t	          d                               d S r{   )rg   ri   r6   rv   rm   r   s    r   test_seq_class_iterzTestCase.test_seq_class_iter   s:    Dr!2!233T%))__EEEEEr   c           
         t          d          }t          t          j        dz             D ]}t	          |          }t          j        ||f|          }t          j        |          \  }}d|_        |                     t          |          t          |                     | 
                    t          |          t          t          d                               t          |           t          j        ||f|          }t          j        |          \  }}d|_        |                     t          |          t          |                     | 
                    t          |          t          t          dd                               t          dd          D ]}t          |           t          j        ||f|          }t          j        |          \  }}d|_        |                     t          |          t          |                     | 
                    t          |          t          t          dd                               |                     t          t          |           t          j        ||f|          }t          j        |          \  }}d|_        |                     t!          |t"          j        j                             | 
                    t          |          g            d S )N   r	      )r6   rm   re   rn   ri   ro   rp   r   assertIstyperb   rv   r3   assertRaisesr   rq   rr   rs   rt   ru   )r   origrx   itorigry   rc   rd   r   s           r   #test_mutating_seq_class_iter_picklez,TestCase.test_mutating_seq_class_iter_pickle   se   Q62Q677  	+  	+E$ZZFfd^U33Al1ooGBCEMM$r((DLL111T"XXtE!HH~~666 LLLfd^U33Al1ooGBCEMM$r((DLL111T"XXtE!QKK'8'8999 1a[[  Vfd^U33Al1ooGBCEMM$r((DLL111T"XXtE!QKK'8'8999 mT6:::fd^U33Al1ooGBCEOOJr;?+CDDEEET"XXr****A 	+  	+r   c                 p   t          d          }t          |          }t          |          }|D ]}t          |           d|_        |                     t          |          g            |                     t          |          ddg           |                     t          |          g d           d S )Nr   r      )r   r	   r
   r      r   r   )r6   ri   r3   r   rb   rv   )r   aexhitempitxs        r   &test_mutating_seq_class_exhausted_iterz/TestCase.test_mutating_seq_class_exhausted_iter   s    !QQ 	 	AKKKKeb)))eq!f---a"7"7"788888r   c                    t           j        t          t          ddfd	}t	                      ft          d          ft          d          fdd dft          t                   fg}	 t          j
        |d          }|                      |d          d         d	f           |                      |g d
          d         g ff           |                      |d d         t          t          d                                        t          g ff           |D ]#}|                      || d         df           $	                                 D ]>\  }}t          j        t"                    5  |= d d d            n# 1 swxY w Y   ||<   ?d S #                                 D ]>\  }}t          j        t"                    5  |= d d d            n# 1 swxY w Y   ||<   ?w xY w)N)ri   reversedc                     |t          |          nt          ||          } G d d          }| = |           || |          <   |                                S )Nc                        e Zd Zd Zd Zd ZdS )KTestCase.test_reduce_mutating_builtins_iter.<locals>.run.<locals>.CustomStrc                 "    || _         || _        d S r   )nameiterator)r   r   r   s      r   r   zTTestCase.test_reduce_mutating_builtins_iter.<locals>.run.<locals>.CustomStr.__init__  s     $DI$,DMMMr   c                 *    t          | j                  S r   )hashr   r   s    r   __hash__zTTestCase.test_reduce_mutating_builtins_iter.<locals>.run.<locals>.CustomStr.__hash__
  s    	??*r   c                 @    t          | j                   || j        k    S r   )rv   r   r   )r   others     r   __eq__zRTestCase.test_reduce_mutating_builtins_iter.<locals>.run.<locals>.CustomStr.__eq__  s!    
 ''' DI--r   N)r#   r$   r%   r   r   r   r   r   r   	CustomStrr     sA        - - -+ + +. . . . .r   r   )ri   
__reduce__)builtin_nameitemsentinelrc   r   builtins_dictr   s        r   runz8TestCase.test_reduce_mutating_builtins_iter.<locals>.run  s|    '/dT$5I5IB. . . . . . . ." l+9=l9KM))L"556==??"r      )r	   r
   r   c                      dS r   r   r   r   r   <lambda>z=TestCase.test_reduce_mutating_builtins_iter.<locals>.<lambda>!  s    Q r   r   ri   xyz) r   r   )r   r   )builtins__dict__ri   r   rX   bytes	bytearraytupleint	functoolspartialrb   rv   rm   items
contextlibsuppressKeyError)	r   r   typesrun_itercasekeyfuncr   r   s	          @@r   "test_reduce_mutating_builtins_iterz+TestCase.test_reduce_mutating_builtins_iter   s    !)(33	# 	# 	# 	# 	# 	# 	#4 1XXKq\\OYN3ZM
	* (f55H XXe__tF|U.CDDDXXiii004<"2GHHH J 0Z 0eAhh @ @AAu  
  I I  44<2GHHHHI "ZZ\\ * *	T  (22 + + &c*	+ + + + + + + + + + + + + + +
 &*c""* *TZZ\\ * *	T  (22 + + &c*	+ + + + + + + + + + + + + + +
 &*c""*sC   +CF ;FF	F	3G3G!	G3!G%%G3(G%)
G3c                 ~     G d dt                     }|                     t          t           |                       d S )Nc                       e Zd Zd ZdS )5TestCase.test_new_style_iter_class.<locals>.IterClassc                     | S r   r   r   s    r   r    z>TestCase.test_new_style_iter_class.<locals>.IterClass.__iter__E      r   NrP   r   r   r   	IterClassr   D  s#            r   r   )objectr   	TypeErrorri   )r   r   s     r   test_new_style_iter_classz"TestCase.test_new_style_iter_classC  sR    	 	 	 	 	 	 	 	 	)T99;;77777r   c                     |                      t          t                      d          t          t	          d                    d           d S )Nr|   Tre   )rg   ri   rR   rv   rm   r   s    r   test_iter_callablezTestCase.test_iter_callableJ  sA    D!2!4!4b994b		??SWXXXXXr   c                     dgfd}|                      t          |d          t          t          d                    d           d S )Nr   c                 &    | d         }|dz   | d<   |S Nr   r	   r   stater   s     r   spamz)TestCase.test_iter_function.<locals>.spamO  s    aAsE!HHr   r|   Fr   rg   ri   rv   rm   r   r   s     r   test_iter_functionzTestCase.test_iter_functionN  sR    s 	 	 	 	 	DrNNDrOOEJJJJJr   c                     dgfd}|                      t          |d          t          t          d                    d           d S )Nr   c                 @    | d         }|dk    rt           |dz   | d<   |S )Nr   r|   r	   r\   r   s     r   r   z.TestCase.test_iter_function_stop.<locals>.spamW  s,    aABww##sE!HHr      r|   Fr   r   r   s     r   test_iter_function_stopz TestCase.test_iter_function_stopV  sR    s 	 	 	 	 	DrNNDrOOEJJJJJr   c                     ddd fdd_         t                    _        |                     t                    5  t          j                   d d d            d S # 1 swxY w Y   d S )Nr	   r
   c                 $    t          |            dS )z2Exhaust an iterator without raising StopIteration.N)rv   )r   s    r   exhaustzLTestCase.test_iter_function_concealing_reentrant_exhaustion.<locals>.exhaustf  s    NNNNNr   c                  H    j         rS d_          j                    S )NT)is_recursive_callr   )HAS_MORENO_MOREr   r   s   r   r   zITestCase.test_iter_function_concealing_reentrant_exhaustion.<locals>.spamj  s4     % %)D"GDM"""Or   F)r   ri   r   r   r   r3   )r   r   r   r   r   s    @@@@r   2test_iter_function_concealing_reentrant_exhaustionz;TestCase.test_iter_function_concealing_reentrant_exhaustion_  s     	 	 		 	 	 	 	 	 	 	 "'T7++}-- 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   
A,,A03A0c           	         dgfd}g }	 t          |d          D ]}|                    |           	 |                     d           d S # t          $ r4 |                     |t          t          d                               Y d S w xY w)Nr   c                 @    | d         }|dz   | d<   |dk    rt           |S )Nr   r	   r|   )RuntimeErrorr   s     r   r   z.TestCase.test_exception_function.<locals>.spamz  s,    aAsE!HBww""Hr   r   should have raised RuntimeErrorr|   )ri   ra   failr   rb   rv   rm   )r   r   r   r   s       r   test_exception_functionz TestCase.test_exception_functiony  s    s 	 	 	 	 	9$^^  

1
 II788888  	3 	3 	3S$uRyy//222222	3s   (A
 
:BBc           	      &    G d dt                     }g }	  |d          D ]}|                    |           	 |                     d           d S # t          $ r4 |                     |t          t          d                               Y d S w xY w)Nc                       e Zd Zd ZdS )9TestCase.test_exception_sequence.<locals>.MySequenceClassc                 R    |dk    rt           t                              | |          S r{   )r   r6   r:   r1   s     r   r:   zETestCase.test_exception_sequence.<locals>.MySequenceClass.__getitem__  s'    77&&$00q999r   NrF   r   r   r   MySequenceClassr    #        : : : : :r   r  r   r   r|   )r6   ra   r  r   rb   rv   rm   )r   r  r   r   s       r   test_exception_sequencez TestCase.test_exception_sequence  s    	: 	: 	: 	: 	:m 	: 	: 	:
 	9$_R((  

1
 II788888  	3 	3 	3S$uRyy//222222	3s   #A :BBc                      G d dt                     }|                      |d          t          t          d                    d           d S )Nc                       e Zd Zd ZdS )4TestCase.test_stop_sequence.<locals>.MySequenceClassc                 R    |dk    rt           t                              | |          S r{   )r   r6   r:   r1   s     r   r:   z@TestCase.test_stop_sequence.<locals>.MySequenceClass.__getitem__  s'    77''$00q999r   NrF   r   r   r   r  r    r  r   r  r   r|   Fr   )r6   rk   rv   rm   )r   r  s     r   test_stop_sequencezTestCase.test_stop_sequence  se    	: 	: 	: 	: 	:m 	: 	: 	:
 	OOB//eBiiOOOOOr   c                     |                      t          t          d                    t          t          d                               d S )Ni'  r   r   s    r   test_iter_big_rangezTestCase.test_iter_big_range  s:    Du..U5\\0B0BCCCCCr   c                 L    |                      t          g           g            d S r   rk   ri   r   s    r   test_iter_emptyzTestCase.test_iter_empty  s$    DHHb)))))r   c                     |                      t          d          t          t          d                               d S )N)
r   r	   r
   r   r   r   r   r   r   	   r|   )rk   ri   rv   rm   r   s    r   test_iter_tuplezTestCase.test_iter_tuple  s3    D!677eBiiIIIIIr   c                     |                      t          t          d                    t          t          d                               d S r{   r   r   s    r   test_iter_rangezTestCase.test_iter_range  r~   r   c                 P    |                      t          d          g d           d S Nabcde)r   bcry   er  r   s    r   test_iter_stringzTestCase.test_iter_string  s+    DMM+D+D+DEEEEEr   c                     i }t          d          D ]}d ||<   |                     |t          |                                                     d S r{   )rm   rk   rv   keys)r   dictr   s      r   test_iter_dictzTestCase.test_iter_dict  sS    r 	 	ADGGD$tyy{{"3"344444r   c                 l   t          t          dd          }	 t          d          D ]}|                    d|z             	 |                                 n# |                                 w xY wt          t          dd          }	 |                     |g dd	           |                     |g d	           |                                 	 t          t                     d S # t          $ r Y d S w xY w# |                                 	 t          t                     w # t          $ r Y w w xY wxY w)
Nwutf-8encodingr   %d
rz0
1
2
3
4
Fr   )openr   rm   writecloserk   r   OSError)r   fr   s      r   test_iter_filezTestCase.test_iter_file  sO   w///	1XX $ $
####$ GGIIIIAGGIIIIw///	#F#F#FuUUU2e444GGIIIv    GGIIIv   sM   *A A/
2C8 C' '
C54C58D3D#"D3#
D0-D3/D00D3c                     |                      t          t          d                    t          t          d                               |                      t          t          d                    g            |                      t          d          g            dddd}|                      t          |          t          |                                                     |                     t          t          t                     |                     t          t          d           t          t          d	d
          }	 t          d          D ]}|	                    d|z             	 |
                                 n# |
                                 w xY wt          t          dd
          }	 |                      t          |          g d           |                    dd           |                      t          |          g d           |
                                 	 t          t                     d S # t          $ r Y d S w xY w# |
                                 	 t          t                     w # t          $ r Y w w xY wxY w)Nr   r   r   r	   r
   r   onetwothree*   r%  r&  r'  r)  r*  r+  )rb   rv   r6   rm   r!  r   r   r0  r   r1  r2  seekr   r3  r   ry   r4  r   s       r   test_builtin_listzTestCase.test_builtin_list  sQ   mA..//eAhh@@@mA..//444b2&&&a!,,a$qvvxx..111)T4000)T2...w///	1XX $ $
####$ GGIIIIAGGIIIIw///
	T!WW&I&I&IJJJFF1aLLLT!WW@@@B B B GGIIIv    GGIIIv   sO   *F F6A I +I 
IIJ(I=<J=
J
J	J

Jc                 p   |                      t          t          d                    d           |                      t          t          d                    d           |                      t          g           d           |                      t          d          d           |                      t          d          d           ddd	d
}|                      t          |          t          |                                                     |                     t
          t          t                     |                     t
          t          d           t          t          dd          }	 t          d          D ]}|
                    d|z             	 |                                 n# |                                 w xY wt          t          dd          }	 |                      t          |          d           |                    dd           |                      t          |          d           |                                 	 t          t                     d S # t          $ r Y d S w xY w# |                                 	 t          t                     w # t          $ r Y w w xY wxY w)Nr   r   r	   r
   r   r   r   r   rt   r   r  r  r	   r
   r   r7  r;  r%  r&  r'  r)  r*  r+  )rb   r   r6   r!  r   r   rv   r0  r   rm   r1  r2  r<  r   r3  r=  s       r   test_builtin_tuplezTestCase.test_builtin_tuple  sq   }Q//00/BBB}Q//00"555rB'''rB'''u777a!,,q5??333)UD111)UB///w///	1XX $ $
####$ GGIIIIAGGIIIIw///
	U1XX'JKKKFF1aLLLU1XX@B B B GGIIIv    GGIIIv   sO   1*F1 1G"AI: I) )
I76I7:J5J%$J5%
J2/J51J22J5c           
         |                      t          t          d t          d                              t          t	          dd                               |                      t          t          d t          d                              g            |                      t          t          d d                    g            |                      t          t          d d                    g d           dddd	}|                      t          t          d |                    t          |                                                     |                     t          t          d t                     |                     t          t          d d
            G d d          } |d          } |d          } G d d          } |||gdz   }|                      t          t          d |                    |gdz             |                      t          t          d t          |                              |gdz             d S )Nr   r	   r   r   rt   rA  r
   r   r7  r;  c                       e Zd Zd Zd ZdS )-TestCase.test_builtin_filter.<locals>.Booleanc                     || _         d S r   truth)r   rH  s     r   r   z6TestCase.test_builtin_filter.<locals>.Boolean.__init__  s    "


r   c                     | j         S r   rG  r   s    r   __bool__z6TestCase.test_builtin_filter.<locals>.Boolean.__bool__!  s
    z!r   N)r#   r$   r%   r   rJ  r   r   r   BooleanrE    s2        # # #" " " " "r   rK  TFc                       e Zd Zd Zd ZdS ))TestCase.test_builtin_filter.<locals>.Seqc                     || _         d S r   vals)r   argss     r   r   z2TestCase.test_builtin_filter.<locals>.Seq.__init__'  s     			r   c                 <     G d d          } || j                   S )Nc                        e Zd Zd Zd Zd ZdS )CTestCase.test_builtin_filter.<locals>.Seq.__iter__.<locals>.SeqIterc                 "    || _         d| _        d S r   )rP  r   )r   rP  s     r   r   zLTestCase.test_builtin_filter.<locals>.Seq.__iter__.<locals>.SeqIter.__init__+  s    $(	!"r   c                     | S r   r   r   s    r   r    zLTestCase.test_builtin_filter.<locals>.Seq.__iter__.<locals>.SeqIter.__iter__.  s    #r   c                 |    | j         }|dz   | _         |t          | j                  k     r| j        |         S t          r   )r   lenrP  r   r1   s     r   r   zLTestCase.test_builtin_filter.<locals>.Seq.__iter__.<locals>.SeqIter.__next__0  s9     F!"Qs49~~--#'9Q</"//r   Nr#   r$   r%   r   r    r   r   r   r   SeqIterrT  *  sA        # # #$ $ $0 0 0 0 0r   rZ  rO  )r   rZ  s     r   r    z2TestCase.test_builtin_filter.<locals>.Seq.__iter__)  s>    0 0 0 0 0 0 0 0 wty)))r   Nr,   r   r   r   SeqrM  &  s2        ! ! !* * * * *r   r[     c                     |  S r   r   r   s    r   r   z.TestCase.test_builtin_filter.<locals>.<lambda>:      1u r   c                     |  S r   r   r^  s    r   r   z.TestCase.test_builtin_filter.<locals>.<lambda>;  r_  r   )	rb   rv   filterr6   rm   r!  r   r   ri   )r   ry   rK  bTruebFalser[  rd   s          r   test_builtin_filterzTestCase.test_builtin_filter  s3   fT=+;+;<<==eAqkk**	, 	, 	,fT=+;+;<<==rBBBfT2..//444fT51122OOODDDa!,,fT1oo..QVVXX???)VT4888)VT2666	" 	" 	" 	" 	" 	" 	" 	"
 	* 	* 	* 	* 	* 	* 	* 	*& cUFOb(*f__c::;;fXb[IIIf__d3ii@@AAF8B;OOOOOr   c                    |                      t          t          d                    d           |                      t          t          d                    d           |                      t          dd          d           |                      t          dd          d           dddd	}|                      t          |          d
           |                      t          |          d           |                      t          |                                          d           |                      t          t          |                                                    d           t          t          dd          }	 |                    d           |                    d           |                    d           |	                                 n# |	                                 w xY wt          t          dd          }	 |                      t          |          d           |
                    dd           |                      t          |          d           |	                                 	 t          t                     d S # t          $ r Y d S w xY w# |	                                 	 t          t                     w # t          $ r Y w w xY wxY w)Nr   r   r   r   r	   r
   r   r7  r9  r8  r%  r&  r'  zmedium line
zxtra large line
zitty-bitty line
r*  )rb   maxr6   minvaluesri   r0  r   r1  r2  r<  r   r3  )r   ry   r4  s      r   test_builtin_max_minzTestCase.test_builtin_max_min>  s   ]1--..222]1--..222QQ'''QR(((a!,,Q'''Q'''QXXZZ!,,,T!((**--..222w///	GGO$$$GG'(((GG'(((GGIIIIAGGIIIIw///		SVV%8999FF1aLLLSVV%8999GGIIIv    GGIIIv   sO   ?G G.	AJ! :J 
JJ!K7KK
KKKKc           
         |                      t          t          d t          d                              t          t	          dd                               dddd|                      t          t          fd                    t                                                               t                                                    fd	t	          d          D             }t          t          d
d          }	 t	          d          D ]}|	                    d|z  dz              	 |
                                 n# |
                                 w xY wt          t          dd          }	 |                      t          t          t          |                    t          t	          ddd                               |
                                 	 t          t                     d S # t          $ r Y d S w xY w# |
                                 	 t          t                     w # t          $ r Y w w xY wxY w)Nc                     | dz   S r   r   r^  s    r   r   z+TestCase.test_builtin_map.<locals>.<lambda>_  s
    AaC r   r   r	   r   r
   r   r7  c                     | ||          fS r   r   )r   ry   s     r   r   z+TestCase.test_builtin_map.<locals>.<lambda>c  s    !QqT r   c                     g | ]=}|t                    k     r|         pd ||t                    k     r|         pd f>S r   )rX  )r   r   ry   dkeyss     r   r   z-TestCase.test_builtin_map.<locals>.<listcomp>f  sf     ' ' '  QZ,E!H4QZ,E!H46 ' ' 'r   r%  r&  r'  r|   xy
r*     )rb   rv   mapr6   rm   r   r!  r0  r   r1  r2  rX  r   r3  )r   expectedr4  r   ry   ro  s       @@r   test_builtin_mapzTestCase.test_builtin_map^  s:   c--q1A1ABBCCeAqkk**	, 	, 	, a!,,ca":":":A>>??aggii	* 	* 	*QVVXX' ' ' ' ' #1XX' ' '
 w///	2YY ) )q4(((() GGIIIIAGGIIIIw///	T#c1++..U1b!__0E0EFFFGGIIIv    GGIIIv   sO   -E E$?AH &G< <
H
	H
I#H87I8
IIIIc                 p
   |                      t          t                                g            |                      t          t          g            g            |                      t          t          ddg           ddg           |                     t          t          d            |                     t          t          t          d          d           |                     t          t          t          d          t                     |                      t          t          t          d                              g d           |                      t          t          t          d                              g d           d	d
dd}|                      t          |                                          t          t          ||	                                                                G d d          }t          t          dd          }	 |                    d           |                                 n# |                                 w xY wt          t          dd          }	 |                      t          t           |d          | |d                              g d           |                                 	 t          t                     nN# t          $ r Y nBw xY w# |                                 	 t          t                     w # t          $ r Y w w xY wxY w|                      t          t          t          d                              d t          d          D                         G d d          } G d d|          } G d d|          }d }|                      t!           |                      d           |                      t!           |                      d           |                       | |                       |t          d                               |                       | |                       |t          d                               |                       | |                       |t          d                               d  t          d          D             } |             |             |            fD ]B}	 |             |             |            fD ]"}
|                       ||	|
          |           #Cd S )!Nr	   r
   ab)r	   r   )r
   r  r|   r;  r   )r   )r	   )r
   r	   r
   r7  c                        e Zd Zd Zd Zd ZdS )+TestCase.test_builtin_zip.<locals>.IntsFromc                     || _         d S r   r0   )r   starts     r   r   z4TestCase.test_builtin_zip.<locals>.IntsFrom.__init__  s    r   c                     | S r   r   r   s    r   r    z4TestCase.test_builtin_zip.<locals>.IntsFrom.__iter__  r   r   c                 (    | j         }|dz   | _         |S r   r0   r1   s     r   r   z4TestCase.test_builtin_zip.<locals>.IntsFrom.__next__  s    F1r   NrY  r   r   r   IntsFromr{    sA                r   r  r%  r&  r'  z	a
bbb
cc
r*  r   ))r   a
r  )r	   zbbb
i)r
   zcc
ir   c                     g | ]}|fS r   r   r   r   s     r   r   z-TestCase.test_builtin_zip.<locals>.<listcomp>  s    .F.F.Ft.F.F.Fr   c                       e Zd Zd ZdS ).TestCase.test_builtin_zip.<locals>.NoGuessLen5c                      |dk    rt           |S Nr   )r9   r1   s     r   r:   z:TestCase.test_builtin_zip.<locals>.NoGuessLen5.__getitem__  s    66$$r   NrF   r   r   r   NoGuessLen5r    s#            r   r  c                       e Zd Zd ZdS )-TestCase.test_builtin_zip.<locals>.Guess3Len5c                     dS r   r   r   s    r   rZ   z5TestCase.test_builtin_zip.<locals>.Guess3Len5.__len__  s    qr   Nr#   r$   r%   rZ   r   r   r   
Guess3Len5r    s#            r   r  c                       e Zd Zd ZdS ).TestCase.test_builtin_zip.<locals>.Guess30Len5c                     dS )N   r   r   s    r   rZ   z6TestCase.test_builtin_zip.<locals>.Guess30Len5.__len__  s    rr   Nr  r   r   r   Guess30Len5r    s#            r   r  c                  .    t          t          |            S r   )rv   zip)rQ  s    r   lzipz'TestCase.test_builtin_zip.<locals>.lzip  s    T
###r   r  c                     g | ]}||fS r   r   r  s     r   r   z-TestCase.test_builtin_zip.<locals>.<listcomp>  s    ---qQF---r   )rb   rv   r  r   r   rm   r'   r6   r   ri  r0  r   r1  r2  r   r3  rX  )r   ry   r  r4  r  r  r  r  rt  r   ys              r   test_builtin_zipzTestCase.test_builtin_zip|  s<   ceeb)))c2h,,,cFD>233h5IJJJ)S$///)S%))R888)S%))S999c"8";";<<==+++	- 	- 	-c-"2"23344+++	- 	- 	- a!,,aggii$s1ahhjj/A/A*B*BCCC
	 
	 
	 
	 
	 
	 
	 
	 w///	GG()))GGIIIIAGGIIIIw///
	T#hhqkk1hhtnn"E"EFF0 0 01 1 1
 GGIIIv    GGIIIv    	c%((mm,,.F.FU1XX.F.F.FGGG	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	+ 	 	 		$ 	$ 	$ 	ZZ\\**A...[[]]++R000kkmm,,dd588nn===jjll++TT%((^^<<<kkmm,,dd588nn===--E!HH---

kkmm; 	7 	7A []]JJLL++--? 7 7  aX66667	7 	7sO   I I2AK2 K" "
K/.K/2L-LL-
L*'L-)L**L-c                 ^    G d d          }t          t          dd          }	 |                    d           |                                 n# |                                 w xY wt          t          dd          }	 d                     ||                    }|                     |d	           |                                 	 t          t                     d S # t          $ r Y d S w xY w# |                                 	 t          t                     w # t          $ r Y w w xY wxY w)
Nc                        e Zd Zd Zd Zd ZdS )4TestCase.test_unicode_join_endcase.<locals>.OhPhooeyc                 <    t          |          | _        d| _        d S r   )ri   rc   r   )r   rd   s     r   r   z=TestCase.test_unicode_join_endcase.<locals>.OhPhooey.__init__  s    s))r   c                     | S r   r   r   s    r   r    z=TestCase.test_unicode_join_endcase.<locals>.OhPhooey.__iter__  r   r   c                 \    | j         }|dz   | _         |dk    rdS t          | j                  S )Nr	   r
   zfooled you!)r   r3   rc   r1   s     r   r   z=TestCase.test_unicode_join_endcase.<locals>.OhPhooey.__next__  s0    F166(=DG}}$r   NrY  r   r   r   OhPhooeyr    sA            % % % % %r   r  r%  r&  r'  a
b
c
r*  z - za
 - b
 - fooled you! - c
)r0  r   r1  r2  joinrb   r   r3  )r   r  r4  gots       r   test_unicode_join_endcasez"TestCase.test_unicode_join_endcase  sJ   	% 	% 	% 	% 	% 	% 	% 	% w///	GG)***GGIIIIAGGIIIIw///	**XXa[[))CS"ABBBGGIIIv    GGIIIv   sM   A A&4C1 
C   
C.-C.1D,DD,
D)&D,(D))D,c           
         t          d          t          d          fD ]P}t          d          D ]}|                     ||           dddddg ddid|f	D ]}|                     ||           Q|                     t
          t          t          dg                               |                     t
          t          dg                     |                     t
          t          t          t          g                               |                     t
          t          t          g                     |                     t          t          t          t
          g                               |                     t          t          t
          g                     | 
                    t          d            | 
                    t          d	            | 
                    t          d
            ddddd}|D ]@}|                     ||           |                     ||                                           A|                                D ]@}|                     ||                                           |                     ||           A|                                D ]Y\  }}|                     ||f|                                           |                     ||f|                                           Zt          t           dd          }	 |                    d           |                                 n# |                                 w xY wt          t           dd          }	 dD ]]}|                    dd           |                     ||           |                    dd           |                     |dz   |           ^	 |                                 	 t)          t                      d S # t*          $ r Y d S w xY w# |                                 	 t)          t                      w # t*          $ r Y w w xY wxY w)Nr   rt   rf  g(\5E@)r   r   r	   y      @      (c                  
    ddv S )Nr      r   r   r   r   r   z-TestCase.test_in_and_not_in.<locals>.<lambda>  s
    Q"W r   c                      dt           vS r   )rs  r   r   r   r   z-TestCase.test_in_and_not_in.<locals>.<lambda>  s
    Qc\ r   c                  "    dt                      v S r   )rM   r   r   r   r   z-TestCase.test_in_and_not_in.<locals>.<lambda>  s    Q:J:L:L5L r   r
   r                  @r8  r9  r:                ?r%  r&  r'  r  r*  r   rq  )r'   r6   rm   assertInassertNotInr   r.   ri   r=   r   r   r   rO   ri  r   r0  r   r1  r2  r<  r   r3  )r   sc5r   ry   r   vr4  chunks           r   test_in_and_not_inzTestCase.test_in_and_not_in  s   )!,,mA.>.>> 	) 	)C1XX & &a%%%%B5&"q!feSH ) )  C(((() 	i!3D!II!>!>???i!3QC!8!8999$6tXJ7G7G$H$HIII$6z$B$BCCCh 243D3D E EFFFh 2I; ? ?@@@)__555)%9%9:::+-L-LMMMa!44 	, 	,AMM!QQ

++++ 	# 	#AMM!QXXZZ(((Q""""GGII 	0 	0DAqMM1a&!'')),,,aVQWWYY////w///	GG%&&&GGIIIIAGGIIIIw///	 1 1q!  ***q!ut|a0000	1 GGIIIv    GGIIIv   sO   M M5A P +P 
PPQ(P=<Q=
Q
Q	Q

Qc                 h   ddl m} |                      |g dd          d           |                      |dd          d           |                      |dd          d           |                      |dd          d           |                     t          |d	d
           |                     t          |||           ddddd}|D ]"}|                      |||          d
           #|                      ||                                d          d           |                      ||                                d          d
           |                      ||                                d          d           t          t          dd          }	 |                    d           |	                                 n# |	                                 w xY wt          t          dd          }	 dD ]>\  }}|
                    dd           |                      |||dz             |           ?	 |	                                 	 t          t                     d S # t          $ r Y d S w xY w# |	                                 	 t          t                     w # t          $ r Y w w xY wxY w)Nr   )countOfr	   r
   r
   r   r
   r   r
   r   12232526r;  r	   r  r  r  r%  r&  r'  za
b
c
b
r*  ))r   r	   )r  r
   )r  r	   )ry   r   rq  )operatorr  rb   r   r   ri  r0  r   r1  r2  r<  r   r3  )r   r  ry   r   r4  lettercounts          r   test_countOfzTestCase.test_countOf&  s   $$$$$$22A66622A6663//3333//333)Wb!444)Wgw???a!44 	/ 	/AWWQ]]A....Q//333R00!444R00!444w///	GG+,,,GGIIIIAGGIIIIw///		!G C Cq!  FTM!:!:EBBBBC GGIIIv    GGIIIv   sO   G G8AI6 I% %
I32I36J1J! J1!
J.+J1-J..J1c                    ddl m} |                      |g dd          d           |                      |dd          d           |                      |dd          d           |                      |dd          d           |                     t          |dd           |                     t          |dd           |                      |d	d
          d           |                      |d	d          d           |                     t          |d	d           |                     t
          |dd           |                     t
          |||           |                     t          |t                      d           t          t          dd          }	 |
                    d           |                                 n# |                                 w xY wt          t          dd          }	 t          |          }|                      ||d          d           |                      ||d          d           |                      ||d          d           |                     t          ||d           |                                 	 t          t                     nN# t          $ r Y nBw xY w# |                                 	 t          t                     w # t          $ r Y w w xY wxY wt          d          }t!          d          D ]"}|                      |||          |           #|                     t          ||d           d S )Nr   )indexOfr  r	   r
   r   r   r   r  r  5r  r;  r%  r&  r'  z
a
b
c
d
e
r*  zb
zd
ze
r  rf  )r  r  rb   r   
ValueErrorr   rO   rM   r0  r   r1  r2  ri   r   r3  r'   rm   )r   r  r4  fitericlassr   s         r   test_indexOfzTestCase.test_indexOfI  sf   $$$$$$22A66622A66622A66622A666*g}a@@@*g}a@@@3//3333//333*gx===)Wb!444)Wgw???+W6F6H6H!LLLw///	GG1222GGIIIIAGGIIIIw///	GGEWWUE22A666WWUE22A666WWUE22A666j'5%@@@GGIIIv    GGIIIv    (**q 	4 	4AWWVQ//3333*gvr:::::sO   G G6BJ< J, ,
J98J9<K7K'&K7'
K41K73K44K7c                    t          t          dd          }	 |                     t          |j        d            |                     t          |j        d           |                    ddg           |                    d           |                    dd i           |                    i             G d	 d
           G fdd          }|                     |dd                     |                                 t          t          d          }d t          dd          D             }|                     t          |          |           |                                 	 t          t                     d S # t          $ r Y d S w xY w# |                                 	 t          t                     w # t          $ r Y w w xY wxY w)Nr%  r&  r'  r;  r,  r-  )r.  r/  z5
c                        e Zd Zd Zd Zd ZdS )*TestCase.test_writelines.<locals>.Iteratorc                 :    || _         || _        | j         | _        d S r   )r}  finishr   r   r}  r  s      r   r   z3TestCase.test_writelines.<locals>.Iterator.__init__  s    !&DJ"(DK!ZDFFFr   c                     | j         | j        k    rt          t          | j                   dz   }| xj         dz  c_         |S )Nrq  r	   )r   r  r   str)r   results     r   r   z3TestCase.test_writelines.<locals>.Iterator.__next__  s=    v,,++ [[4/FFFaKFF!Mr   c                     | S r   r   r   s    r   r    z3TestCase.test_writelines.<locals>.Iterator.__iter__  s    Kr   Nr"   r   r   r   ru   r    sA        ( ( (
" " "         r   ru   c                        e Zd Zd Z fdZdS )*TestCase.test_writelines.<locals>.Whateverc                 "    || _         || _        d S r   r}  r  r  s      r   r   z3TestCase.test_writelines.<locals>.Whatever.__init__  s    !&DJ"(DKKKr   c                 0     | j         | j                  S r   r  )r   ru   s    r   r    z3TestCase.test_writelines.<locals>.Whatever.__iter__  s    #8DJ<<<r   Nr,   )ru   s   r   Whateverr    s=        ) ) )= = = = = = =r   r  r   i  c                 2    g | ]}t          |          d z   S )rq  )r  r  s     r   r   z,TestCase.test_writelines.<locals>.<listcomp>  s"    >>>!A>>>r   r	   )r0  r   r   r   
writelinesr2  rm   rb   rv   r   r3  )r   r4  r  rt  ru   s       @r   test_writelineszTestCase.test_writeliness  s   w///.	it<<<ir:::LL%(((LL(((LL%'''LL                = = = = = = = = = = LL!V,,---GGIIIVg...A>>uQ~~>>>HT!WWh/// GGIIIv    GGIIIv   sB   D<F +F 
FFG(F=<G=
G
G	G

Gc                    d\  }}|                      ||fd           t          d          \  }}}|                      |||fd           	 t          d          \  }}|                     d           n# t          $ r Y nw xY w	 t          d          \  }}}|                     d           n# t          $ r Y nw xY w	 t          \  }}}|                     d           n# t
          $ r Y nw xY wdddd                                \  }}}|                      |||fd	           t          t          d
d          }d}	 |D ]}|	                    |           	 |
                                 n# |
                                 w xY wt          t          dd          }	 |\  }}}|                      |||f|           |
                                 	 t          t                     nN# t          $ r Y nBw xY w# |
                                 	 t          t                     w # t          $ r Y w w xY wxY wt          d          ddic\  }}\  }|                      |||fd           d S )Nrw  r   r   zshould have raised ValueErrorr
   zshould have raised TypeErrorr;  r   )r;  r;  r;  r%  r&  r'  )r  zbb
zccc
r*     )r   r	   r;  )rb   r'   r  r  rX  r   ri  r0  r   r1  r2  r   r3  )r   r   r  r  r4  lineslines          r   test_unpack_iterzTestCase.test_unpack_iter  s   1!Q((((++1a!QI...	7)!,,DAq II56666  	 	 	D	
	7,Q//GAq! II56666  	 	 	D	
	6GAq! II45555  	 	 	D	
 RB''..001a!QL111w///(	   GGIIIIAGGIIIIw///	GAq!aAY...GGIIIv    GGIIIv    .a002r(A!QJ/////s   A3 3
B ?B B- -
B:9B:>C 
C,+C,>E. .FG8 G( (
G54G58H3H#"H3#
H0-H3/H00H3c                     G d dt                     } |            }|                     |j        d           ~|                     |j        d            |             |             |            g}|                     |j        d           	 t          |          \  }}n# t          $ r Y nw xY w~|                     |j        d           d S )Nc                       e Zd ZdZd Zd ZdS ).TestCase.test_ref_counting_behavior.<locals>.Cr   c                 V    | xj         dz  c_         t                              |           S r   )r  r   __new__)clss    r   r  z6TestCase.test_ref_counting_behavior.<locals>.C.__new__  s#    		Q		~~c***r   c                 N    | j         }|j        dk    sJ |xj        dz  c_        d S r   )	__class__r  )r   r  s     r   __del__z6TestCase.test_ref_counting_behavior.<locals>.C.__del__  s+    ny1}}}}		Q				r   N)r#   r$   r%   r  r  r  r   r   r   Cr    s7        E+ + +    r   r  r	   r   r   )r   rb   r  ri   r  )r   r  r   lr   r  s         r   test_ref_counting_behaviorz#TestCase.test_ref_counting_behavior  s    	 	 	 	 	 	 	 	 ACC!$$$!$$$QSS!!##qqssO!$$$	77DAqq 	 	 	D	!$$$$$s   B! !
B.-B.c                 b   t          t          d                    }t          |          }|                     t          |          t          t          d                               |                    t          dd                     |                     t          |          g            d S Nr   r|   )rv   rm   ri   rb   extendr   r   r  s      r   test_sinkstate_listzTestCase.test_sinkstate_list  s    qNNGGa$uQxx..111	q"a"%%%%%r   c                     d}t          |          }|                     t          |          t          t          d                               |                     t          |          g            d S )Nr@  r   ri   rb   rv   rm   r  s      r   test_sinkstate_tuplezTestCase.test_sinkstate_tuple  s\    GGa$uQxx..111a"%%%%%r   c                     d}t          |          }|                     t          |          g d           |                     t          |          g            d S r  )ri   rb   rv   r  s      r   test_sinkstate_stringzTestCase.test_sinkstate_string  sW    GGa";";";<<<a"%%%%%r   c                    t          d          }t          |          }|                     t          |          t          t	          d                               d|_        |                     t          |          g            d S r  )r6   ri   rb   rv   rm   r   r  s      r   test_sinkstate_sequencez TestCase.test_sinkstate_sequence  sk    !GGa$uQxx..111a"%%%%%r   c                     dgfd}t          |d          }|                     t          |          t          t          d                               |                     t          |          g            d S )Nr   c                 P    | d         }|dz   | d<   |dk    rt          d          |S )Nr   r	   r|   zshouldn't have gotten this far)AssertionErrorr   s     r   r   z.TestCase.test_sinkstate_callable.<locals>.spam  s5    aAsE!HBww$%EFFFHr   r   r  )r   r   r  s      r   test_sinkstate_callablez TestCase.test_sinkstate_callable  st    s 	 	 	 	 qMMa$uQxx..111a"%%%%%r   c                 r   dddddd}t          |          |                                |                                |                                fD ]d}t          |          }|                     t          t          |                    d           |                     t          |          g            ed S )Nr	   r
   r   r   r   )r	   r
   r   r   r   r   )ri   r!  r   ri  rb   rX  rv   r  s      r   test_sinkstate_dictzTestCase.test_sinkstate_dict"  s     Aa1%%a!&&((AGGIIqxxzz9 	* 	*AQASa\\1---T!WWb))))	* 	*r   c                     d } |            }|                      t          |          t          t          d                               |                      t          |          g            d S )Nc               3   6   K   t          d          D ]} | V  d S r  rm   r0   s    r   genz*TestCase.test_sinkstate_yield.<locals>.gen,  s0      1XX   r   r   )rb   rv   rm   )r   r  r  s      r   test_sinkstate_yieldzTestCase.test_sinkstate_yield+  sh    	 	 	 CEEa$uQxx..111a"%%%%%r   c                    t          d          }t          |          }|                     t          |          t          t          d                               |                     t          |          g            d S r  )rm   ri   rb   rv   r  s      r   test_sinkstate_rangezTestCase.test_sinkstate_range3  sb    !HHGGa$uQxx..111a"%%%%%r   c                 V   t          d          }t          |          }t          |          }|                     t	          |          t	          t          t          d          t          d                                         |                     t	          |          g            d S r  )rm   	enumerateri   rb   rv   r  )r   r   r  r  s       r   test_sinkstate_enumeratez!TestCase.test_sinkstate_enumerate9  s    !HHaLLGGa$s588U1XX'>'>"?"?@@@a"%%%%%r   c                 p     G fddt                     	              D ]}d S # t          $ r Y d S w xY w)Nc                        e Zd Zd Z fdZdS )'TestCase.test_3720.<locals>.BadIteratorc                     | S r   r   r   s    r   r    z0TestCase.test_3720.<locals>.BadIterator.__iter__C  r   r   c                     ` dS r   )r   )r   BadIterators    r   r   z0TestCase.test_3720.<locals>.BadIterator.__next__E  s    (qr   N)r#   r$   r%   r    r   )r	  s   r   r	  r  B  s=                r   r	  )r   r   )r   r   r	  s     @r   	test_3720zTestCase.test_3720@  s    	 	 	 	 	 	 	& 	 	 		 []]    	 	 	DD	s   ' 
55c                     d }dgdz  }t          d          D ]}|                    d           |                     |                       |                     t	          |          d           d S )Nc               3   6   K   t          d          D ]} | V  d S )N  r  r0   s    r   r  zITestCase.test_extending_list_with_iterator_does_not_segfault.<locals>.genU  s0      3ZZ   r   r   r     i  )rm   popr  rb   rX  )r   r  lstr   s       r   3test_extending_list_with_iterator_does_not_segfaultz<TestCase.test_extending_list_with_iterator_does_not_segfaultO  s~    	 	 	 cCis 	 	AGGAJJJJ

3355S3'''''r   c                 F   t          t                                }|                    t          j        dz
             |                     t          |          t          j        dz
             |                     t          |          t          j        dz
             |                     t                    5  t          |           d d d            n# 1 swxY w Y   |                     t                    5  t          |           d d d            d S # 1 swxY w Y   d S )Nr
   r	   )	ri   rC   __setstate__sysmaxsizerb   r3   r   OverflowErrorr   rc   s     r   test_iter_overflowzTestCase.test_iter_overflow^  sm    (**++
a(((b3;?333b3;?333}-- 	 	HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 }-- 	 	HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   8CCC9DDDc                     t          t                                }|                    d           |                     t	          |          d           |                     t	          |          d           d S )Nir   r	   )ri   rC   r  rb   r3   r  s     r   test_iter_neg_setstatezTestCase.test_iter_neg_setstatel  sf    (**++
b1%%%b1%%%%%r   c                 >    t          | t          t          d           d S )Nry  )r   ri   r6   r   s    r   test_free_after_iteratingz"TestCase.test_free_after_iteratingr  s    "4}dCCCCCr   c                     t           t          fD ]+}|                     t          t           |                       ,|                     t
          t          t                                 d S r   )rH   rJ   r   r   ri   rO   rM   )r   typs     r   test_error_iterzTestCase.test_error_iteru  s]    $k2 	6 	6Cissuu5555+T3C3E3EFFFFFr   N)T)?r#   r$   r%   rg   rk   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#  r5  r>  rB  rd  rj  ru  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   s       
# 
# 
# 
## # # #0 0 0(> > ># # #> > >( ( (( ( (( ( (I I IO O O@ @ @F F F"+ "+ "+H	9 	9 	9F* F* F*R8 8 8Y Y YK K KK K K     49 9 9"9 9 9 P P PD D D* * *J J J> > >F F F5 5 5  &  >  B*P *P *PZ  @  <M7 M7 M7^' ' 'T. . .b     F'; '; ';T1 1 1j20 20 20j % % \%8& & && & && & && & &
& 
& 
&* * *& & && & && & &  ( ( (   \& & &D D DG G G G Gr   r^   __main__)r  unittesttest.supportr   test.support.os_helperr   r   r   r   r   re   collections.abcrs   r   r   r   r   r   r'   r.   r6   r=   rC   rH   rJ   rM   rR   rX   r^   r#   mainr   r   r   <module>r&     s   


  % % % % % % 1 1 1 1 1 1 1 1 H H H H H H H H H H              
- 
- 
-       & & & & & & & &                            	 	 	 	 	 	 	 	       
                             OG OG OG OG OGx  OG OG OGd  zHMOOOOO r   