
    <e|!                     *   d dl Z d dlmZ d dlZej        Z G d d          Z G d de          Z G d de j	                  Z
 G d	 d
          Z G d dee j	                  Z G d d          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 j	                  Z G d de j	                  Zedk    r e j                     dS dS )    N)supportc                       e Zd Zd ZdS )newstylec                     | j         S N)indselfs    &/usr/lib/python3.11/test/test_index.py	__index__znewstyle.__index__   s	    x    N__name__
__module____qualname__r    r   r   r   r      s#            r   r   c                       e Zd Zd ZdS )TrapIntc                      t          |           S r   )intr	   s    r   r   zTrapInt.__index__   s    4yyr   Nr   r   r   r   r   r   
   s#            r   r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
BaseTestCasec                 R    t                      | _        t                      | _        d S r   )r   onr	   s    r   setUpzBaseTestCase.setUp   s    r   c                     d| j         _        d| j        _        |                     t	          j        | j                   d           |                     t	          j        | j                  d           d S N   )r   r   r   assertEqualoperatorindexr	   s    r   
test_basiczBaseTestCase.test_basic   s^    

//444//33333r   c                    d| j         _        d| j        _        t          | j         | j         | j                   }t          ddd          }|                     |                    | j                   |                    d                     t          | j        | j        | j                  }t          ddd          }|                     |                    | j                  |                    d                     d S )N   r    )r   r   r   slicer!   indices)r
   slc	check_slcs      r   
test_slicezBaseTestCase.test_slice   s    

DFDFDF++!QNN	TV,,i.?.?.B.BCCCDFDFDF++!QNN	TV,,i.?.?.B.BCCCCCr   c                 ,   d| j         _        d| j        _        |                     d                                d           |                     d                                 d           |                     | j                                         d           |                     | j                                        d           |                     d                                d           |                     d                                d	           d S )
N            iTr&   Fr   )r   r   r   r!   r   r	   s    r   test_wrapperszBaseTestCase.test_wrappers#   s    

+++!,,.."---))++Q///))++Q///))1---**A.....r   c                 B   t          t          d                    }|                     |t          d          t          d                   |dd                    |                     t	          t                                                    d          d           d S )N
   r.   r   )r   r   r&   )listranger!   r   r'   r(   )r
   rs     r   test_subclasseszBaseTestCase.test_subclasses-   s}    rOO71::gbkk12AadG<<<wyy))11!44g>>>>>r   c                    d| j         _        d| j        _        |                     t          t
          j        | j                    |                     t          t
          j        | j                   |                     t          t          | j                   j        d           |                     t          t          | j                  j        d           d S )Ndumbbadr   )	r   r   r   assertRaises	TypeErrorr"   r#   r'   r(   r	   s    r   
