
    /hh$                        S SK r S SKrS SKrS SKrS SKrS SKJr   " S S5      r " S S5      r " S S5      r	 " S	 S
5      r
 " S S5      r " S S5      r " S S5      r " S S\ R                  \5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\ R                  \5      r " S S\5      r " S S \5      r " S! S"\5      r\S#:X  a  \ R4                  " 5         gg)$    N)supportc                   $    \ rS rSrSrS rS rSrg)G	   zSequence using __getitem__c                     Xl         g Nseqnselfr
   s     </opt/python-3.13.8/usr/lib/python3.13/test/test_enumerate.py__init__
G.__init__   s    	    c                      U R                   U   $ r   r	   r   is     r   __getitem__G.__getitem__   s    yy|r   r	   N)__name__
__module____qualname____firstlineno____doc__r   r   __static_attributes__ r   r   r   r   	   s     r   r   c                   *    \ rS rSrSrS rS rS rSrg)I   z Sequence using iterator protocolc                     Xl         SU l        g Nr   r
   r   r   s     r   r   
I.__init__       	r   c                     U $ r   r   r   s    r   __iter__
I.__iter__       r   c                     U R                   [        U R                  5      :  a  [        eU R                  U R                      nU =R                   S-  sl         U$ N   r   lenr
   StopIterationr   vs     r   __next__
I.__next__   ?    66S^#=%8IIdff!r   r   r
   N	r   r   r   r   r   r   r'   r2   r   r   r   r   r   r      s    &r   r   c                   $    \ rS rSrSrS rS rSrg)Ig   z9Sequence using iterator protocol defined with a generatorc                     Xl         SU l        g r!   r"   r   s     r   r   Ig.__init__   r$   r   c              #   :   #    U R                    H  nUv   M	     g 7fr   r	   )r   vals     r   r'   Ig.__iter__"   s     99CI s   r5   Nr   r   r   r   r   r   r'   r   r   r   r   r8   r8      s    ?r   r8   c                   $    \ rS rSrSrS rS rSrg)X&   z Missing __getitem__ and __iter__c                     Xl         SU l        g r!   r"   r   s     r   r   
X.__init__(   r$   r   c                     U R                   [        U R                  5      :  a  [        eU R                  U R                      nU =R                   S-  sl         U$ r+   r-   r0   s     r   r2   
X.__next__+   r4   r   r5   N)r   r   r   r   r   r   r2   r   r   r   r   rA   rA   &   s    &r   rA   c                   *    \ rS rSrSrS rS rS rSrg)E1   zTest propagation of exceptionsc                     Xl         SU l        g r!   r"   r   s     r   r   
E.__init__3   r$   r   c                     U $ r   r   r&   s    r   r'   
E.__iter__6   r)   r   c                     SS-    g )N   r   r   r&   s    r   r2   
E.__next__8   s	    	Qr   r5   Nr6   r   r   r   rH   rH   1   s    $r   rH   c                   $    \ rS rSrSrS rS rSrg)N;   zIterator missing __next__()c                     Xl         SU l        g r!   r"   r   s     r   r   
N.__init__=   r$   r   c                     U $ r   r   r&   s    r   r'   
N.__iter__@   r)   r   r5   Nr?   r   r   r   rR   rR   ;   s    !r   rR   c                       \ rS rSrS rSrg)
PickleTestC   c                 D   [        [        R                  S-   5       H  n[        R                  " X5      n[        R                  " U5      nU R                  [        U5      [        U5      5        U R                  [        U5      U5        [        R                  " U5      n [        U5        [        R                  " XS5      n[        R                  " U5      nU R                  [        U5      USS  5        M     g ! [         a    U R                  USS  5         GM  f = fr+   )rangepickleHIGHEST_PROTOCOLdumpsloadsassertEqualtypelistnextr/   assertFalse)r   itorgseqprotodits         r   check_picklePickleTest.check_pickleE   s    622Q67EU*AaBT%[$r(3T"Xs+aBR R'AaBT"Xs12w/ 8 !   QR)s   "C<<DDr   N)r   r   r   r   rk   r   r   r   r   rY   rY   C   s    0r   rY   c                       \ rS rSr\rS/ SQsrrS rS r	S r
S rS rS	 rS
 rS rS rS r\R&                  S 5       r\R&                  S 5       rSrg)EnumerateTestCaseV   abc))r   a)r,   b)   cc                    U R                  [        U R                  U R                  5      5      U R                  5        U R                  U R                  5      nU R                  [	        U5      U5        U R                  [        U R                  U R                  5      5      U R                  5        U R                  R                    g r   )ra   rb   enumrg   iterrc   resr   r   es     r   test_basicfunction$EnumerateTestCase.test_basicfunction[   s    dii12DII>IIdhha!$dii12DHH=		r   c                 n    U R                  U R                  U R                  5      U R                  5        g r   )rk   rv   rg   rx   r&   s    r   test_pickleEnumerateTestCase.test_pickleb   s#    $))DHH-txx8r   c           	          U R                  [        U R                  [        U R                  5      5      5      U R
                  5        U R                  [        S5      5      nU R                  [        [        U5        g N )	ra   rc   rv   r   rg   rx   assertRaisesr/   rd   ry   s     r   test_getitemseqn"EnumerateTestCase.test_getitemseqne   P    dii$((45txx@IIae-q1r   c           	          U R                  [        U R                  [        U R                  5      5      5      U R
                  5        U R                  [        S5      5      nU R                  [        [        U5        g r   )	ra   rc   rv   r   rg   rx   r   r/   rd   ry   s     r   test_iteratorseqn#EnumerateTestCase.test_iteratorseqnj   r   r   c           	          U R                  [        U R                  [        U R                  5      5      5      U R
                  5        U R                  [        S5      5      nU R                  [        [        U5        g r   )	ra   rc   rv   r8   rg   rx   r   r/   rd   ry   s     r   test_iteratorgenerator(EnumerateTestCase.test_iteratorgeneratoro   sP    dii48856AIIbf-q1r   c                 l    U R                  [        U R                  [        U R                  5      5        g r   )r   	TypeErrorrv   rA   rg   r&   s    r   test_noniterable"EnumerateTestCase.test_noniterablet        )TYY$((<r   c                 l    U R                  [        U R                  [        U R                  5      5        g r   )r   r   rv   rR   rg   r&   s    r   test_illformediterable(EnumerateTestCase.test_illformediterablew   r   r   c           	      ~    U R                  [        [        U R                  [	        U R
                  5      5      5        g r   )r   ZeroDivisionErrorrc   rv   rH   rg   r&   s    r   test_exception_propagation,EnumerateTestCase.test_exception_propagationz   s&    +T499Qtxx[3IJr   c                    U R                  [        U R                  5        U R                  [        U R                  S5        U R                  [        U R                  SS5        U R                  [        U R                  SSS5        g )Nr,   rp   rq   rs   rO   )r   r   rv   r&   s    r   test_argumentcheck$EnumerateTestCase.test_argumentcheck}   s^    )TYY/)TYY2)TYYs;)TYYq!<r   c           
         U R                  [        U R                  [        U R                  5      S95      U R
                  5        [        U R                  [        U R                  5      S5      5      nU R                  [        U R                  [        U R                  5      SS95      U5        U R                  [        U R                  S[        U R                  5      S95      U5        U R                  [        U R                  / SS9  U R                  [        U R                  SSS9  U R                  [        U R                  SSS9  U R                  [        U R                  SS	9  g )
N)iterabler   )r   start)r   r   rO   )r   x)r   r   )r   y)r   )ra   rc   rv   r8   rg   rx   r   r   )r   expecteds     r   test_kwargsEnumerateTestCase.test_kwargs   s   diiDHHi>?J		"TXX,23diiDHHQiGH!	#diia"TXX,iGH!	#)TYYqA)TYYa1=)TYY!q9)TYY!4r   c                    U R                  [        [        [        [        [        [        U R                  5      5      5      5      5      [        U R                  5      5        U R                  [        [        [        [        [        U R                  5      5      5      5      [        S[        U R                  5      5      5        g r+   )	ra   r.   setmapidrc   	enumeraterg   minr&   s    r   test_tuple_reuse"EnumerateTestCase.test_tuple_reuse   st     	SRi.A)B!CDEs488}USR488)<!=>?Qs488}AUVr   c                     U R                  / /5      n[        R                  " 5         U R                  [        R                  " [        U5      5      5        g r   )rv   gccollect
assertTrue
is_trackedrd   )r   rj   s     r   test_enumerate_result_gc*EnumerateTestCase.test_enumerate_result_gc   s7    
 YYt_


 	d2h/0r   r   N)r   r   r   r   r   rv   rg   rx   r{   r~   r   r   r   r   r   r   r   r   r   cpython_onlyr   r   r   r   r   r   rn   rn   V   s|    D1HC92
2
2
==K=
5 W W 	1 	1r   rn   c                       \ rS rSrSrg)MyEnum   r   N)r   r   r   r   r   r   r   r   r   r      s    r   r   c                       \ rS rSr\rSrg)SubclassTestCase   r   N)r   r   r   r   r   rv   r   r   r   r   r   r      s    Dr   r   c                       \ rS rSrS/ srrSrg)	TestEmpty   r   r   N)r   r   r   r   rg   rx   r   r   r   r   r   r      s    2HCr   r   c                   R    \ rS rSr\" SSS5      r\" \" \" S5      \5      5      rSr	g)TestBig   
   i N  rs   r   N)
r   r   r   r   r\   rg   rc   ziprx   r   r   r   r   r   r      s%    
5
C
s5<%
&Cr   r   c                   ~    \ rS rSrS rS rS rS rS r\	R                  " \" \S5      S5      S	 5       rS
 rS rSrg)TestReversed   c           	      L    " S S5      nS[        S5      [        [        S5      5      U" 5       [        SSS5      [        R	                  S5      4 H6  nU R                  [        U5      S S S2   [        [        U5      5      5        M8     U R                  [        [        / SS	9  g )
Nc                        \ rS rSrS rS rSrg)#TestReversed.test_simple.<locals>.A   c                 0    US:  a  [        U5      $ [        eN   )strr/   r   s     r   r   /TestReversed.test_simple.<locals>.A.__getitem__   s    q5q6M##r   c                     gr   r   r&   s    r   __len__+TestReversed.test_simple.<locals>.A.__len__   s    r   r   N)r   r   r   r   r   r   r   r   r   r   Ar      s    $r   r   rp   r   r,      abcde)rq   )
r\   tupler   dictfromkeysra   rc   reversedr   r   )r   r   datas      r   test_simpleTestReversed.test_simple   s    	 	 E!HeIe,<&=qs!BqM4==#9;DT$Z"-tHTN/CD; 	)XrQ7r   c                     [        S5      nU R                  [        [        U5      5      [        [	        U5      5      5        g r+   )r\   ra   rb   r   rw   )r   r   s     r   test_range_optimization$TestReversed.test_range_optimization   s,    !Hhqk*DaM:r   c                    S[        S5      [        S5      [        S5      4 Hw  nU R                  [        R
                  " [        U5      5      [        U5      5        [        U5      n[        U5        U R                  [        R
                  " U5      S5        My      " S S5      n[        U" 5       5      nU R                  [        [        R
                  U5        g )Nhellor   r   c                   $    \ rS rSrSrS rS rSrg).TestReversed.test_len.<locals>.SeqWithWeirdLen   Fc                 @    U R                   (       d  SU l         g[        e)NTr   )calledr   r&   s    r   r   6TestReversed.test_len.<locals>.SeqWithWeirdLen.__len__   s    {{"&DK''r   c                     U$ r   r   r   indexs     r   r   :TestReversed.test_len.<locals>.SeqWithWeirdLen.__getitem__       r   )r   N)r   r   r   r   r   r   r   r   r   r   r   SeqWithWeirdLenr      s    F(
r   r   )
r   rc   r\   ra   operatorlength_hintr   r.   r   r   )r   srr   s       r   test_lenTestReversed.test_len   s    5>4=%(CAX11(1+>AGAGX11!4a8	 D
	 	 _&'+X-A-A1Er   c                 H     " S S5      nU" 5       n[        U5      nX2l        g )Nc                        \ rS rSrS rS rSrg)!TestReversed.test_gc.<locals>.Seq   c                     g)Nr   r   r&   s    r   r   )TestReversed.test_gc.<locals>.Seq.__len__   s    r   c                     U$ r   r   r   s     r   r   -TestReversed.test_gc.<locals>.Seq.__getitem__   r   r   r   N)r   r   r   r   r   r   r   r   r   r   Seqr      s    r   r   )r   r   )r   r   r   r   s       r   test_gcTestReversed.test_gc   s#    	 	
 EQKr   c                 p    U R                  [        [        5        U R                  [        [        / S5        g )Nextra)r   r   r   r&   s    r   	test_argsTestReversed.test_args   s&    )X.)Xr7;r   getrefcountztest needs sys.getrefcount()c                 "   S n[        5       =o!l        [        R                  " U5      n[	        S5       H   n [        U5        U R                  S5        M"     U R                  U[        R                  " U5      5        g ! [         a     MX  f = f)Nc                      g r   r   r   r   r   f'TestReversed.test_bug1229429.<locals>.f   s    r   r   z'non-callable __reversed__ didn't raise!)	object__reversed__sysr  r\   r   failr   ra   )r   r  r   rcr   s        r   test_bug1229429TestReversed.test_bug1229429   sz    	#X%N__QrAE 		CD  	S__Q/0	  s   B  
BBc                 *    " S S[         5      nU" 5       nU R                  [        [        U5         " S S[         5      nU" 5       nU R                  [        [        U5         " S S[         5      nU" 5       nU R                  [        [        U5        g )Nc                       \ rS rSrS rSrg)+TestReversed.test_objmethods.<locals>.NoLen   c                     gr+   r   r   s     r   r   7TestReversed.test_objmethods.<locals>.NoLen.__getitem__       Qr   r   N)r   r   r   r   r   r   r   r   r   NoLenr     s    .r   r  c                       \ rS rSrS rSrg)/TestReversed.test_objmethods.<locals>.NoGetItem   c                     gNrs   r   r&   s    r   r   7TestReversed.test_objmethods.<locals>.NoGetItem.__len__       ar   r   N)r   r   r   r   r   r   r   r   r   	NoGetItemr     s    'r   r  c                   $    \ rS rSrS rS rSrSrg)-TestReversed.test_objmethods.<locals>.Blockedi  c                     gr+   r   r   s     r   r   9TestReversed.test_objmethods.<locals>.Blocked.__getitem__  r  r   c                     gr  r   r&   s    r   r   5TestReversed.test_objmethods.<locals>.Blocked.__len__  r  r   Nr   )r   r   r   r   r   r   r  r   r   r   r   Blockedr    s    .'Lr   r$  )r  r   r   r   )r   r  nlr  ngir$  rr   s          r   test_objmethodsTestReversed.test_objmethods   ss    	/F 	/W)Xr2	( 	(k)Xs3	 f 	  I)Xq1r   c                     S[        S5      [        [        S5      5      [        SSS5      4 H-  nU R                  [	        U5      [        U5      S S S2   5        M/     g )Nrp   r   r,   r   r   )r\   r   r   rk   r   rc   )r   r   s     r   r~   TestReversed.test_pickle  sM    58U9U+;%<eAbmKDhtnd4j2.>? Lr   r   N)r   r   r   r   r   r   r   r   r   unittest
skipUnlesshasattrr	  r  r'  r~   r   r   r   r   r   r      sQ    8;F&< m46TU1 V1 2&@r   r   c                       \ rS rSrS rSrg)EnumerateStartTestCasei  c                     U R                  U R                  5      nU R                  [        U5      U5        U R                  [	        U R                  U R                  5      5      U R
                  5        g r   )rv   rg   ra   rw   rc   rx   ry   s     r   r{   )EnumerateStartTestCase.test_basicfunction  sN    IIdhha!$dii12DHH=r   r   N)r   r   r   r   r{   r   r   r   r   r/  r/    s    >r   r/  c                   ,    \ rS rSrSS jrS/ SQsrrSrg)	TestStarti  c                     [        XS9$ N)r   r   r   r   r   s      r   rv   TestStart.enum      //r   rp   ))   rq   )   rr   )   rt   r   N)r:  )r   r   r   r   rv   rg   rx   r   r   r   r   r3  r3    s    0 7HCr   r3  c                       \ rS rSr\R
                  S-   4S jrS\R
                  S-   S4\R
                  S-   S4\R
                  S-   S	4/srrS
r	g)TestLongStarti  r,   c                     [        XS9$ r5  r6  r7  s      r   rv   TestLongStart.enum   r9  r   rp   rq   rs   rr   rO   rt   r   N)
r   r   r   r   r	  maxsizerv   rg   rx   r   r   r   r   r>  r>    sP    #&;;? 0 Ac*S[[]3,?Ac*,HCr   r>  __main__)r+  r   r	  r]   r   testr   r   r   r8   rA   rH   rR   rY   TestCasern   r   r   r   r   r   r   r/  r3  r>  r   mainr   r   r   <module>rF     s      
  	    	 	  0 0&J1)): J1X	Y 	( ! ' '
[@8$$j [@|>. >8& 8,* , zMMO r   