
    z%ib                     
   	 d dl Z d dlmZ d dlmZ d dlmZ dZ G d d      Z G d d	e      Z	 G d
 dee j                        Z G d dee j                        Z G d dee j                        Z G d dee j                        Z G d de	e j                        Z G d de	e j                        Z G d de	e j                        Z G d de	e j                        Z G d de	e j                        Z G d de	e j                        Z G d dee j                        Z G d  d!ee j                        Z G d" d#e      Z G d$ d%e      Z G d& d'e      Z G d( d)e j                        Zed*k(  r e j:                          yy)+    N)repeat)deque)length_hint
   c                       e Zd Zd Zy)TestInvariantWithoutMutationsc                 L   | j                   }t        t        dt        dz               D ](  }| j	                  t        |      |       t        |       * | j	                  t        |      d       | j                  t        t        |       | j	                  t        |      d       y N   r   )	itreversedrangenassertEqualr   nextassertRaisesStopIteration)selfr   is      E/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_iterlen.pytest_invariantz,TestInvariantWithoutMutations.test_invariant6   s    WW%1Q3-( 	A[_a0H	 	R!,-r2R!,    N)__name__
__module____qualname__r    r   r   r   r   4   s    -r   r   c                       e Zd Zd Zy)TestTemporarilyImmutablec                 @   | j                   }| j                  t        |      t               t	        |       | j                  t        |      t        dz
         | j                          | j                  t        t        |       | j                  t        |      d       y r
   )r   r   r   r   r   mutater   RuntimeError)r   r   s     r   test_immutable_during_iterationz8TestTemporarilyImmutable.test_immutable_during_iterationA   so     WWR!,RR!A#.,b1R!,r   N)r   r   r   r"   r   r   r   r   r   ?   s    
