o
    HXh|!                     @   s"  d dl Z d dlmZ d dlZejZG dd dZG dd deZG dd de j	Z
G d	d
 d
ZG dd dee j	ZG dd dZG dd dee j	ZG dd dee j	ZG dd dee j	ZG dd dee j	ZG dd dee j	ZG dd de j	ZG dd de j	Zedkre   dS dS )    N)supportc                   @      e Zd Zdd ZdS )newstylec                 C   s   | j S N)indself r	   9/opt/python-3.10.19/usr/lib/python3.10/test/test_index.py	__index__   s   znewstyle.__index__N__name__
__module____qualname__r   r	   r	   r	   r
   r          r   c                   @   r   )TrapIntc                 C   s   t | S r   )intr   r	   r	   r
   r      s   zTrapInt.__index__Nr   r	   r	   r	   r
   r   
   r   r   c                   @   L   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )BaseTestCasec                 C   s   t  | _t  | _d S r   )r   onr   r	   r	   r
   setUp   s   zBaseTestCase.setUpc                 C   s<   d| j _d| j_| t| j d | t| jd d S N   )r   r   r   assertEqualoperatorindexr   r	   r	   r
   
test_basic   s   zBaseTestCase.test_basicc                 C   s   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   ZslcZ	check_slcr	   r	   r
   
test_slice   s   zBaseTestCase.test_slicec                 C   sz   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   r	   r	   r
   test_wrappers#   s   zBaseTestCase.test_wrappersc                 C   sL   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   rr	   r	   r
   test_subclasses-   s   $zBaseTestCase.test_subclassesc                 C   sd   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   r	   r	   r
   
test_error2   s   zBaseTestCase.test_errorc                 C   sV   G dd dt }|d}| }t|}| |d | |d | t|t  d S )Nc                   @   r   )z8BaseTestCase.test_int_subclass_with_index.<locals>.MyIntc                 S   s   t t| d S )Nr   )r   strr   r	   r	   r
   r   >      zBBaseTestCase.test_int_subclass_with_index.<locals>.MyInt.__index__Nr   r	   r	   r	   r
   MyInt=   r   r4   r&      )r   r   r   r   r   assertIstype)r   r4   Zmy_intZdirect_indexZoperator_indexr	   r	   r
   test_int_subclass_with_index:   s   
z)BaseTestCase.test_int_subclass_with_indexc                 C   s   G dd d}G dd dt }| }| t t|}W d    n1 s'w   Y  | |d | }t|}| |d d S )Nc                   @   r   )z<BaseTestCase.test_index_returns_int_subclass.<locals>.BadIntc                 S      dS NTr	   r   r	   r	   r
   r   L      zFBaseTestCase.test_index_returns_int_subclass.<locals>.BadInt.__index__Nr   r	   r	   r	   r
   BadIntK   r   r<   c                   @   r   )z=BaseTestCase.test_index_returns_int_subclass.<locals>.BadInt2c                 S   r9   r:   r	   r   r	   r	   r
   r   P   r;   zGBaseTestCase.test_index_returns_int_subclass.<locals>.BadInt2.__index__Nr   r	   r	   r	   r
   BadInt2O   r   r=   r   r   )r   ZassertWarnsDeprecationWarningr   r   r   )r   r<   r=   Zbad_intr   r	   r	   r
   test_index_returns_int_subclassJ   s   
z,BaseTestCase.test_index_returns_int_subclassN)r   r   r   r   r   r"   r'   r,   r1   r8   r?   r	   r	   r	   r
   r      s    

r   c                   @   r   )SeqTestCasec                 C   s$   t  | _t  | _t  | _t  | _d S r   )r   r   r   o2n2r   r	   r	   r
   r   `   s   zSeqTestCase.setUpc                 C   sH   d| j _d| j_| | j| j | jd  | | j| j  | jd  d S r   r   r   r   r   seqr   r	   r	   r
   
test_indexf   s   zSeqTestCase.test_indexc                 C   sl   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   rA   r   rB   r   rD   r   r	   r	   r
   r"   l   s   $(zSeqTestCase.test_slicec                 C   s:  t | j}t|d | j_|d | j_| | j| jd  | jdd  | | jd | j | j | | j| jd  | jdd  | | jd | j | j | d | j_t|d  | 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   )	lenrD   r   r   r   r   r   rA   rB   )r   Zseqlenr	   r	   r
   test_slice_bug7532t   s   
"""&zSeqTestCase.test_slice_bug7532c                 C   s|   d| j _d| j_| | j| j  | jd  | | j| j | jd  | | j | j | jd  | | j| j | jd  d S )NrF   r   rC   r   r	   r	   r
   test_repeat   s   zSeqTestCase.test_repeatc                 C   s   d| j _d| j_| | j| j | jd  | | j| j | jd  | | j| j | jd  | | j| j| jd  | | j| j| jd  | | j| j| jd  d S )Nr#   r$   )r   r   r   r   rD   __getitem____mul____rmul__r   r	   r	   r
   r'      s    zSeqTestCase.test_wrappersc                 C   s   |  | jt  | jd  d S )Nr   )r   rD   r   r   r	   r	   r
   r,      s   zSeqTestCase.test_subclassesc                 C   sl   d| j _d| j_dd }| t|| j |  | t|| j|  dd }| t|| j |  | t|| j|  d S )Nr-   r.   c                 S   s
   |j |  S r   rD   xobjr	   r	   r
   <lambda>      
 z(SeqTestCase.test_error.<locals>.<lambda>c                 S   s   |j | d  S r   rM   rN   r	   r	   r
   rQ      s    )r   r   r   r/   r0   )r   ZindexobjZsliceobjr	   r	   r
   r1      s   zSeqTestCase.test_errorN)r   r   r   r   rE   r"   rH   rI   r'   r,   r1   r	   r	   r	   r
   r@   ]   s    
r@   c                   @   s$   e Zd Zg dZdd Zdd ZdS )ListTestCaser   r(         (   2   c                 C   s   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YZ
abYdefghXj)r$   r%   r&   r5   	   r(      here)r$   r%   r]   r5   r[   r(   r\   )r$   r%   r5   r[   r(   r\   )r   r   r   r)   r   __setitem____delitem__)r   lstr	   r	   r
   test_setdelitem   s   

zListTestCase.test_setdelitemc                 C   s   d| j _d| j_ddg}|| j 9 }| |g d || j9 }| |g dd  g d}|| j}| || | |g dd  d S )Nr   rF   r%   r#   )r%   r#   r%   r#   )r$   r%   r&   r5   r[   r\   )r   r   r   r   __imul__r6   )r   r`   l2r	   r	   r
   test_inplace_repeat   s   

