
    7bh                        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m
Z
 d dl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@                          yy)     N)cpython_only)TESTFNunlink)check_free_after_iterating	ALWAYS_EQNEVER_EQ)
BrokenIter))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y)BasicIterClassc                      || _         d| _        y Nr   )niselfr   s     8/opt/python-3.12.12/usr/lib/python3.12/test/test_iter.py__init__zBasicIterClass.__init__    s        c                 \    | j                   }|| j                  k\  rt        |dz   | _         |S Nr
   )r   r   StopIteration)r   ress     r   __next__zBasicIterClass.__next__#   s,    ff$&&=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      s    r   r   c                       e Zd Zd Zd Zy)IteratingSequenceClassc                     || _         y 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    dff%%r   Nr$   r%   r&   r   r!   r   r   r   r(   r(   ,   s    &r   r(   c                       e Zd Zd Zd Zd Zy)IteratorProxyClassc                     || _         y r   r   r   r   s     r   r   zIteratorProxyClass.__init__3   r+   r   c                 ,    t        | j                        S r   )nextr   r    s    r   r   zIteratorProxyClass.__next__5   s    DFF|r   c                     | S r   r   r    s    r   r!   zIteratorProxyClass.__iter__7   r"   r   Nr#   r   r   r   r/   r/   2   s    r   r/   c                       e Zd Zd Zd Zy)SequenceClassc                     || _         y r   r*   r   s     r   r   zSequenceClass.__init__;   r+   r   c                 J    d|cxk  r| j                   k  r	|S  t        t        r   )r   
IndexErrorr2   s     r   __getitem__zSequenceClass.__getitem__=   s(    ?DFF?H  *r   Nr$   r%   r&   r   r;   r   r   r   r7   r7   :   s    r   r7   c                       e Zd Zd Zd Zy)SequenceProxyClassc                     || _         y r   s)r   rA   s     r   r   zSequenceProxyClass.__init__D   r+   r   c                      | j                   |   S r   r@   r2   s     r   r;   zSequenceProxyClass.__getitem__F   s    vvayr   Nr<   r   r   r   r>   r>   C   s    r   r>   c                       e Zd Zd Zy)UnlimitedSequenceClassc                     |S r   r   r2   s     r   r;   z"UnlimitedSequenceClass.__getitem__J       r   Nr$   r%   r&   r;   r   r   r   rD   rD   I   s    r   rD   c                       e Zd Zy)DefaultIterClassN)r$   r%   r&   r   r   r   rI   rI   M   s    r   rI   c                       e Zd Zd ZdZy)NoIterClassc                     |S r   r   r2   s     r   r;   zNoIterClass.__getitem__Q   rF   r   N)r$   r%   r&   r;   r!   r   r   r   rK   rK   P   s    Hr   rK   c                       e Zd Zd Zy)BadIterableClassc                     t         r   )ZeroDivisionErrorr    s    r   r!   zBadIterableClass.__iter__V   s    r   Nr$   r%   r&   r!   r   r   r   rN   rN   U   s     r   rN   c                       e Zd Zd Zd Zy)CallableIterClassc                     d| _         y r   r1   r    s    r   r   zCallableIterClass.__init__Z   r+   r   c                 H    | j                   }|dz   | _         |dkD  rt        |S )Nr
   d   )r   r:   r2   s     r   __call__zCallableIterClass.__call__\   s(    FFQs7r   N)r$   r%   r&   r   rW   r   r   r   rS   rS   Y   s    r   rS   c                       e Zd Zd Zd Zy)EmptyIterClassc                      yr   r   r    s    r   __len__zEmptyIterClass.__len__d   s    r   c                     t         r   r   r2   s     r   r;   zEmptyIterClass.__getitem__f   s    r   N)r$   r%   r&   r[   r;   r   r   r   rY   rY   c   s    r   rY   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. Z1d/ Z2d0 Z3d1 Z4d2 Z5d3 Z6d4 Z7d5 Z8d6 Z9d7 Z:e.d8        Z;d9 Z<d: Z=d; Z>d< Z?y=)?TestCasec                     |r| j                  ||       g }	 	 t        |      }|j                  |       # t        $ r Y nw xY w| j	                  ||       y r   )check_pickler4   r   appendassertEqual)r   itseqpickler   vals         r   check_iteratorzTestCase.check_iteratorn   sc    b#&2h JJsO  !  	c"s   6 	AAc                     |r| j                  t        |      |       g }|D ]  }|j                  |        | j                  ||       y r   )ra   iterrb   rc   )r   exprre   rf   r   rg   s         r   check_for_loopzTestCase.check_for_loop{   sC    d4j#.CJJsO c"r   c                 *   t        t        j                  dz         D ]  }t        j                  ||      }t        j                  |      }| j                  t        |t        j                  j                               | j                  t        |      |       t        j                  |      }	 t        |       t        j                  ||      }t        j                  |      }| j                  t        |      |dd          y # t        $ r Y w xY wr   )rangerf   HIGHEST_PROTOCOLdumpsloads