test_errorzBaseTestCase.test_error2   s    

)X^TV<<<)X^TV<<<)U46]]%:A>>>)U46]]%:A>>>>>r   c                 :    G d dt                     } |d          }|                                }t          j        |          }|                     |d           |                     |d           |                     t          |          t                      d S )Nc                       e Zd Zd ZdS )8BaseTestCase.test_int_subclass_with_index.<locals>.MyIntc                 @    t          t          |                     dz   S )Nr&   )r   strr	   s    r   r   zBBaseTestCase.test_int_subclass_with_index.<locals>.MyInt.__index__>   s    3t99~~))r   Nr   r   r   r   MyIntr@   =   s#        * * * * *r   rC   r0      )r   r   r"   r#   r!   assertIstype)r
   rC   my_intdirect_indexoperator_indexs        r   test_int_subclass_with_indexz)BaseTestCase.test_int_subclass_with_index:   s    	* 	* 	* 	* 	*C 	* 	* 	* q''))!//q)))+++d<((#.....r   c                 z    G d d          } G d dt                     } |            }|                     t                    5  t          j        |          }d d d            n# 1 swxY w Y   |                     |d            |            }t          j        |          }|                     |d           d S )Nc                       e Zd Zd ZdS )<BaseTestCase.test_index_returns_int_subclass.<locals>.BadIntc                     dS NTr   r	   s    r   r   zFBaseTestCase.test_index_returns_int_subclass.<locals>.BadInt.__index__L       tr   Nr   r   r   r   BadIntrM   K   #            r   rQ   c                       e Zd Zd ZdS )=BaseTestCase.test_index_returns_int_subclass.<locals>.BadInt2c                     dS rO   r   r	   s    r   r   zGBaseTestCase.test_index_returns_int_subclass.<locals>.BadInt2.__index__P   rP   r   Nr   r   r   r   BadInt2rT   O   rR   r   rV   r&   r   )r   assertWarnsDeprecationWarningr"   r#   r!   )r
   rQ   rV   bad_intr   s        r   test_index_returns_int_subclassz,BaseTestCase.test_index_returns_int_subclassJ   s&   	 	 	 	 	 	 	 		 	 	 	 	c 	 	 	 &((011 	( 	(w''A	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(A'))N7##As   A&&A*-A*N)r   r   r   r   r$   r+   r1   r7   r=   rJ   rZ   r   r   r   r   r      s          4 4 4D D D/ / /? ? ?
? ? ?/ / /     r   r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
SeqTestCasec                     t                      | _        t                      | _        t                      | _        t                      | _        d S r   )r   r   r   o2n2r	   s    r   r   zSeqTestCase.setUp`   s2    ****r   c                     d| j         _        d| j        _        |                     | j        | j                 | j        d                    |                     | j        | j                  | j        d                    d S r   r   r   r   r!   seqr	   s    r   
test_indexzSeqTestCase.test_indexf   sd    

$&)48A;777$&)48B<88888r   c                 N   d| j         _        d| j        _        d| j        _        d| j        _        |                     | j        | j         | j                 | j        dd                    |                     | j        | j        | j                 | j        dd                    d S )Nr&      r    r-   )r   r   r^   r   r_   r!   rb   r	   s    r   r+   zSeqTestCase.test_slicel   s    

$&.148AaC=AAA$&.148AaC=AAAAAr   c                    t          | j                  }t          |dz            | j        _        |dz   | j        _        |                     | j        | j        d          | j        dd                    |                     | j        d | j                 | j                   |                     | j        | j        d          | j        dd                    |                     | j        d | j                 | j                   | dz
  | j        _        t          |dz             | j        _        |                     | j        | j        d          | j                   |                     | j        d | j                 | j        dd                    |                     | j        | j        d          | j                   |                     | j        d | j                 | j        dd                    d S )Ng      ?r    r   )	lenrb   r   r   r   r   r!   r^   r_   )r
   seqlens     r   test_slice_bug7532zSeqTestCase.test_slice_bug7532t   s   TX#&&
aZ
$&''*DHQqSM:::'46'*DH555$&''*DHQqSM:::'46'*DH555gk6C<((($'((+TX666(47(+TXac];;;$'((+TX666(47(+TXac];;;;;r   c                    d| j         _        d| j        _        |                     | j        | j         z  | j        dz             |                     | j        | j        z  | j        dz             |                     | j         | j        z  | j        dz             |                     | j        | j        z  | j        dz             d S )Nre   r    ra   r	   s    r   test_repeatzSeqTestCase.test_repeat   s    

DF*DHqL999DF*DHqL999$(*DHqL999$(*DHqL99999r   c                    d| j         _        d| j        _        |                     | j                            | j                   | j        d                    |                     | j                            | j                   | j        dz             |                     | j                            | j                   | j        dz             |                     | j                            | j                  | j        d                    |                     | j                            | j                  | j        dz             |                     | j                            | j                  | j        dz             d S )Nr-   r.   )r   r   r   r!   rb   __getitem____mul____rmul__r	   s    r   r1   zSeqTestCase.test_wrappers   s.   

--df55tx{CCC))$&1148a<@@@**4622DHqLAAA--df55tx{CCC))$&1148a<@@@**4622DHqLAAAAAr   c                 v    |                      | j        t                               | j        d                    d S )Nr   )r!   rb   r   r	   s    r   r7   zSeqTestCase.test_subclasses   s/    ')),dhqk:::::r   c                 R   d| j         _        d| j        _        d }|                     t          || j         |            |                     t          || j        |            d }|                     t          || j         |            |                     t          || j        |            d S )Nr9   r:   c                     |j         |          S r   rb   xobjs     r   <lambda>z(SeqTestCase.test_error.<locals>.<lambda>   s    #'!* r   c                      |j         | d          S r   rs   rt   s     r   rw   z(SeqTestCase.test_error.<locals>.<lambda>   s    #'!""+ r   )r   r   r   r;   r<   )r
   indexobjsliceobjs      r   r=   zSeqTestCase.test_error   s    

,,)Xtvt<<<)Xtvt<<<--)Xtvt<<<)Xtvt<<<<<r   N)r   r   r   r   rc   r+   ri   rk   r1   r7   r=   r   r   r   r\   r\   ]   s          9 9 9B B B< < <: : :B B B; ; ;= = = = =r   r\   c                   "    e Zd Zg dZd Zd ZdS )ListTestCaser   r3         (   2   c                    d| j         _        d| j        _        t          d          }|| j         = || j        = d|| j         <   d|| j        <   |                     |t          d                     g d}|                    | j        d           |                     |g d	           |                    | j                   |                     |g d
           d S )Nr   r    zab!cdefghi!jXY
abYdefghXj)r.   r/   r0   rD   	   r3      here)r.   r/   r   rD   r   r3   r   )r.   r/   rD   r   r3   r   )r   r   r   r4   r!   __setitem____delitem__)r
   lsts     r   test_setdelitemzListTestCase.test_setdelitem   s    

>""KKDFDFd<00111%%%''':::;;;22233333r   c                 j   d| j         _        d| j        _        ddg}|| j         z  }|                     |g d           || j        z  }|                     |g ddz             g d}|                    | j                  }|                     ||           |                     |g ddz             d S )Nr    re   r/   r-   )r/   r-   r/   r-   )r.   r/   r0   rD   r   r   )r   r   r   r!   __imul__rE   )r
   r   l2s      r   test_inplace_repeatz ListTestCase.test_inplace_repeat   s    

!ftvlll+++tvlllQ.///!!!\\$&!!b#111A566666r   N)r   r   r   rb   r   r   r   r   r   r|   r|      s=        


C4 4 4 7 7 7 7 7r   r|   c                   6    e Zd Zd Zd Zd Zd Zd ZeZd Z	dS )NewSeqc                 .    t          |          | _        d S r   )r4   _list)r
   iterables     r   __init__zNewSeq.__init__   s    (^^


r   c                 *    t          | j                  S r   )reprr   r	   s    r   __repr__zNewSeq.__repr__   s    DJr   c                     | j         |k    S r   r   )r
   others     r   __eq__zNewSeq.__eq__   s    zU""r   c                 *    t          | j                  S r   )rg   r   r	   s    r   __len__zNewSeq.__len__   s    4:r   c                 <    |                      | j        |z            S r   )	__class__r   r
   r   s     r   rn   zNewSeq.__mul__   s    ~~djl+++r   c                     | j         |         S r   r   )r
   r#   s     r   rm   zNewSeq.__getitem__   s    z%  r   N)
r   r   r   r   r   r   r   rn   ro   rm   r   r   r   r   r      ss        $ $ $     # # #  , , ,H! ! ! ! !r   r   c                       e Zd ZdZdS )TupleTestCaser}   Nr   r   r   rb   r   r   r   r   r      s        
CCCr   r   c                   $    e Zd Z ed          ZdS )ByteArrayTestCase   this is a testN)r   r   r   	bytearrayrb   r   r   r   r   r      s        
)%
&
&CCCr   r   c                       e Zd ZdZdS )BytesTestCaser   Nr   r   r   r   r   r      s        
CCCr   r   c                       e Zd ZdZdS )StringTestCasezthis is a testNr   r   r   r   r   r      s        
CCCr   r   c                   $    e Zd Z ed          ZdS )NewSeqTestCaser}   N)r   r   r   r   rb   r   r   r   r   r      s        
&#
$
$CCCr   r   c                       e Zd Zd ZdS )RangeTestCasec                     t                      }d|_        |                     t          dd          |         d           |                     t          dd                              |          d           d S )Nr.   r&   r~   r/   )r   r   r!   r5   rm   r   s     r   
test_rangezRangeTestCase.test_range   sf    JJq"a!,,,q"11!44a88888r   N)r   r   r   r   r   r   r   r   r      s#        9 9 9 9 9r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )OverflowTestCasec                 4    ddz  | _         | j          | _        d S )Nr    d   )posnegr	   s    r   r   zOverflowTestCase.setUp   s    c6H9r   c                     |                      | j                                        | j                   |                      | j                                        | j                   d S r   )r!   r   r   r   r	   s    r   test_large_longsz!OverflowTestCase.test_large_longs   sT    ++--tx888++--tx88888r   c                     G d d          } |            }|                      || j                 | j                   |                      || j                 | j                   |                      || j        | j                                     t                    dt          df           |                      || j        | j        d                             t                    dt          df           d S )Nc                       e Zd Zd Zd ZdS ).OverflowTestCase.test_getitem.<locals>.GetItemc                     J d            )NFz__len__ should not be invokedr   r	   s    r   r   z6OverflowTestCase.test_getitem.<locals>.GetItem.__len__  s    =====r   c                     |S r   r   )r
   keys     r   rm   z:OverflowTestCase.test_getitem.<locals>.GetItem.__getitem__  s    
r   N)r   r   r   r   rm   r   r   r   GetItemr      s2        > > >    r   r   r   r&   )r!   r   r   r(   maxsize)r
   r   ru   s      r   test_getitemzOverflowTestCase.test_getitem   s    	 	 	 	 	 	 	 	
 GII48dh///48dh///48DH,-55g>>Wa	* 	* 	*48DHQ./77@@Wa	* 	* 	* 	* 	*r   c                                            t           fd                                 t           fd           d S )Nc                      d j         z  S Na)r   r	   s   r   rw   z7OverflowTestCase.test_sequence_repeat.<locals>.<lambda>      tx r   c                      d j         z  S r   )r   r	   s   r   rw   z7OverflowTestCase.test_sequence_repeat.<locals>.<lambda>  r   r   )r;   OverflowErrorr	   s   `r   test_sequence_repeatz%OverflowTestCase.test_sequence_repeat  sI    -)?)?)?)?@@@-)?)?)?)?@@@@@r   N)r   r   r   r   r   r   r   r   r   r   r   r      sU          9 9 9* * *A A A A Ar   r   __main__)unittesttestr   r"   MAX_Py_ssize_tr   r   r   r   TestCaser   r\   r|   r   r   r   r   r   r   r   r   r   mainr   r   r   <module>r      s          

            c   L L L L L8$ L L L^C= C= C= C= C= C= C= C=L7 7 7 7 7; 1 7 7 7D! ! ! ! ! ! ! !,    K!2   ' ' ' ' 'X%6 ' ' '    K!2       [("3   % % % % %[("3 % % %
9 9 9 9 9H% 9 9 9A A A A Ax( A A A: zHMOOOOO r   