o
    HXh/                     @   s  d dl Z d dlmZ d dlZG dd dZG dd dZdd ejejfd	d ejej	fd
d ej
ejfdd ejejfdd ejejfdd ejejfdZG dd de jZG dd de jZG dd d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                   @   sT   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d ZdS )Numberc                 C   
   || _ d S Nx)selfr    r	   ;/opt/python-3.10.19/usr/lib/python3.10/test/test_richcmp.py__init__
      
zNumber.__init__c                 C   s
   | j |k S r   r   r   otherr	   r	   r
   __lt__   r   zNumber.__lt__c                 C   s
   | j |kS r   r   r   r	   r	   r
   __le__   r   zNumber.__le__c                 C   s
   | j |kS r   r   r   r	   r	   r
   __eq__   r   zNumber.__eq__c                 C   s
   | j |kS r   r   r   r	   r	   r
   __ne__   r   zNumber.__ne__c                 C   s
   | j |kS r   r   r   r	   r	   r
   __gt__   r   zNumber.__gt__c                 C   s
   | j |kS r   r   r   r	   r	   r
   __ge__   r   zNumber.__ge__c                 C   
   t d)Nz%Number.__cmp__() should not be calledr   Z
TestFailedr   r	   r	   r
   __cmp__   r   zNumber.__cmp__c                 C      d| j f S )Nz
Number(%r)r   r   r	   r	   r
   __repr__"      zNumber.__repr__N)__name__
__module____qualname__r   r   r   r   r   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	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d Zdd Zd	S )Vectorc                 C   r   r   data)r   r!   r	   r	   r
   r   '   r   zVector.__init__c                 C   s
   t | jS r   )lenr!   r   r	   r	   r
   __len__*   r   zVector.__len__c                 C   s
   | j | S r   r    )r   ir	   r	   r
   __getitem__-   r   zVector.__getitem__c                 C   s   || j |< d S r   r    )r   r$   vr	   r	   r
   __setitem__0   s   zVector.__setitem__Nc                 C   s   t d)Nz*Vectors cannot be used in Boolean contexts)	TypeErrorr   r	   r	   r
   __bool__5   s   zVector.__bool__c                 C   r   )Nz%Vector.__cmp__() should not be calledr   r   r	   r	   r
   r   8   r   zVector.__cmp__c                 C   r   )Nz
Vector(%r)r    r   r	   r	   r
   r   ;   r   zVector.__repr__c                 C       t dd t| j| |D S )Nc                 S   s   g | ]\}}||k qS r	   r	   .0abr	   r	   r
   
<listcomp>?       z!Vector.__lt__.<locals>.<listcomp>r   zipr!   _Vector__castr   r	   r	   r
   r   >       zVector.__lt__c                 C   r*   )Nc                 S   s   g | ]\}}||kqS r	   r	   r+   r	   r	   r
   r/   B   r0   z!Vector.__le__.<locals>.<listcomp>r1   r   r	   r	   r
   r   A   r4   zVector.__le__c                 C   r*   )Nc                 S   s   g | ]\}}||kqS r	   r	   r+   r	   r	   r
   r/   E   r0   z!Vector.__eq__.<locals>.<listcomp>r1   r   r	   r	   r
   r   D   r4   zVector.__eq__c                 C   r*   )Nc                 S   s   g | ]\}}||kqS r	   r	   r+   r	   r	   r
   r/   H   r0   z!Vector.__ne__.<locals>.<listcomp>r1   r   r	   r	   r
   r   G   r4   zVector.__ne__c                 C   r*   )Nc                 S   s   g | ]\}}||kqS r	   r	   r+   r	   r	   r
   r/   K   r0   z!Vector.__gt__.<locals>.<listcomp>r1   r   r	   r	   r
   r   J   r4   zVector.__gt__c                 C   r*   )Nc                 S   s   g | ]\}}||kqS r	   r	   r+   r	   r	   r
   r/   N   r0   z!Vector.__ge__.<locals>.<listcomp>r1   r   r	   r	   r
   r   M   r4   zVector.__ge__c                 C   s.   t |tr|j}t| jt|krtd|S )Nz*Cannot compare vectors of different length)