assertTrue
isinstancecollectionsabcIteratorrc   listr4   r   )r   itorgre   protodrd   s         r   ra   zTestCase.check_pickle   s    622Q67EUE*AaB OOJr;??+C+CDET"Xs+aBR R'AaBT"Xs12w/! 8 ! s   /D	DDc                 p    | j                  t        t        d            t        t        d                   y N
   )rh   rj   rn   rw   r    s    r   test_iter_basiczTestCase.test_iter_basic   "    DrOT%)_=r   c                 ~    t        t        d            }t        |      }t        |      }| j                  ||u        y r|   )rw   rn   rj   rr   )r   re   rd   it2s       r   test_iter_idempotencyzTestCase.test_iter_idempotency   s1    59o#Y2hc	"r   c                 p    | j                  t        t        d            t        t        d                   y r|   rl   rj   rn   rw   r    s    r   test_iter_for_loopzTestCase.test_iter_for_loop   r   r   c                     t        d      }g }t        |      D ]6  }t        |      D ]&  }t        |      D ]  }|j                  |||f        ( 8 | j                  |t               y N   )rn   rj   rb   rc   TRIPLETS)r   re   r   r   jks         r   test_iter_independencezTestCase.test_iter_independence   s^    AhcA#YcAJJ1ay) #   	h'r   c           
          t        d      }t        |      D cg c]'  }t        |      D ]  }t        |      D ]  }|||f	  ) }}}}| j                  |t               y c c}}}w r   )rn   rj   rc   r   r   re   r   r   r   r   s         r   test_nested_comprehensions_iterz(TestCase.test_nested_comprehensions_iter   sm    AhS	I!149ad3i 1ay>G +4 ! 	 Ih'Is   ,A"c           
          t        d      }|D cg c]  }|D ]  }|D ]  }|||f	   }}}}| j                  |t               y c c}}}w r   )rn   rc   r   r   s         r   test_nested_comprehensions_forz'TestCase.test_nested_comprehensions_for   sK    Ah"%@#Qs!Cq1ayCysy#@h' As   Ac                 ^    | j                  t        d      t        t        d                   y r|   )rl   r(   rw   rn   r    s    r   test_iter_class_forzTestCase.test_iter_class_for   s     226U2YHr   c                 p    | j                  t        t        d            t        t	        d                   y r|   )rh   rj   r(   rw   rn   r    s    r   test_iter_class_iterzTestCase.test_iter_class_iter   s%    D!7!;<d59oNr   c                 ^    | j                  t        d      t        t        d                   y r|   )rl   r7   rw   rn   r    s    r   test_seq_class_forzTestCase.test_seq_class_for   s    M"-tE"I?r   c                 p    | j                  t        t        d            t        t	        d                   y r|   )rh   rj   r7   rw   rn   r    s    r   test_seq_class_iterzTestCase.test_seq_class_iter   s$    Dr!23T%)_Er   c           
      8   t        d      }t        t        j                  dz         D ]o  }t	        |      }t        j
                  ||f|      }t        j                  |      \  }}d|_        | j                  t        |      t        |             | j                  t        |      t        t        d                   t        |       t        j
                  ||f|      }t        j                  |      \  }}d|_        | j                  t        |      t        |             | j                  t        |      t        t        dd                   t        dd      D ]  }t        |        t        j
                  ||f|      }t        j                  |      \  }}d|_        | j                  t        |      t        |             | j                  t        |      t        t        dd                   | j                  t        t        |       t        j
                  ||f|      }t        j                  |      \  }}d|_        | j                  t!        |t"        j$                  j&                               | j                  t        |      g        r y )N   r
      )r7   rn   rf   ro   rj   rp   rq   r   assertIstyperc   rw   r4   assertRaisesr   rr   rs   rt   ru   rv   )r   origry   itorigrz   rd   re   r   s           r   #test_mutating_seq_class_iter_picklez,TestCase.test_mutating_seq_class_iter_pickle   s   Q622Q67E$ZFfd^U3All1oGBCEMM$r(DL1T"XtE!H~6 Lfd^U3All1oGBCEMM$r(DL1T"XtE!QK'89 1a[V !fd^U3All1oGBCEMM$r(DL1T"XtE!QK'89 mT6:fd^U3All1oGBCEOOJr;??+C+CDET"Xr*A 8r   c                 "   t        d      }t        |      }t        |      }|D ]  }t        |        d|_        | j	                  t        |      g        | j	                  t        |      ddg       | j	                  t        |      g d       y )Nr   r      )r   r
   r   r      r   r   )r7   rj   r4   r   rc   rw   )r   aexhitempitxs        r   &test_mutating_seq_class_exhausted_iterz/TestCase.test_mutating_seq_class_exhausted_iter   sw    !QQAK eb)eq!f-a"7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      }| j                   |d      d   d	f       | j                   |g d
      d   g ff       | j                   |d d   t        t        d                        t        g ff       |D ]  }| j                   || d   df        	 j                         D ]/  \  }}t        j                   t"              5  |= d d d        ||<   1 y # 1 sw Y   xY w# j                         D ]<  \  }}t        j                   t"              5  |= d d d        n# 1 sw Y   nxY w||<   > w xY w)N)rj   reversedc                     |t        |      nt        ||      } G d d      }| = |     || |      <   |j                         S )Nc                       e Zd Zd Zd Zd Zy)KTestCase.test_reduce_mutating_builtins_iter.<locals>.run.<locals>.CustomStrc                      || _         || _        y r   )nameiterator)r   r   r   s      r   r   zTTestCase.test_reduce_mutating_builtins_iter.<locals>.run.<locals>.CustomStr.__init__	  s     $DI$,DMr   c                 ,    t        | j                        S r   )hashr   r    s    r   __hash__zTTestCase.test_reduce_mutating_builtins_iter.<locals>.run.<locals>.CustomStr.__hash__  s    		?*r   c                 J    t        | j                         || j                  k(  S r   )rw   r   r   )r   others     r   __eq__zRTestCase.test_reduce_mutating_builtins_iter.<locals>.run.<locals>.CustomStr.__eq__  s    
 ' DII--r   N)r$   r%   r&   r   r   r   r   r   r   	CustomStrr     s    -+.r   r   )rj   