-r   r   c                       e Zd Zd Zy)
TestRepeatc                 .    t        d t              | _        y N)r   r   r   r   s    r   setUpzTestRepeat.setUpQ   s    q/r   Nr   r   r   r(   r   r   r   r$   r$   O   s    "r   r$   c                       e Zd Zd Zy)
TestXrangec                 >    t        t        t                    | _        y r&   iterr   r   r   r'   s    r   r(   zTestXrange.setUpV       uQx.r   Nr)   r   r   r   r+   r+   T   s    !r   r+   c                       e Zd Zd Zy)TestXrangeCustomReversedc                 >    t        t        t                    | _        y r&   r   r   r   r   r'   s    r   r(   zTestXrangeCustomReversed.setUp[       58$r   Nr)   r   r   r   r1   r1   Y   s    %r   r1   c                       e Zd Zd Zy)	TestTuplec                 P    t        t        t        t                          | _        y r&   )r.   tupler   r   r   r'   s    r   r(   zTestTuple.setUp`   s    uU1X'r   Nr)   r   r   r   r6   r6   ^   s    (r   r6   c                       e Zd Zd Zy)	TestDequec                 v    t        t        t                    }t        |      | _        |j
                  | _        y r&   )r   r   r   r.   r   popr    r   ds     r   r(   zTestDeque.setUpg   s%    %(Oq'eer   Nr)   r   r   r   r:   r:   e       r   r:   c                       e Zd Zd Zy)TestDequeReversedc                 v    t        t        t                    }t        |      | _        |j
                  | _        y r&   )r   r   r   r   r   r<   r    r=   s     r   r(   zTestDequeReversed.setUpn   s%    %(O1+eer   Nr)   r   r   r   rA   rA   l   r?   r   rA   c                       e Zd Zd Zy)TestDictKeysc                     t         j                  t        t                    }t	        |      | _        |j                  | _        y r&   )dictfromkeysr   r   r.   r   popitemr    r=   s     r   r(   zTestDictKeys.setUpu   s*    MM%(#q'iir   Nr)   r   r   r   rD   rD   s        r   rD   c                       e Zd Zd Zy)TestDictItemsc                     t         j                  t        t                    }t	        |j                               | _        |j                  | _        y r&   )	rF   rG   r   r   r.   itemsr   rH   r    r=   s     r   r(   zTestDictItems.setUp|   s0    MM%(#qwwy/iir   Nr)   r   r   r   rK   rK   z   rI   r   rK   c                       e Zd Zd Zy)TestDictValuesc                     t         j                  t        t                    }t	        |j                               | _        |j                  | _        y r&   )	rF   rG   r   r   r.   valuesr   rH   r    r=   s     r   r(   zTestDictValues.setUp   s1    MM%(#qxxz"iir   Nr)   r   r   r   rO   rO      rI   r   rO   c                       e Zd Zd Zy)TestSetc                 v    t        t        t                    }t        |      | _        |j
                  | _        y r&   )setr   r   r.   r   r<   r    r=   s     r   r(   zTestSet.setUp   s%    aMq'eer   Nr)   r   r   r   rS   rS      r?   r   rS   c                       e Zd Zd Zd Zy)TestListc                 >    t        t        t                    | _        y r&   r-   r'   s    r   r(   zTestList.setUp   r/   r   c                    t        t        t                    }t        |      }t	        |       t	        |       | j                  t        |      t        dz
         |j                  t               | j                  t        |      t        dz
         g |dd  | j                  t        |      d       | j                  t        |      g        |j                  t        d             | j                  t        |      d       y N   r   r      )	listr   r   r.   r   r   r   appendextendr   r>   r   s      r   test_mutationzTestList.test_mutation   s    qN!WRRR!a%0	R!a%0!"R!,b2&	rR!,r   Nr   r   r   r(   ra   r   r   r   rW   rW      s    !-r   rW   c                       e Zd Zd Zd Zy)TestListReversedc                 >    t        t        t                    | _        y r&   r3   r'   s    r   r(   zTestListReversed.setUp   r4   r   c                    t        t        t                    }t        |      }t	        |       t	        |       | j                  t        |      t        dz
         |j                  t               | j                  t        |      t        dz
         g |dd  | j                  t        |      d       | j                  t        |      g        |j                  t        d             | j                  t        |      d       y rZ   )	r]   r   r   r   r   r   r   r^   r_   r`   s      r   ra   zTestListReversed.test_mutation   s    qNa[RRR!a%0	R!a%0!"R!,b2&	rR!,r   Nrb   r   r   r   rd   rd      s    %-r   rd   c                       e Zd Zd Zd Zy)BadLenc                 *    t        t        d            S Nr   r.   r   r'   s    r   __iter__zBadLen.__iter__       E"Ir   c                     t        d      Nhellor!   r'   s    r   __len__zBadLen.__len__       7##r   N)r   r   r   rl   rr   r   r   r   rh   rh          $r   rh   c                       e Zd Zd Zd Zy)BadLengthHintc                 *    t        t        d            S rj   rk   r'   s    r   rl   zBadLengthHint.__iter__   rm   r   c                     t        d      ro   rq   r'   s    r   __length_hint__zBadLengthHint.__length_hint__   rs   r   Nr   r   r   rl   ry   r   r   r   rv   rv      rt   r   rv   c                       e Zd Zd Zd Zy)NoneLengthHintc                 *    t        t        d            S rj   rk   r'   s    r   rl   zNoneLengthHint.__iter__   rm   r   c                     t         S r&   )NotImplementedr'   s    r   ry   zNoneLengthHint.__length_hint__   s    r   Nrz   r   r   r   r|   r|      s    r   r|   c                       e Zd Zd Zd Zy)TestLengthHintExceptionsc                     | j                  t        t        t                      | j                  t        t        t	                      | j                  t        g j
                  t                      | j                  t        g j
                  t	                      t        t        d            }| j                  t        |j
                  t                      | j                  t        |j
                  t	                      y rj   )r   r!   r]   rh   rv   r_   	bytearrayr   )r   bs     r   test_issue1242657z*TestLengthHintExceptions.test_issue1242657   s    ,fh7,mo>,		68<,		=?CeBi ,&(;,-/Br   c                 n    | j                  t        t                     t        t        d                   y rj   )r   r]   r|   r   r'   s    r   test_invalid_hintz*TestLengthHintExceptions.test_invalid_hint   s"    n./eBiAr   N)r   r   r   r   r   r   r   r   r   r      s    CBr   r   __main__)unittest	itertoolsr   collectionsr   operatorr   r   r   r   TestCaser$   r+   r1   r6   r:   rA   rD   rK   rO   rS   rW   rd   objectrh   rv   r|   r   r   mainr   r   r   <module>r      s  )V     	- 	--< - ".0A0A "
!.0A0A !
%<h>O>O %
(-x/@/@ (((*;*; 0(2C2C  +X->->   ,h.?.?   -x/@/@  &(9(9 -,h.?.? -(-4h6G6G -,$V $$F $V Bx00 B  zHMMO r   