isinstancer   r!   r"   
ValueErrorr   r	   r	   r
   __castP   s
   
zVector.__cast)r   r   r   r   r#   r%   r'   __hash__r)   r   r   r   r   r   r   r   r   r3   r	   r	   r	   r
   r   %   s     r   c                 C   s   | |k S r   r	   r-   r.   r	   r	   r
   <lambda>X       r:   c                 C   s   | |kS r   r	   r9   r	   r	   r
   r:   Y   r;   c                 C   s   | |kS r   r	   r9   r	   r	   r
   r:   Z   r;   c                 C   s   | |kS r   r	   r9   r	   r	   r
   r:   [   r;   c                 C   s   | |kS r   r	   r9   r	   r	   r
   r:   \   r;   c                 C   s   | |kS r   r	   r9   r	   r	   r
   r:   ]   r;   )ltleeqnegtgec                   @   $   e Zd Zdd Zdd Zdd ZdS )
VectorTestc                 G   s&   t | D ]}| j||g|R   qd S r   )opmapassertRaises)r   erroropnameargsopr	   r	   r
   	checkfailb   s   zVectorTest.checkfailc                 C   sX   t | D ]%}|||}| t|t| tt|D ]}| || || u  qqd S r   )rD   assertEqualr"   range
assertTrue)r   rG   r-   r.   expresrI   realresr$   r	   r	   r
   
checkequalf   s   
zVectorTest.checkequalc              
   C   s$  t td}t td}tD ]
}| t||| qttd}ddg }|t |ft ||ft |t |fg}|D ]V\}}| d||g d | d||g d | d||g d	 | d
||g d | d||g d | d||g d t D ]}|D ]}| t	t
||| qq}q9d S )N         r<   )TTFFFr=   )TTTFFr>   )FFTFFr?   )TTFTTr@   )FFFTTrA   )FFTTT)r   rL   rD   rJ   r6   listrP   valuesrE   r(   bool)r   r-   r.   rG   rH   opsrI   r	   r	   r
   