__reduce__)builtin_nameitemsentinelrd   r   builtins_dictr   s        r   runz8TestCase.test_reduce_mutating_builtins_iter.<locals>.run  sP    '/dT$5IB. ." l+9=l9KM)L"56==?"r      )r
   r   r   c                       yr   r   r   r   r   <lambda>z=TestCase.test_reduce_mutating_builtins_iter.<locals>.<lambda>#  s    Qr   r   rj   xyz) r   r   )r   r   )builtins__dict__rj   r   rY   bytes	bytearraytupleint	functoolspartialrc   rw   rn   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	#4 1XKq\ON3ZM
	* ((f5H Xe_tF|U.CDXi04<"2GH J 0Z 0eAh @AB5!
   44<2GH  "ZZ\	T  ((2 &c*	 3
 &*c" * 32 "ZZ\	T  ((2 &c*	 322
 &*c" *s1   B/E ;EE	0F,F		F,F!F,c                 b     G d dt               }| j                  t        t         |              y )Nc                       e Zd Zd Zy)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__G      r   NrQ   r   r   r   	IterClassr   F  s    r   r   )objectr   	TypeErrorrj   )r   r   s     r   test_new_style_iter_classz"TestCase.test_new_style_iter_classE  s$    	 	 	)T9;7r   c                 t    | j                  t        t               d      t        t	        d            d       y )Nr}   Trf   )rh   rj   rS   rw   rn   r    s    r   test_iter_callablezTestCase.test_iter_callableL  s+    D!2!4b94b	?SWXr   c                 p    dgfd}| j                  t        |d      t        t        d            d       y )Nr   c                      | d   }|dz   | d<   |S Nr   r
   r   stater   s     r   spamz)TestCase.test_iter_function.<locals>.spamQ  s    aAsE!HHr   r}   Fr   rh   rj   rw   rn   r   r   s     r   test_iter_functionzTestCase.test_iter_functionP  s1    s 	 	DrNDrOEJr   c                 p    dgfd}| j                  t        |d      t        t        d            d       y )Nr   c                 6    | d   }|dk(  rt         |dz   | d<   |S )Nr   r}   r
   r]   r   s     r   r   z.TestCase.test_iter_function_stop.<locals>.spamY  s*    aABw##sE!HHr      r}   Fr   r   r   s     r   test_iter_function_stopz TestCase.test_iter_function_stopX  s1    s 	 	DrNDrOEJr   c                     ddd fdd_         t              _        | j                  t              5  t        j                         d d d        y # 1 sw Y   y xY w)Nr
   r   c                     t        |        y)z2Exhaust an iterator without raising StopIteration.N)rw   )r   s    r   exhaustzLTestCase.test_iter_function_concealing_reentrant_exhaustion.<locals>.exhausth  s	    Nr   c                  V    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>.spaml  s,     %%%)D"DMM"Or   F)r   rj   r   r   r   r4   )r   r   r   r   r   s    @@@@r   2test_iter_function_concealing_reentrant_exhaustionz;TestCase.test_iter_function_concealing_reentrant_exhaustiona  sW     		 "'T7+}- .--s   A  A)c           	          dgfd}g }	 t        |d      D ]  }|j                  |        	 | j                  d       y # t        $ r' | j	                  |t        t        d                   Y y w xY w)Nr   c                 6    | d   }|dz   | d<   |dk(  rt         |S )Nr   r
   r}   )RuntimeErrorr   s     r   r   z.TestCase.test_exception_function.<locals>.spam|  s*    aAsE!HBw""Hr   r   should have raised RuntimeErrorr}   )rj   rb   failr   rc   rw   rn   )r   r   r   r   s       r   test_exception_functionz TestCase.test_exception_function{  sk    s 	 	9$^

1 $
 II78  	3S$uRy/2	3s   "? -A/.A/c           	           G d dt               }g }	  |d      D ]  }|j                  |        	 | j                  d       y # t        $ r' | j	                  |t        t        d                   Y y w xY w)Nc                       e Zd Zd Zy)9TestCase.test_exception_sequence.<locals>.MySequenceClassc                 D    |dk(  rt         t        j                  | |      S r|   )r   r7   r;   r2   s     r   r;   zETestCase.test_exception_sequence.<locals>.MySequenceClass.__getitem__  s"    7&&$00q99r   NrG   r   r   r   MySequenceClassr        :r   r  r   r   r}   )r7   rb   r   r   rc   rw   rn   )r   r  r   r   s       r   test_exception_sequencez TestCase.test_exception_sequence  sl    	:m 	:
 	9$R(

1 )
 II78  	3S$uRy/2	3s   A -A43A4c                 z     G d dt               }| j                   |d      t        t        d            d       y )Nc                       e Zd Zd Zy)4TestCase.test_stop_sequence.<locals>.MySequenceClassc                 D    |dk(  rt         t        j                  | |      S r|   )r   r7   r;   r2   s     r   r;   z@TestCase.test_stop_sequence.<locals>.MySequenceClass.__getitem__  s"    7''$00q99r   NrG   r   r   r   r  r    r  r   r  r   r}   Fr   )r7   rl   rw   rn   )r   r  s     r   test_stop_sequencezTestCase.test_stop_sequence  s2    	:m 	:
 	OB/eBiOr   c                 p    | j                  t        t        d            t        t        d                   y )Ni'  r   r    s    r   test_iter_big_rangezTestCase.test_iter_big_range  s$    Du.U5\0BCr   c                 :    | j                  t        g       g        y r   rl   rj   r    s    r   test_iter_emptyzTestCase.test_iter_empty  s    DHb)r   c                 ^    | j                  t        d      t        t        d                   y )N)
r   r
   r   r   r   r   r   r   r   	   r}   )rl   rj   rw   rn   r    s    r   test_iter_tuplezTestCase.test_iter_tuple  s     D!67eBiIr   c                 p    | j                  t        t        d            t        t        d                   y r|   r   r    s    r   test_iter_rangezTestCase.test_iter_range  r   r   c                 >    | j                  t        d      g d       y Nabcde)r   bcrz   er  r    s    r   test_iter_stringzTestCase.test_iter_string  s    DM+DEr   c                     i }t        d      D ]  }d ||<   	 | j                  |t        |j                                      y r|   )rn   rl   rw   keys)r   dictr   s      r   test_iter_dictzTestCase.test_iter_dict  s9    rADG D$tyy{"34r   c                    t        t        dd      }	 t        d      D ]  }|j                  d|z          	 |j	                          t        t        dd      }	 | j                  |g dd	       | j                  |g d	       |j	                          	 t        t               y # |j	                          w xY w# t        $ r Y y w xY w# |j	                          	 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   rn   writecloserl   r   OSError)r   fr   s      r   test_iter_filezTestCase.test_iter_file  s    w/	1X
#  GGIw/	#FuU2e4GGIv GGI   GGIv sM   $B' *C B< 'B9<	CCC<C-,C<-	C96C<8C99C<c                    | j                  t        t        d            t        t        d                   | j                  t        t        d            g        | j                  t        d      g        dddd}| j                  t        |      t        |j	                                      | j                  t        t        t               | j                  t        t        d       t        t        d	d
      }	 t        d      D ]  }|j                  d|z          	 |j                          t        t        dd
      }	 | j                  t        |      g d       |j                  dd       | j                  t        |      g d       |j                          	 t        t               y # |j                          w xY w# t        $ r Y y w xY w# |j                          	 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'  )rc   rw   r7   rn   r  r   r   r,  r   r-  r.  seekr   r/  r   rz   r0  r   s       r   test_builtin_listzTestCase.test_builtin_list  s   mA./eAh@mA./4b2&a!,a$qvvx.1)T40)T2.w/	1X