z ListTestCase.test_inplace_repeatN)r   r   r   rD   ra   rd   r	   r	   r	   r
   rS      s    rS   c                   @   s@   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZeZdd Z	dS )NewSeqc                 C   s   t || _d S r   )r)   _list)r   iterabler	   r	   r
   __init__   s   zNewSeq.__init__c                 C   
   t | jS r   )reprrf   r   r	   r	   r
   __repr__      
zNewSeq.__repr__c                 C   s
   | j |kS r   rf   )r   otherr	   r	   r
   __eq__   rl   zNewSeq.__eq__c                 C   ri   r   )rG   rf   r   r	   r	   r
   __len__   rl   zNewSeq.__len__c                 C   s   |  | j| S r   )	__class__rf   r   r   r	   r	   r
   rK      r3   zNewSeq.__mul__c                 C   s
   | j | S r   rm   )r   r   r	   r	   r
   rJ      rl   zNewSeq.__getitem__N)
r   r   r   rh   rk   ro   rp   rK   rL   rJ   r	   r	   r	   r
   re      s    re   c                   @      e Zd ZdZdS )TupleTestCaserT   Nr   r   r   rD   r	   r	   r	   r
   rt          rt   c                   @      e Zd ZedZdS )ByteArrayTestCase   this is a testN)r   r   r   	bytearrayrD   r	   r	   r	   r
   rx      r   rx   c                   @   rs   )BytesTestCasery   Nru   r	   r	   r	   r
   r{      rv   r{   c                   @   rs   )StringTestCasezthis is a testNru   r	   r	   r	   r
   r|      rv   r|   c                   @   rw   )NewSeqTestCaserT   N)r   r   r   re   rD   r	   r	   r	   r
   r}      r   r}   c                   @   r   )RangeTestCasec                 C   s>   t  }d|_| tdd| d | tdd|d d S )Nr$   r   rU   r%   )r   r   r   r*   rJ   rr   r	   r	   r
   
test_range   s   zRangeTestCase.test_rangeN)r   r   r   r   r	   r	   r	   r
   r~      s    r~   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
OverflowTestCasec                 C   s   dd | _ | j  | _d S )Nr   d   )posnegr   r	   r	   r
   r      s   
zOverflowTestCase.setUpc                 C   s,   |  | j | j |  | j | j d S r   )r   r   r   r   r   r	   r	   r
   test_large_longs      z!OverflowTestCase.test_large_longsc                 C   s   G dd d}| }|  || j | j |  || j | j |  || j| j tdtdf |  || j| jd tdtdf d S )Nc                   @   s   e Zd Zdd Zdd ZdS )z.OverflowTestCase.test_getitem.<locals>.GetItemc                 S   s   d S r   r	   r   r	   r	   r
   rp     s    z6OverflowTestCase.test_getitem.<locals>.GetItem.__len__c                 S   s   |S r   r	   )r   keyr	   r	   r
   rJ     r;   z:OverflowTestCase.test_getitem.<locals>.GetItem.__getitem__N)r   r   r   rp   rJ   r	   r	   r	   r
   GetItem   s    r   r   r   )r   r   r   r!   maxsize)r   r   rO   r	   r	   r
   test_getitem   s   zOverflowTestCase.test_getitemc                    s,     t fdd   t fdd d S )Nc                      
   d j  S Na)r   r	   r   r	   r
   rQ     rR   z7OverflowTestCase.test_sequence_repeat.<locals>.<lambda>c                      r   r   )r   r	   r   r	   r
   rQ     rR   )r/   OverflowErrorr   r	   r   r
   test_sequence_repeat  r   z%OverflowTestCase.test_sequence_repeatN)r   r   r   r   r   r   r   r	   r	   r	   r
   r      s
    r   __main__)Zunittesttestr   r   ZMAX_Py_ssize_tr   r   r   r   ZTestCaser   r@   rS   re   rt   rx   r{   r|   r}   r~   r   r   mainr	   r	   r	   r
   <module>   s(    OF"	