
    0hhb                     
   S SK r S SKJr  S SKJr  S SKJr  Sr " S S5      r " S S	\5      r	 " S
 S\\ R                  5      r " S S\\ R                  5      r " S S\\ R                  5      r " S S\\ R                  5      r " S S\	\ R                  5      r " S S\	\ R                  5      r " S S\	\ R                  5      r " S S\	\ R                  5      r " S S\	\ R                  5      r " S S\	\ R                  5      r " S S\\ R                  5      r " S  S!\\ R                  5      r " S" S#\5      r " S$ S%\5      r " S& S'\5      r " S( S)\ R                  5      r\S*:X  a  \ R:                  " 5         gg)+    N)repeat)deque)length_hint
   c                       \ rS rSrS rSrg)TestInvariantWithoutMutations4   c                 P   U R                   n[        [        S[        S-   5      5       H)  nU R	                  [        U5      U5        [        U5        M+     U R	                  [        U5      S5        U R                  [        [        U5        U R	                  [        U5      S5        g N   r   )	itreversedrangenassertEqualr   nextassertRaisesStopIteration)selfr   is      :/opt/python-3.13.8/usr/lib/python3.13/test/test_iterlen.pytest_invariant,TestInvariantWithoutMutations.test_invariant6   s{    WW%1Q3-(A[_a0H ) 	R!,-r2R!,     N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r   r   4   s    -r   r   c                       \ rS rSrS rSrg)TestTemporarilyImmutable?   c                 @   U R                   nU R                  [        U5      [        5        [	        U5        U R                  [        U5      [        S-
  5        U R                  5         U R                  [        [        U5        U R                  [        U5      S5        g r   )r   r   r   r   r   mutater   RuntimeError)r   r   s     r   test_immutable_during_iteration8TestTemporarilyImmutable.test_immutable_during_iterationA   so     WWR!,RR!A#.,b1R!,r   r   N)r   r   r   r   r'   r    r   r   r   r"   r"   ?   s    
-r   r"   c                       \ rS rSrS rSrg)
TestRepeatO   c                 .    [        S [        5      U l        g N)r   r   r   r   s    r   setUpTestRepeat.setUpQ   s    q/r   r   Nr   r   r   r   r/   r    r   r   r   r*   r*   O   s    "r   r*   c                       \ rS rSrS rSrg)
TestXrangeT   c                 >    [        [        [        5      5      U l        g r-   iterr   r   r   r.   s    r   r/   TestXrange.setUpV       uQx.r   r1   Nr2   r   r   r   r4   r4   T   s    !r   r4   c                       \ rS rSrS rSrg)TestXrangeCustomReversedY   c                 >    [        [        [        5      5      U l        g r-   r   r   r   r   r.   s    r   r/   TestXrangeCustomReversed.setUp[       58$r   r1   Nr2   r   r   r   r<   r<   Y   s    %r   r<   c                       \ rS rSrS rSrg)	TestTuple^   c                 P    [        [        [        [        5      5      5      U l        g r-   )r8   tupler   r   r   r.   s    r   r/   TestTuple.setUp`   s    uU1X'r   r1   Nr2   r   r   r   rC   rC   ^   s    (r   rC   c                       \ rS rSrS rSrg)	TestDequee   c                 v    [        [        [        5      5      n[        U5      U l        UR
                  U l        g r-   )r   r   r   r8   r   popr%   r   ds     r   r/   TestDeque.setUpg   s%    %(Oq'eer   r   r%   Nr2   r   r   r   rI   rI   e       r   rI   c                       \ rS rSrS rSrg)TestDequeReversedl   c                 v    [        [        [        5      5      n[        U5      U l        UR
                  U l        g r-   )r   r   r   r   r   rL   r%   rM   s     r   r/   TestDequeReversed.setUpn   s%    %(O1+eer   rP   Nr2   r   r   r   rS   rS   l   rQ   r   rS   c                       \ rS rSrS rSrg)TestDictKeyss   c                     [         R                  [        [        5      5      n[	        U5      U l        UR                  U l        g r-   )dictfromkeysr   r   r8   r   popitemr%   rM   s     r   r/   TestDictKeys.setUpu   s*    MM%(#q'iir   rP   Nr2   r   r   r   rX   rX   s        r   rX   c                       \ rS rSrS rSrg)TestDictItemsz   c                     [         R                  [        [        5      5      n[	        UR                  5       5      U l        UR                  U l        g r-   )	r[   r\   r   r   r8   itemsr   r]   r%   rM   s     r   r/   TestDictItems.setUp|   s0    MM%(#qwwy/iir   rP   Nr2   r   r   r   ra   ra   z   r_   r   ra   c                       \ rS rSrS rSrg)TestDictValues   c                     [         R                  [        [        5      5      n[	        UR                  5       5      U l        UR                  U l        g r-   )	r[   r\   r   r   r8   valuesr   r]   r%   rM   s     r   r/   TestDictValues.setUp   s1    MM%(#qxxz"iir   rP   Nr2   r   r   r   rg   rg      r_   r   rg   c                       \ rS rSrS rSrg)TestSet   c                 v    [        [        [        5      5      n[        U5      U l        UR
                  U l        g r-   )setr   r   r8   r   rL   r%   rM   s     r   r/   TestSet.setUp   s%    aMq'eer   rP   Nr2   r   r   r   rm   rm      rQ   r   rm   c                        \ rS rSrS rS rSrg)TestList   c                 >    [        [        [        5      5      U l        g r-   r7   r.   s    r   r/   TestList.setUp   r:   r   c                    [        [        [        5      5      n[        U5      n[	        U5        [	        U5        U R                  [        U5      [        S-
  5        UR                  [        5        U R                  [        U5      [        S-
  5        / USS & U R                  [        U5      S5        U R                  [        U5      / 5        UR                  [        S5      5        U R                  [        U5      S5        g N   r   r      )	listr   r   r8   r   r   r   appendextendr   rN   r   s      r   test_mutationTestList.test_mutation   s    qN!WRRR!a%0	R!a%0!"R!,b2&	rR!,r   r1   Nr   r   r   r   r/   r   r    r   r   r   rs   rs      s    !-r   rs   c                        \ rS rSrS rS rSrg)TestListReversed   c                 >    [        [        [        5      5      U l        g r-   r?   r.   s    r   r/   TestListReversed.setUp   rA   r   c                    [        [        [        5      5      n[        U5      n[	        U5        [	        U5        U R                  [        U5      [        S-
  5        UR                  [        5        U R                  [        U5      [        S-
  5        / USS & U R                  [        U5      S5        U R                  [        U5      / 5        UR                  [        S5      5        U R                  [        U5      S5        g rx   )	r{   r   r   r   r   r   r   r|   r}   r~   s      r   r   TestListReversed.test_mutation   s    qNa[RRR!a%0	R!a%0!"R!,b2&	rR!,r   r1   Nr   r   r   r   r   r      s    %-r   r   c                        \ rS rSrS rS rSrg)BadLen   c                 *    [        [        S5      5      $ Nr   r8   r   r.   s    r   __iter__BadLen.__iter__       E"Ir   c                     [        S5      eNhellor&   r.   s    r   __len__BadLen.__len__       7##r   r   N)r   r   r   r   r   r   r    r   r   r   r   r          $r   r   c                        \ rS rSrS rS rSrg)BadLengthHint   c                 *    [        [        S5      5      $ r   r   r.   s    r   r   BadLengthHint.__iter__   r   r   c                     [        S5      er   r   r.   s    r   __length_hint__BadLengthHint.__length_hint__   r   r   r   Nr   r   r   r   r   r   r    r   r   r   r   r      r   r   r   c                        \ rS rSrS rS rSrg)NoneLengthHint   c                 *    [        [        S5      5      $ r   r   r.   s    r   r   NoneLengthHint.__iter__   r   r   c                     [         $ r-   )NotImplementedr.   s    r   r   NoneLengthHint.__length_hint__   s    r   r   Nr   r   r   r   r   r      s    r   r   c                        \ rS rSrS rS rSrg)TestLengthHintExceptions   c                     U R                  [        [        [        5       5        U R                  [        [        [	        5       5        U R                  [        / R
                  [        5       5        U R                  [        / R
                  [	        5       5        [        [        S5      5      nU R                  [        UR
                  [        5       5        U R                  [        UR
                  [	        5       5        g r   )r   r&   r{   r   r   r}   	bytearrayr   )r   bs     r   test_issue1242657*TestLengthHintExceptions.test_issue1242657   s    ,fh7,mo>,		68<,		=?CeBi ,&(;,-/Br   c                 n    U R                  [        [        5       5      [        [        S5      5      5        g r   )r   r{   r   r   r.   s    r   test_invalid_hint*TestLengthHintExceptions.test_invalid_hint   s"    n./eBiAr   r   N)r   r   r   r   r   r   r    r   r   r   r   r      s    CBr   r   __main__)unittest	itertoolsr   collectionsr   operatorr   r   r   r"   TestCaser*   r4   r<   rC   rI   rS   rX   ra   rg   rm   rs   r   objectr   r   r   r   r   mainr   r   r   <module>r      s|  X     	- 	--< - ".0A0A "
!.0A0A !
%<h>O>O %
(-x/@/@ (((*;*; 0(2C2C  +X->->   ,h.?.?   -x/@/@  &(9(9 -,h.?.? -(-4h6G6G -,$V $$F $V Bx00 B  zMMO r   