#  GGIw/
	T!W&IJFF1aLT!W@B GGIv GGI   GGIv sO   ;$F0 AG  G 0G	GGH&G65H6	H?HHHc                 P   | j                  t        t        d            d       | j                  t        t        d            d       | j                  t        g       d       | j                  t        d      d       | j                  t        d      d       ddd	d
}| j                  t        |      t        |j                                      | j	                  t
        t        t               | j	                  t
        t        d       t        t        dd      }	 t        d      D ]  }|j                  d|z          	 |j                          t        t        dd      }	 | j                  t        |      d       |j                  dd       | j                  t        |      d       |j                          	 t        t               y # |j                          w xY w# t        $ r Y y w xY w# |j                          	 t        t               w # t        $ r Y w w xY wxY w)Nr   r   r
   r   r   r   r   r   ru   r   r  r  r
   r   r   r3  r7  r!  r"  r#  r%  r&  r'  )rc   r   r7   r  r   r   rw   r,  r   rn   r-  r.  r8  r   r/  r9  s       r   test_builtin_tuplezTestCase.test_builtin_tuple  s   }Q/0/B}Q/0"5rB'rB'u7a!,q5?3)UD1)UB/w/	1X
#  GGIw/
	U1X'JKFF1aLU1X@B GGIv GGI   GGIv sO   $G 'AG4  G% G"%	G10G14H%HH%	H"H%!H""H%c           
         | j                  t        t        d t        d                  t        t	        dd                   | j                  t        t        d t        d                  g        | j                  t        t        d d            g        | j                  t        t        d d            g d       dddd	}| j                  t        t        d |            t        |j                                      | j                  t        t        d t               | j                  t        t        d d
        G d d      } |d      } |d      } G d d      } |||gdz   }| j                  t        t        d |            |gdz         | j                  t        t        d t        |                  |gdz         y )Nr   r
   r   r   ru   r=  r   r   r3  r7  c                       e Zd Zd Zd Zy)-TestCase.test_builtin_filter.<locals>.Booleanc                     || _         y r   truth)r   rD  s     r   r   z6TestCase.test_builtin_filter.<locals>.Boolean.__init__!  s	    "
r   c                     | j                   S r   rC  r    s    r   __bool__z6TestCase.test_builtin_filter.<locals>.Boolean.__bool__#  s    zz!r   N)r$   r%   r&   r   rF  r   r   r   BooleanrA     s    #"r   rG  TFc                       e Zd Zd Zd Zy))TestCase.test_builtin_filter.<locals>.Seqc                     || _         y 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y)CTestCase.test_builtin_filter.<locals>.Seq.__iter__.<locals>.SeqIterc                      || _         d| _        y r   )rL  r   )r   rL  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__0  s    #r   c                     | j                   }|dz   | _         |t        | j                        k  r| j                  |   S t        r   )r   lenrL  r   r2   s     r   r   zLTestCase.test_builtin_filter.<locals>.Seq.__iter__.<locals>.SeqIter.__next__2  s:     FF!"Qs499~-#'99Q</"//r   Nr$   r%   r&   r   r!   r   r   r   r   SeqIterrP  ,  s    #$0r   rV  rK  )r   rV  s     r   r!   z2TestCase.test_builtin_filter.<locals>.Seq.__iter__+  s    0 0 tyy))r   Nr-   r   r   r   SeqrI  (  s    !*r   rW     c                     |  S r   r   r   s    r   r   z.TestCase.test_builtin_filter.<locals>.<lambda><      1ur   c                     |  S r   r   rZ  s    r   r   z.TestCase.test_builtin_filter.<locals>.<lambda>=  r[  r   )	rc   rw   filterr7   rn   r  r   r   rj   )r   rz   rG  bTruebFalserW  re   s          r   test_builtin_filterzTestCase.test_builtin_filter  sh   fT=+;<=eAqk*	,fT=+;<=rBfT2./4fT512ODa!,fT1o.QVVX?)VT48)VT26	" 	"
 	* 	*& UFOb(*f_c:;fXb[If_d3i@AF8B;Or   c                    | j                  t        t        d            d       | j                  t        t        d            d       | j                  t        dd      d       | j                  t        dd      d       dddd	}| j                  t        |      d
       | j                  t        |      d       | j                  t        |j	                               d       | j                  t        t        |j	                                     d       t        t        dd      }	 |j                  d       |j                  d       |j                  d       |j                          t        t        dd      }	 | j                  t        |      d       |j                  dd       | j                  t        |      d       |j                          	 t        t               y # |j                          w xY w# t        $ r Y y w xY w# |j                          	 t        t               w # t        $ r Y w w xY wxY w)Nr   r   r   r   r
   r   r   r3  r5  r4  r!  r"  r#  zmedium line