test_mixedo   s(   
&zVectorTest.test_mixedN)r   r   r   rJ   rP   rX   r	   r	   r	   r
   rC   `   s    	rC   c                   @   rB   )
NumberTestc              
   C   s   t dD ]H}t dD ]A}ttfD ]:}ttfD ]3}||  kr"tkr%n nq||}||}t D ]}|D ]}|||}	|||}
| |	|
 q5q1qqq
qd S )NrR   )rL   intr   rD   rU   rK   )r   r-   r.   typeatypebtatbrW   rI   ZrealoutcomeZtestoutcomer	   r	   r
   
test_basic   s&   

zNumberTest.test_basicc                 C   sb   t tfD ]*}t tfD ]#}||}||}t| D ]}	|	||}
t|
d|
}
| |
|u  qq
qd S )Nr   )rZ   r   rD   getattrrM   )r   rG   r-   r.   rN   r[   r\   r]   r^   rI   rO   r	   r	   r
   
checkvalue   s   
zNumberTest.checkvaluec                 C   s$  |  dddd |  dddd |  dddd |  dddd |  dddd |  d	ddd |  ddd
d |  ddd
d |  ddd
d |  ddd
d |  ddd
d |  d	dd
d |  dd
dd |  dd
dd |  dd
dd |  dd
dd |  dd
dd |  d	d
dd d S )Nr<   r   Fr=   Tr>   r?   r@   rA      )ra   r   r	   r	   r
   test_values   s$   zNumberTest.test_valuesN)r   r   r   r_   ra   rc   r	   r	   r	   r
   rY      s    
rY   c                   @   s2   e Zd Zdd Zdd Zejdd Zdd Zd	S )
MiscTestc                    sR   G  fddd}| }| }  ||k d   ||kd   ||kd d S )Nc                       sH   e Zd Zdd Zdd Zdd Z fddZ fd	d
Z fddZdS )z&MiscTest.test_misbehavin.<locals>.Misbc                 S      dS Nr   r	   Zself_r   r	   r	   r
   r          z-MiscTest.test_misbehavin.<locals>.Misb.__lt__c                 S   re   rf   r	   rg   r	   r	   r
   r      rh   z-MiscTest.test_misbehavin.<locals>.Misb.__gt__c                 S   re   rf   r	   rg   r	   r	   r
   r      rh   z-MiscTest.test_misbehavin.<locals>.Misb.__eq__c                         d d S NzThis shouldn't happenZfailrg   r   r	   r
   r          z-MiscTest.test_misbehavin.<locals>.Misb.__le__c                    ri   rj   rk   rg   r   r	   r
   r      rl   z-MiscTest.test_misbehavin.<locals>.Misb.__ge__c                    ri   rj   rk   rg   r   r	   r
   r      rl   z-MiscTest.test_misbehavin.<locals>.Misb.__ne__N)	r   r   r   r   r   r   r   r   r   r	   r   r	   r
   Misb   s    rm   r   )rK   )r   rm   r-   r.   r	   r   r
   test_misbehavin   s   zMiscTest.test_misbehavinc                    sV   dd l }G dd dt G  fddd}dd }||jfD ]
}|  ||  qd S )Nr   c                   @      e Zd ZdS )zMiscTest.test_not.<locals>.ExcNr   r   r   r	   r	   r	   r
   Exc       rq   c                          e Zd Z fddZdS )zMiscTest.test_not.<locals>.Badc                        r   r	   r   rq   r	   r
   r)         z'MiscTest.test_not.<locals>.Bad.__bool__N)r   r   r   r)   r	   ru   r	   r
   Bad       rw   c                 S   s
   |   d S r   r	   )Zbadr	   r	   r
   do   r   zMiscTest.test_not.<locals>.do)operator	Exceptionnot_rE   )r   rz   rw   ry   funcr	   ru   r
   test_not   s   zMiscTest.test_notc                 C   s~  ddl m} | }| }|| || | ttj|| | ttj|| | ttj|| | ttj	|| | ttj
|| | ttj|| |d | ||k  | ||k | ttj|| | ttj	|| | ttj
|| | ttj|| |d | ttj|| | ttj|| |dd |dd | ||k  | ||k | ||k  d S )Nr   )UserList         )collectionsr   appendrE   RecursionErrorrz   r>   r?   r<   r=   r@   rA   rM   insert)r   r   r-   r.   r	   r	   r
   test_recursion   s4   



zMiscTest.test_recursionc                    s  G dd d dd dfdd dfdd d	fd
d dfdd dfdd dfdd dfdd dfdd dfdd df fdddf fdddf fdddfg}t |D ]7\}}| j|d% | t|d  |d    W d    n1 sww   Y  W d    n1 sw   Y  qTd S )!Nc                   @   ro   )z-MiscTest.test_exception_message.<locals>.SpamNrp   r	   r	   r	   r
   Spam  rr   r   c                   S      dd k S N*   r	   r	   r	   r	   r
   r:     r;   z1MiscTest.test_exception_message.<locals>.<lambda>z'<' .* of 'int' and 'NoneType'c                   S   s   d dk S r   r	   r	   r	   r	   r
   r:     r;   z'<' .* of 'NoneType' and 'int'c                   S   s   dd kS r   r	   r	   r	   r	   r
   r:     r;   z'>' .* of 'int' and 'NoneType'c                   S   r   )Nfoor	   r	   r	   r	   r
   r:     r;   z'<' .* of 'str' and 'NoneType'c                   S   s   ddkS )Nr   i  r	   r	   r	   r	   r
   r:   	  r;   z'>=' .* of 'str' and 'int'c                   S   s   dd kS r   r	   r	   r	   r	   r
   r:   
  r;   z'<=' .* of 'int' and 'NoneType'c                   S   s   dd kS r   r	   r	   r	   r	   r
   r:     r;   z'>=' .* of 'int' and 'NoneType'c                   S   s   dg k S r   r	   r	   r	   r	   r
   r:     r;   z'<' .* of 'int' and 'list'c                   S   s   dg kS )Nr	   r	   r	   r	   r	   r
   r:     r;   z'>' .* of 'tuple' and 'list'c                   S   s   d d kS r   r	   r	   r	   r	   r
   r:     r;   z$'>=' .* of 'NoneType' and 'NoneType'c                      s
     dk S r   r	   r	   r   r	   r
   r:        
 z'<' .* of 'Spam' and 'int'c                      s
   d  k S r   r	   r	   r   r	   r
   r:     r   z'<' .* of 'int' and 'Spam'c                      s       kS r   r	   r	   r   r	   r
   r:     s    z'<=' .* of 'Spam' and 'Spam')testrb   r   )	enumerateZsubTestZassertRaisesRegexr(   )r   Ztestsr$   r   r	   r   r
   test_exception_message   s0   









zMiscTest.test_exception_messageN)	r   r   r   rn   r~   r   Z
no_tracingr   r   r	   r	   r	   r
   rd      s    
 rd   c                   @      e Zd Zdd ZdS )DictTestc                 C   s   dd l }i }tdD ]}|dd ||dd < q
t| }|| i }|D ]\}}|||< q*| }|d ||< | || | || | || | ||k dD ]}	t	|	 D ]
}
| 
t|
|| q^qXd S )Nr   2   d   y              ?g      ?)r<   r=   r@   rA   )randomrL   	randrangerT   itemsshufflecopyrK   rM   rD   rE   r(   )r   r   Zimag1ar$   r   Zimag1bkr&   Zimag2rG   rI   r	   r	   r
   
test_dicts  s(   

zDictTest.test_dictsN)r   r   r   r   r	   r	   r	   r
   r     s    r   c                   @   rB   )ListTestc                 C   s   dg}|  ||k d |  ||kd |  ||kd |  ||kd |  ||kd |  ||kd ddg}|  ||k d |  ||kd |  ||kd |  ||kd |  ||kd |  ||kd d S )Nr   FT)assertIs)r   r   yr	   r	   r
   test_coverage4  s   zListTest.test_coveragec                    sT   G dd dt  G  fddd}| g}| g}td D ]
}|  ||| qd S )Nc                   @   ro   )z#ListTest.test_badentry.<locals>.ExcNrp   r	   r	   r	   r
   rq   H  rr   rq   c                       rs   )z#ListTest.test_badentry.<locals>.Badc                    rt   r   r	   r   ru   r	   r
   r   K  rv   z*ListTest.test_badentry.<locals>.Bad.__eq__N)r   r   r   r   r	   ru   r	   r
   rw   J  rx   rw   r>   )r{   rD   rE   )r   rw   r   r   rI   r	   ru   r
   test_badentryE  s   zListTest.test_badentryc                 C   sB   G dd d}| g}| g}t d D ]}| |||d qd S )Nc                   @   r   )z%ListTest.test_goodentry.<locals>.Goodc                 S   re   )NTr	   r   r	   r	   r
   r   X  rv   z,ListTest.test_goodentry.<locals>.Good.__lt__N)r   r   r   r   r	   r	   r	   r
   GoodW  s    r   r<   T)rD   r   )r   r   r   r   rI   r	   r	   r
   test_goodentryT  s   zListTest.test_goodentryN)r   r   r   r   r   r   r	   r	   r	   r
   r   2  s    r   __main__)Zunittestr   r   rz   r   r   r<   r   r=   r   r>   r   r?   r   r@   r   rA   r   rD   ZTestCaserC   rY   rd   r   r   r   mainr	   r	   r	   r
   <module>   s(   3	*5Z0