
    <eb                        	 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                     dS dS )+    N)repeat)deque)length_hint
   c                       e Zd Zd ZdS )TestInvariantWithoutMutationsc                    | j         }t          t          dt          dz                       D ]4}|                     t          |          |           t          |           5|                     t          |          d           |                     t          t          |           |                     t          |          d           d S N   r   )	itreversedrangenassertEqualr   nextassertRaisesStopIteration)selfr   is      (/usr/lib/python3.11/test/test_iterlen.pytest_invariantz,TestInvariantWithoutMutations.test_invariant6   s    W%1Q3--(( 	 	A[__a000HHHHR!,,,-r222R!,,,,,    N)__name__
__module____qualname__r    r   r   r   r   4   s#        - - - - -r   r   c                       e Zd Zd ZdS )TestTemporarilyImmutablec                    | j         }|                     t          |          t                     t	          |           |                     t          |          t          dz
             |                                  |                     t          t          |           |                     t          |          d           d S r
   )r   r   r   r   r   mutater   RuntimeError)r   r   s     r   test_immutable_during_iterationz8TestTemporarilyImmutable.test_immutable_during_iterationA   s     WR!,,,RR!A#...,b111R!,,,,,r   N)r   r   r   r"   r   r   r   r   r   ?   s#        
- 
- 
- 
- 
-r   r   c                       e Zd Zd ZdS )
TestRepeatc                 :    t          d t                    | _        d S 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dS )
TestXrangec                 R    t          t          t                              | _        d S r&   iterr   r   r   r'   s    r   r(   zTestXrange.setUpV       uQxx..r   Nr)   r   r   r   r+   r+   T   s#        ! ! ! ! !r   r+   c                       e Zd Zd ZdS )TestXrangeCustomReversedc                 R    t          t          t                              | _        d S r&   r   r   r   r   r'   s    r   r(   zTestXrangeCustomReversed.setUp[       588$$r   Nr)   r   r   r   r1   r1   Y   s#        % % % % %r   r1   c                       e Zd Zd ZdS )	TestTuplec                 l    t          t          t          t                                        | _        d S r&   )r.   tupler   r   r   r'   s    r   r(   zTestTuple.setUp`   s!    uU1XX''r   Nr)   r   r   r   r6   r6   ^   s#        ( ( ( ( (r   r6   c                       e Zd Zd ZdS )	TestDequec                     t          t          t                              }t          |          | _        |j        | _        d S r&   )r   r   r   r.   r   popr    r   ds     r   r(   zTestDeque.setUpg   s-    %((OOq''er   Nr)   r   r   r   r:   r:   e   #            r   r:   c                       e Zd Zd ZdS )TestDequeReversedc                     t          t          t                              }t          |          | _        |j        | _        d S r&   )r   r   r   r   r   r<   r    r=   s     r   r(   zTestDequeReversed.setUpn   s-    %((OO1++er   Nr)   r   r   r   rA   rA   l   r?   r   rA   c                       e Zd Zd ZdS )TestDictKeysc                     t                               t          t                              }t	          |          | _        |j        | _        d S r&   )dictfromkeysr   r   r.   r   popitemr    r=   s     r   r(   zTestDictKeys.setUpu   s3    MM%((##q''ir   Nr)   r   r   r   rD   rD   s   #                 r   rD   c                       e Zd Zd ZdS )TestDictItemsc                     t                               t          t                              }t	          |                                          | _        |j        | _        d S r&   )	rF   rG   r   r   r.   itemsr   rH   r    r=   s     r   r(   zTestDictItems.setUp|   s;    MM%((##qwwyy//ir   Nr)   r   r   r   rK   rK   z   rI   r   rK   c                       e Zd Zd ZdS )TestDictValuesc                     t                               t          t                              }t	          |                                          | _        |j        | _        d S r&   )	rF   rG   r   r   r.   valuesr   rH   r    r=   s     r   r(   zTestDictValues.setUp   s=    MM%((##qxxzz""ir   Nr)   r   r   r   rO   rO      rI   r   rO   c                       e Zd Zd ZdS )TestSetc                     t          t          t                              }t          |          | _        |j        | _        d S r&   )setr   r   r.   r   r<   r    r=   s     r   r(   zTestSet.setUp   s-    aMMq''er   Nr)   r   r   r   rS   rS      r?   r   rS   c                       e Zd Zd Zd ZdS )TestListc                 R    t          t          t                              | _        d S r&   r-   r'   s    r   r(   zTestList.setUp   r/   r   c                    t          t          t                              }t          |          }t	          |           t	          |           |                     t          |          t          dz
             |                    t                     |                     t          |          t          dz
             g |dd <   |                     t          |          d           |                     t          |          g            |                    t          d                     |                     t          |          d           d S N   r   r      )	listr   r   r.   r   r   r   appendextendr   r>   r   s      r   test_mutationzTestList.test_mutation   s   qNN!WWRRR!a%000	R!a%000!""R!,,,b2&&&	rR!,,,,,r   Nr   r   r   r(   ra   r   r   r   rW   rW      s2        ! ! !- - - - -r   rW   c                       e Zd Zd Zd ZdS )TestListReversedc                 R    t          t          t                              | _        d S r&   r3   r'   s    r   r(   zTestListReversed.setUp   r4   r   c                    t          t          t                              }t          |          }t	          |           t	          |           |                     t          |          t          dz
             |                    t                     |                     t          |          t          dz
             g |dd <   |                     t          |          d           |                     t          |          g            |                    t          d                     |                     t          |          d           d S rZ   )	r]   r   r   r   r   r   r   r^   r_   r`   s      r   ra   zTestListReversed.test_mutation   s   qNNa[[RRR!a%000	R!a%000!""R!,,,b2&&&	rR!,,,,,r   Nrb   r   r   r   rd   rd      s2        % % %- - - - -r   rd   c                       e Zd Zd Zd ZdS )BadLenc                 :    t          t          d                    S Nr   r.   r   r'   s    r   __iter__zBadLen.__iter__       E"II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      2          $ $ $ $ $r   rh   c                       e Zd Zd Zd ZdS )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dS )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|      s2              r   r|   c                       e Zd Zd Zd ZdS )TestLengthHintExceptionsc                 Z   |                      t          t          t                                 |                      t          t          t	                                 |                      t          g j        t                                 |                      t          g j        t	                                 t          t          d                    }|                      t          |j        t                                 |                      t          |j        t	                                 d S rj   )r   r!   r]   rh   rv   r_   	bytearrayr   )r   bs     r   test_issue1242657z*TestLengthHintExceptions.test_issue1242657   s    ,fhh777,moo>>>,	688<<<,	=??CCCeBii  ,&((;;;,-//BBBBBr   c                     |                      t          t                                t          t          d                               d S rj   )r   r]   r|   r   r'   s    r   test_invalid_hintz*TestLengthHintExceptions.test_invalid_hint   s8    n..//eBiiAAAAAr   N)r   r   r   r   r   r   r   r   r   r      s:        C C CB B B B 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                         	- 	- 	- 	- 	- 	- 	- 	-- - - - -< - - - " " " " ".0A " " "
! ! ! ! !.0A ! ! !
% % % % %<h>O % % %
( ( ( ( (-x/@ ( ( (    ((*;       0(2C            +X->               ,h.?               -x/@          &(9   - - - - -,h.? - - -(- - - - -4h6G - - -,$ $ $ $ $V $ $ $$ $ $ $ $F $ $ $    V   B B B B Bx0 B B B  zHMOOOOO r   