zxtra large line
zitty-bitty line
r&  )rc   maxr7   minvaluesrj   r,  r   r-  r.  r8  r   r/  )r   rz   r0  s      r   test_builtin_max_minzTestCase.test_builtin_max_min@  s   ]1-.2]1-.2QQ'QR(a!,Q'Q'QXXZ!,T!((*-.2w/	GGO$GG'(GG'(GGIw/		SV%89FF1aLSV%89GGIv GGI   GGIv sO   +3G* AH G? *G<?	H
HH? H0/H?0	H<9H?;H<<H?c           
         | j                  t        t        d t        d                  t        t	        dd                   dddd}| j                  t        t        |fd|            t        |j                                      t        |j                               }t	        d      D cg c]5  }|t        |      k  xr ||   xs d ||t        |      k  xr ||   xs d f7 }}t        t        d	d
      }	 t	        d      D ]  }|j                  d|z  dz           	 |j                          t        t        dd
      }	 | j                  t        t        t        |            t        t	        ddd                   |j                          	 t        t               y c c}w # |j                          w xY w# t        $ r Y y w xY w# |j                          	 t        t               w # t        $ r Y w w xY wxY w)Nc                     | dz   S r   r   rZ  s    r   r   z+TestCase.test_builtin_map.<locals>.<lambda>a  s    AaCr   r   r
   r   r   r   r3  c                     | ||    fS r   r   )r   rz   s     r   r   z+TestCase.test_builtin_map.<locals>.<lambda>e  s    !QqTr   r!  r"  r#  r}   xy
r&     )rc   rw   mapr7   rn   r   r  rT  r,  r   r-  r.  r   r/  )r   rz   dkeysr   expectedr0  s         r   test_builtin_mapzTestCase.test_builtin_map`  s   c-q1ABCeAqk*	, a!,ca":A>?aggi	*QVVX #1X' & QZ,E!H4QZ,E!H46 & 	 '
 w/	2Yq4(  GGIw/	T#c1+.U1b!_0EFGGIv#' GGI   GGIv sT   .:F&='F+ =G G  +F= 	GGH !G10H 1	G=:H <G==H c                 6   | j                  t        t                     g        | j                  t        t        g        g        | j                  t        t        ddg       ddg       | j                  t        t        d        | j                  t        t        t        d      d       | j                  t        t        t        d      t               | j                  t        t        t        d                  g d       | j                  t        t        t        d                  g d       d	d
dd}| j                  t        |j                               t        t        ||j                                             G d d      }t        t        dd      }	 |j                  d       |j                          t        t        dd      }	 | j                  t        t         |d      | |d                  g d       |j                          	 t        t               | j                  t        t        t        d                  t        d      D cg c]  }|f c}        G d d      } G d d|      } G d d|      }d }| j                  t!         |             d       | j                  t!         |             d       | j                   | |              |t        d                   | j                   | |              |t        d                   | j                   | |              |t        d                   t        d      D cg c]  }||f }	} |        |        |       fD ]4  }
 |        |        |       fD ]  }| j                   ||
|      |	        6 y # |j                          w xY w# t        $ r Y w xY w# |j                          	 t        t               w # t        $ r Y w w xY wxY wc c}w c c}w )Nr
   r   ab)r
   r   )r   r  r}   r7  r   )r   )r
   )r   r
   r   r3  c                       e Zd Zd Zd Zd Zy)+TestCase.test_builtin_zip.<locals>.IntsFromc                     || _         y r   r1   )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                 2    | j                   }|dz   | _         |S r   r1   r2   s     r   r   z4TestCase.test_builtin_zip.<locals>.IntsFrom.__next__  s    FF1r   NrU  r   r   r   IntsFromrv    s    r   r{  r!  r"  r#  z	a
bbb
cc
r&  r   ))r   a
r|  )r
   zbbb
i)r   zcc
ir   c                       e Zd Zd Zy).TestCase.test_builtin_zip.<locals>.NoGuessLen5c                     |dk\  rt         |S Nr   )r:   r2   s     r   r;   z:TestCase.test_builtin_zip.<locals>.NoGuessLen5.__getitem__  s    6$$r   NrG   r   r   r   NoGuessLen5r    s    r   r  c                       e Zd Zd Zy)-TestCase.test_builtin_zip.<locals>.Guess3Len5c                      yr   r   r    s    r   r[   z5TestCase.test_builtin_zip.<locals>.Guess3Len5.__len__  s    r   Nr$   r%   r&   r[   r   r   r   
Guess3Len5r    s    r   r  c                       e Zd Zd Zy).TestCase.test_builtin_zip.<locals>.Guess30Len5c                      y)N   r   r    s    r   r[   z6TestCase.test_builtin_zip.<locals>.Guess30Len5.__len__  s    r   Nr  r   r   r   Guess30Len5r    s    r   r  c                  $    t        t        |        S r   )rw   zip)rM  s    r   lzipz'TestCase.test_builtin_zip.<locals>.lzip  s    T
##r   r  )rc   rw   r  r   r   rn   r(   r7   r   re  r,  r   r-  r.  r   r/  rT  )r   rz   r{  r0  r   r  r  r  r  ro  r   ys               r   test_builtin_zipzTestCase.test_builtin_zip~  s;   ceb)c2h,cFD>23h5IJ)S$/)S%)R8)S%)S9c"8";<=+	-c-"234+	- a!,aggi$s1ahhj/A*BC
	 
	 w/	GG()GGIw/
	T#hqk1htn"EF01
 GGIv 	c%(m,U1X.FXtX.FG	 		 		+ 		$ 	Z\*A.[]+R0km,d58n=jl+T%(^<km,d58n=$)!H-HqQFH-
km;A ]JL+-?  aX6 @ <S GGI   GGIv  /G4 .sZ   N8 4O O 
P
P8O
	OOP/O?>P?	PP
PPc                     G d d      }t        t        dd      }	 |j                  d       |j                          t        t        dd      }	 dj	                   ||            }| j                  |d	       |j                          	 t        t               y # |j                          w xY w# t        $ r Y y w xY w# |j                          	 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y)4TestCase.test_unicode_join_endcase.<locals>.OhPhooeyc                 2    t        |      | _        d| _        y r   )rj   rd   r   )r   re   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                 d    | j                   }|dz   | _         |dk(  ryt        | j                        S )Nr
   r   zfooled you!)r   r4   rd   r2   s     r   r   z=TestCase.test_unicode_join_endcase.<locals>.OhPhooey.__next__  s.    FF16(DGG}$r   NrU  r   r   r   OhPhooeyr    s    %r   r  r!  r"  r#  a
b
c
r&  z - za
 - b
 - fooled you! - c
)r,  r   r-  r.  joinrc   r   r/  )r   r  r0  gots       r   test_unicode_join_endcasez"TestCase.test_unicode_join_endcase  s    	% 	% w/	GG)*GGIw/	**Xa[)CS"ABGGIv GGI   GGIv sM   B )C  B1 B.1	B=<B= C1C"!C1"	C.+C1-C..C1c           
         t        d      t        d      fD ]H  }t        d      D ]  }| j                  ||        dddddg ddid|f	D ]  }| j	                  ||        J | j                  t
        t        t        dg                   | j                  t
        t        dg             | j	                  t
        t        t        t        g                   | j	                  t
        t        t        g             | j                  t        t        t        t
        g                   | j                  t        t        t
        g             | j                  t        d        | j                  t        d	        | j                  t        d
        ddddd}|D ]4  }| j                  ||       | j	                  ||j                                6 |j                         D ]4  }| j                  ||j                                | j	                  ||       6 |j                         D ]I  \  }}| j                  ||f|j                                | j	                  ||f|j                                K t        t         dd      }	 |j#                  d       |j%                          t        t         dd      }	 dD ]M  }|j'                  dd       | j	                  ||       |j'                  dd       | j                  |dz   |       O 	 |j%                          	 t)        t                y # |j%                          w xY w# t*        $ r Y y w xY w# |j%                          	 t)        t                w # t*        $ r Y w w xY wxY w)Nr   ru   rb  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"Wr   c                      dt         vS r   )rm  r   r   r   r   z-TestCase.test_in_and_not_in.<locals>.<lambda>  s    Qc\r   c                      dt               v S r   )rN   r   r   r   r   z-TestCase.test_in_and_not_in.<locals>.<lambda>  s    Q:J:L5Lr   r   r                  @r4  r5  r6                ?r!  r"  r#  r  r&  r   rk  )r(   r7   rn   assertInassertNotInr   r/   rj   r>   r   r   r   rP   re  r   r,  r   r-  r.  r8  r   r/  )r   sc5r   rz   r   vr0  chunks           r   test_in_and_not_inzTestCase.test_in_and_not_in  s   )!,mA.>>C1Xa% B5&"q!feSH  C( I ? 	i!3D!I!>?i!3QC!89$6tXJ7G$HI$6z$BCh 243D EFh 2I; ?@)_5)%9:+-LMa!4AMM!QQ
+  AMM!QXXZ(Q"  GGIDAqMM1a&!''),aVQWWY/  w/	GG%&GGIw/	q!  *q!ut|a0	  GGIv GGI   GGIv sO   L0 <AM  M 0M	MMN&M65N6	N?NNNc                 d   ddl m} | j                   |g dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                  t        |d	d
       | j                  t        |||       ddddd}|D ]  }| j                   |||      d
        | j                   ||j                         d      d       | j                   ||j                         d      d
       | j                   ||j                         d      d       t        t        dd      }	 |j                  d       |j                          t        t        dd      }	 dD ]3  \  }}|j                  dd       | j                   |||dz         |       5 	 |j                          	 t        t               y # |j                          w xY w# t        $ r Y y w xY w# |j                          	 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6r7  r
   r  r  r  r!  r"  r#  za
b
c
b
r&  ))r   r
   )r  r   )r  r
   )rz   r   rk  )operatorr  rc   r   r   re  r,  r   r-  r.  r8  r   r/  )r   r  rz   r   r0  lettercounts          r   test_countOfzTestCase.test_countOf(  s   $2A62A63/33/3)Wb!4)Wgw?a!4AWQ]A. Q/3R0!4R0!4w/	GG+,GGIw/		!Gq!  FTM!:EB "H GGIv GGI   GGIv sN   G  8G> 
G/ G,/	G;:G;>H/H H/ 	H,)H/+H,,H/c                 b   ddl m} | j                   |g dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                  t        |dd       | j                  t        |dd       | j                   |d	d
      d       | j                   |d	d      d       | j                  t        |d	d       | j                  t
        |dd       | j                  t
        |||       | j                  t        |t               d       t        t        dd      }	 |j                  d       |j                          t        t        dd      }	 t        |      }| j                   ||d      d       | j                   ||d      d       | j                   ||d      d       | j                  t        ||d       |j                          	 t        t               t        d      }t!        d      D ]  }| j                   |||      |        | j                  t        ||d       y # |j                          w xY w# t        $ r Y mw xY w# |j                          	 t        t               w # t        $ r Y w w xY wxY w)Nr   )indexOfr  r
   r   r   r   r   r  r  5r  r7  r!  r"  r#  z
a
b
c
d
e
r&  zb
zd
ze
r}  rb  )r  r  rc   r   
ValueErrorr   rP   rN   r,  r   r-  r.  rj   r   r/  r(   rn   )r   r  r0  fitericlassr   s         r   test_indexOfzTestCase.test_indexOfK  sM   $2A62A62A62A6*g}a@*g}a@3/33/3*gx=)Wb!4)Wgw?+W6F6H!Lw/	GG12GGIw/	GEWUE2A6WUE2A6WUE2A6j'5%@GGIv (*qAWVQ/3 *gvr:% GGI   GGIv sO   
I >A.I= =I. I+.	I:9I:=J.JJ.	J+(J.*J++J.c                 .   t        t        dd      }	 | j                  t        |j                  d        | j                  t        |j                  d       |j	                  ddg       |j	                  d       |j	                  dd i       |j	                  i         G d	 d
       G fdd      }|j	                   |dd             |j                          t        t        d      }t        dd      D cg c]  }t        |      dz    }}| j                  t        |      |       |j                          	 t        t               y c c}w # t        $ r Y y w xY w# |j                          	 t        t               w # t        $ r Y w w xY wxY w)Nr!  r"  r#  r7  r(  r)  )r*  r+  z5
c                       e Zd Zd Zd Zd Zy)*TestCase.test_writelines.<locals>.Iteratorc                 B    || _         || _        | j                   | _        y r   )rx  finishr   r   rx  r  s      r   r   z3TestCase.test_writelines.<locals>.Iterator.__init__  s    !&DJ"(DK!ZZDFr   c                     | j                   | j                  k\  rt        t        | j                         dz   }| xj                   dz  c_         |S )Nrk  r
   )r   r  r   str)r   results     r   r   z3TestCase.test_writelines.<locals>.Iterator.__next__  s<    vv,++ [4/FFFaKF!Mr   c                     | S r   r   r    s    r   r!   z3TestCase.test_writelines.<locals>.Iterator.__iter__  s    Kr   Nr#   r   r   r   rv   r    s    (
" r   rv   c                       e Zd Zd Z fdZy)*TestCase.test_writelines.<locals>.Whateverc                      || _         || _        y r   rx  r  r  s      r   r   z3TestCase.test_writelines.<locals>.Whatever.__init__  s    !&DJ"(DKr   c                 >     | j                   | j                        S r   r  )r   rv   s    r   r!   z3TestCase.test_writelines.<locals>.Whatever.__iter__  s    #DJJ<<r   Nr-   )rv   s   r   Whateverr    s    )=r   r  r   i  r
   rk  )r,  r   r   r   
writelinesr.  rn   r  rc   rw   r   r/  )r   r0  r  r   ro  rv   s        @r   test_writelineszTestCase.test_writelinesu  sG   w/.	it<ir:LL%(LL(LL%'LL    = = LL!V,-GGIVg.A/4Q~>~!A~H>T!Wh/ GGIv ?   GGIv sT   C'E# <EE# ?E E# 	E E #F5FF	FFFFc                    d\  }}| j                  ||fd       t        d      \  }}}| j                  |||fd       	 t        d      \  }}| j                  d       	 t        d      \  }}}| j                  d       	 t        \  }}}| j                  d       ddddj                         \  }}}| j                  |||fd	       t        t        d
d      }d}	 |D ]  }|j                  |        	 |j                          t        t        dd      }	 |\  }}}| j                  |||f|       |j                          	 t        t               t        d      ddic\  }}\  }| j                  |||fd       y # t        $ r Y -w xY w# t        $ r Y w xY w# t
        $ r Y w xY w# |j                          w xY w# t        $ r Y {w xY w# |j                          	 t        t               w # t        $ r Y w w xY wxY w)Nrr  r   r   zshould have raised ValueErrorr   zshould have raised TypeErrorr7  r   )r7  r7  r7  r!  r"  r#  )r}  zbb
zccc
r&     )r   r
   r7  )rc   r(   r   r  rT  r   re  r,  r   r-  r.  r   r/  )r   r   r  r  r0  lineslines          r   test_unpack_iterzTestCase.test_unpack_iter  s   1!Q((+1a!QI.	7)!,DAq II56	7,Q/GAq! II56	6GAq! II45RB'..01a!QL1w/(	  GGIw/	GAq!aAY.GGIv .a02r(A!QJ/S  		  		  		 GGI   GGIv s   E? F  
F F/ G G ?	FF	FF	F,+F,/G	GGH%G54H5	H>H HHc                 x    G d dt               } |       }| j                  |j                  d       ~| j                  |j                  d        |        |        |       g}| j                  |j                  d       	 t        |      \  }}~| j                  |j                  d       y # t        $ r Y )w xY w)Nc                       e Zd ZdZd Zd Zy).TestCase.test_ref_counting_behavior.<locals>.Cr   c                 V    | xj                   dz  c_         t        j                  |       S r   )r  r   __new__)clss    r   r  z6TestCase.test_ref_counting_behavior.<locals>.C.__new__  s    		Q	~~c**r   c                 h    | j                   }|j                  dkD  sJ |xj                  dz  c_        y r   )	__class__r  )r   r  s     r   __del__z6TestCase.test_ref_counting_behavior.<locals>.C.__del__  s(    nnyy1}$}		Q	r   N)r$   r%   r&   r  r  r  r   r   r   Cr    s    E+r   r  r
   r   r   )r   rc   r  rj   r  )r   r  r   lr   r  s         r   test_ref_counting_behaviorz#TestCase.test_ref_counting_behavior  s    	 	 C!$!$S!#qsO!$	7DAq !$  		s   B- -	B98B9c                    t        t        d            }t        |      }| j                  t        |      t        t        d                   |j	                  t        dd             | j                  t        |      g        y Nr   r}   )rw   rn   rj   rc   extendr   r   r  s      r   test_sinkstate_listzTestCase.test_sinkstate_list  sZ    qNGa$uQx.1	q"a"%r   c                     d}t        |      }| j                  t        |      t        t        d                   | j                  t        |      g        y )Nr<  r   rj   rc   rw   rn   r  s      r   test_sinkstate_tuplezTestCase.test_sinkstate_tuple  s@    Ga$uQx.1a"%r   c                     d}t        |      }| j                  t        |      g d       | j                  t        |      g        y r  )rj   rc   rw   r  s      r   test_sinkstate_stringzTestCase.test_sinkstate_string
  s9    Ga";<a"%r   c                     t        d      }t        |      }| j                  t        |      t        t	        d                   d|_        | j                  t        |      g        y r  )r7   rj   rc   rw   rn   r   r  s      r   test_sinkstate_sequencez TestCase.test_sinkstate_sequence  sL    !Ga$uQx.1a"%r   c                     dgfd}t        |d      }| j                  t        |      t        t        d                   | j                  t        |      g        y )Nr   c                 @    | 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  s0    aAsE!HBw$%EFFHr   r   r  )r   r   r  s      r   test_sinkstate_callablez TestCase.test_sinkstate_callable  sI    s 	 qMa$uQx.1a"%r   c                 $   dddddd}t        |      |j                         |j                         |j                         fD ]L  }t        |      }| j	                  t        t        |            d       | j	                  t        |      g        N y )Nr
   r   r   r   r   )r
   r   r   r   r   r   )rj   r  r   re  rc   rT  rw   r  s      r   test_sinkstate_dictzTestCase.test_sinkstate_dict$  sr     Aa1%a!&&(AGGIqxxz9AQASa\1-T!Wb) :r   c                     d } |       }| j                  t        |      t        t        d                   | j                  t        |      g        y )Nc               3   4   K   t        d      D ]  } |   y wr  rn   r1   s    r   genz*TestCase.test_sinkstate_yield.<locals>.gen.  s     1X    r   )rc   rw   rn   )r   r  r  s      r   test_sinkstate_yieldzTestCase.test_sinkstate_yield-  s@    	 Ea$uQx.1a"%r   c                     t        d      }t        |      }| j                  t        |      t        t        d                   | j                  t        |      g        y r  )rn   rj   rc   rw   r  s      r   test_sinkstate_rangezTestCase.test_sinkstate_range5  sD    !HGa$uQx.1a"%r   c                     t        d      }t        |      }t        |      }| j                  t	        |      t	        t        t        d      t        d                         | j                  t	        |      g        y r  )rn   	enumeraterj   rc   rw   r  )r   r   r  r  s       r   test_sinkstate_enumeratez!TestCase.test_sinkstate_enumerate;  sY    !HaLGa$s58U1X'>"?@a"%r   c                 `     G fddt               	         D ]  } y # t        $ r Y y w xY w)Nc                       e Zd Zd Z fdZy)'TestCase.test_3720.<locals>.BadIteratorc                     | S r   r   r    s    r   r!   z0TestCase.test_3720.<locals>.BadIterator.__iter__E  r   r   c                 
    ` yr   )r   )r   BadIterators    r   r   z0TestCase.test_3720.<locals>.BadIterator.__next__G  s    (r   N)r$   r%   r&   r!   r   )r  s   r   r  r  D  s    r   r  )r   r   )r   r   r  s     @r   	test_3720zTestCase.test_3720B  s5    	& 		 ] # 		s   ! 	--c                     d }dgdz  }t        d      D ]  }|j                  d        |j                   |              | j                  t	        |      d       y )Nc               3   4   K   t        d      D ]  } |   y w)N  r  r1   s    r   r  zITestCase.test_extending_list_with_iterator_does_not_segfault.<locals>.genW  s     3Z  r  r   r     i  )rn   popr  rc   rT  )r   r  lstr   s       r   3test_extending_list_with_iterator_does_not_segfaultz<TestCase.test_extending_list_with_iterator_does_not_segfaultQ  sO    	 cCisAGGAJ 

35S3'r   c                    t        t                     }|j                  t        j                  dz
         | j                  t        |      t        j                  dz
         | j                  t        |      t        j                  dz
         | j                  t              5  t        |       d d d        | j                  t              5  t        |       d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)Nr   r
   )	rj   rD   __setstate__sysmaxsizerc   r4   r   OverflowErrorr   rd   s     r   test_iter_overflowzTestCase.test_iter_overflow`  s     (*+
a(b3;;?3b3;;?3}-H . }-H .- .- .-s   #C!C-!C*-C6c                     t        t                     }|j                  d       | j                  t	        |      d       | j                  t	        |      d       y )Nir   r
   )rj   rD   r  rc   r4   r  s     r   test_iter_neg_setstatezTestCase.test_iter_neg_setstaten  sD    (*+
b1%b1%r   c                 0    t        | t        t        d       y )Nrt  )r   rj   r7   r    s    r   test_free_after_iteratingz"TestCase.test_free_after_iteratingt  s    "4}dCr   c                     t         t        fD ]"  }| j                  t        t         |              $ | j                  t
        t        t                      y r   )rI   rK   r   r   rj   rP   rN   )r   typs     r   test_error_iterzTestCase.test_error_iterw  s<    $k2Cisu5 3+T3C3EFr   c                    d }d }d }|df|df|dffD ]  \  }}| j                  |      5   |       }t        j                  |j                        d   }d}|j                  }	| j                  |j                  |	j                  d	z          | j                  |j                  |	j                  d	z          | j                  |j                  |j                  |z
  |j                  |z
   |       d d d         y # 1 sw Y   xY w)
Nc                  X    	 t        d      D ]  }  y # t        $ r}|cY d }~S d }~ww xY w)NT)init_raisesr	   	Exceptionr   r  s     r   r  z6TestCase.test_exception_locations.<locals>.init_raises  .    #5A 6     	)$))c                  X    	 t        d      D ]  }  y # t        $ r}|cY d }~S d }~ww xY w)NT)next_raisesr  r  s     r   r!  z6TestCase.test_exception_locations.<locals>.next_raises  r  r  c                  X    	 t        d      D ]  }  y # t        $ r}|cY d }~S d }~ww xY w)NT)iter_raisesr  r  s     r   r#  z6TestCase.test_exception_locations.<locals>.iter_raises  r  r  zBrokenIter(init_raises=True)zBrokenIter(next_raises=True)zBrokenIter(iter_raises=True)r      r   )subTest	traceback
extract_tb__traceback____code__rc   linenoco_firstlineno
end_linenor  colno	end_colno)
r   r  r!  r#  r   ro  excr0  indentcos
             r   test_exception_locationsz!TestCase.test_exception_locations|  s    			 !,-KL +-KL +-KL ND( d#f(():):;A>]]  2+<+<q+@A  r/@/@1/DE  &(81;;;O!P!)+ $#	  $#s   CC::D	N)T)@r$   r%   r&   rh   rl   ra   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  r1  r:  r>  r`  rf  rp  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r2  r   r   r   r_   r_   k   sh   
##0(>#>(((IO@F"+H	9F*R8YKK 49"9 PD*J>F5&>B*PZ@<M7^'T.b F';T1j20j % %8&&&&
&*&&&(  &DG
%+r   r_   __main__)!r  unittesttest.supportr   test.support.os_helperr   r   r   r   r   r	   rf   collections.abcrt   r   r   r   r&  r   r   r(   r/   r7   r>   rD   rI   rK   rN   rS   rY   r_   r$   mainr   r   r   <module>r9     s      % 1 H H #      
- & &    	 	 
     v+x   v+t! zHMMO r   