
    daf/                     z   d dl Z d dlmZ d dlZ G d d      Z G d d      Zd ej                  ej                  fd ej                  ej                  fd	 ej                  ej                  fd
 ej                  ej                  fd ej                  ej                  fd ej                   ej"                  fdZ G d de j&                        Z G d de j&                        Z G d de j&                        Z G d de j&                        Z G d de j&                        Zedk(  r e j4                          yy)    N)supportc                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)Numberc                     || _         y Nx)selfr	   s     ,/root/Python-3.12.4/Lib/test/test_richcmp.py__init__zNumber.__init__
   s	        c                      | j                   |k  S r   r   r
   others     r   __lt__zNumber.__lt__       vv~r   c                      | j                   |k  S r   r   r   s     r   __le__zNumber.__le__       vvr   c                      | j                   |k(  S r   r   r   s     r   __eq__zNumber.__eq__   r   r   c                      | j                   |k7  S r   r   r   s     r   __ne__zNumber.__ne__   r   r   c                      | j                   |kD  S r   r   r   s     r   __gt__zNumber.__gt__   r   r   c                      | j                   |k\  S r   r   r   s     r   __ge__zNumber.__ge__   r   r   c                 ,    t        j                  d      )Nz%Number.__cmp__() should not be calledr   
TestFailedr   s     r   __cmp__zNumber.__cmp__         !HIIr   c                 "    d| j                   dS )NzNumber()r   r
   s    r   __repr__zNumber.__repr__"   s    #vv((r   N)__name__
__module____qualname__r   r   r   r   r   r   r   r!   r&    r   r   r   r      s0    J)r   r   c                   d    e Zd Zd Zd Zd Zd ZdZd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zy)Vectorc                     || _         y r   data)r
   r/   s     r   r   zVector.__init__'   s	    	r   c                 ,    t        | j                        S r   )lenr/   r%   s    r   __len__zVector.__len__*   s    499~r   c                      | j                   |   S r   r.   )r
   is     r   __getitem__zVector.__getitem__-   s    yy|r   c                 "    || j                   |<   y r   r.   )r
   r4   vs      r   __setitem__zVector.__setitem__0   s    		!r   Nc                     t        d      )Nz*Vectors cannot be used in Boolean contexts)	TypeErrorr%   s    r   __bool__zVector.__bool__5   s    DEEr   c                 ,    t        j                  d      )Nz%Vector.__cmp__() should not be calledr   r   s     r   r!   zVector.__cmp__8   r"   r   c                 "    d| j                   dS )NzVector(r$   r.   r%   s    r   r&   zVector.__repr__;   s    #yy++r   c                     t        t        | j                  | j                  |            D cg c]
  \  }}||k   c}}      S c c}}w r   r,   zipr/   _Vector__castr
   r   abs       r   r   zVector.__lt__>   7    TYYE8J)KLAq1uLMML   A
c                     t        t        | j                  | j                  |            D cg c]
  \  }}||k   c}}      S c c}}w r   r?   rB   s       r   r   zVector.__le__A   7    #diiU9K*LM$!QqAvMNNMrF   c                     t        t        | j                  | j                  |            D cg c]
  \  }}||k(   c}}      S c c}}w r   r?   rB   s       r   r   zVector.__eq__D   rH   rF   c                     t        t        | j                  | j                  |            D cg c]
  \  }}||k7   c}}      S c c}}w r   r?   rB   s       r   r   zVector.__ne__G   rH   rF   c                     t        t        | j                  | j                  |            D cg c]
  \  }}||kD   c}}      S c c}}w r   r?   rB   s       r   r   zVector.__gt__J   rE   rF   c                     t        t        | j                  | j                  |            D cg c]
  \  }}||k\   c}}      S c c}}w r   r?   rB   s       r   r   zVector.__ge__M   rH   rF   c                     t        |t              r|j                  }t        | j                        t        |      k7  rt	        d      |S )Nz*Cannot compare vectors of different length)
isinstancer,   r/   r1   
ValueErrorr   s     r   __castzVector.__castP   s:    eV$JJEtyy>SZ'IJJr   )r'   r(   r)   r   r2   r5   r8   __hash__r;   r!   r&   r   r   r   r   r   r   rA   r*   r   r   r,   r,   %   sW     HFJ,NOOONOr   r,   c                     | |k  S r   r*   rC   rD   s     r   <lambda>rT   X   
    q!t r   c                     | |k  S r   r*   rS   s     r   rT   rT   Y   rU   r   c                     | |k(  S r   r*   rS   s     r   rT   rT   Z   rU   r   c                     | |k7  S r   r*   rS   s     r   rT   rT   [   rU   r   c                     | |kD  S r   r*   rS   s     r   rT   rT   \   rU   r   c                     | |k\  S r   r*   rS   s     r   rT   rT   ]   rU   r   )ltleeqnegtgec                       e Zd Zd Zd Zd Zy)
VectorTestc                 H    t         |   D ]  } | j                  ||g|   y r   )opmapassertRaises)r
   erroropnameargsops        r   	checkfailzVectorTest.checkfailb   s,    - 	0BDeR/$/	0r   c                     t         |   D ]a  } |||      }| j                  t        |      t        |             t        t        |            D ]  }| j	                  ||   ||   u         c y r   )rd   assertEqualr1   range
assertTrue)r
   rg   rC   rD   expresri   realresr4   s           r   
checkequalzVectorTest.checkequalf   si    - 	9BAhGS\3v;73w<( 9
fQi 789		9r   c                    t        t        d            }t        t        d            }t        D ]  }| j                  t        |||        t        t        d            }ddgz  }|t        |      ft        |      |ft        |      t        |      fg}|D ]  \  }}| j                  d||g d       | j                  d||g d       | j                  d||g d	       | j                  d
||g d       | j                  d||g d       | j                  d||g d       t        j                         D ]+  }|D ]$  }| j                  t        t         |||             & -  y )N         r[   )TTFFFr\   )TTTFFr]   )FFTFFr^   )TTFTTr_   )FFFTTr`   )FFTTT)r,   rm   rd   rj   rO   listrq   valuesre   r:   bool)r
   rC   rD   rg   rh   opsri   s          r   
test_mixedzVectorTest.test_mixedo   sK    5858 	5FNN:vq!4	5 qNGF1IAF1I0FG 	AFQOOD!Q(KLOOD!Q(KLOOD!Q(KLOOD!Q(KLOOD!Q(KLOOD!Q(KL||~ A AB%%ir!Qx@AA	Ar   N)r'   r(   r)   rj   rq   rz   r*   r   r   rb   rb   `   s    09Ar   rb   c                       e Zd Zd Zd Zd Zy)
NumberTestc           
      V   t        d      D ]  }t        d      D ]  }t        t        fD ]z  }t        t        fD ]i  }||cxk(  r	t        k(  rn n ||      } ||      }t        j	                         D ]-  }|D ]&  } |||      }	 |||      }
| j                  |	|
       ( / k |   y )Nrt   )rm   intr   rd   rw   rl   )r
   rC   rD   typeatypebtatbry   ri   realoutcometestoutcomes              r   
test_basiczNumberTest.test_basic   s     q 	KA1X K!6] 
KE"%v 	K %,,$"1X"1X#(<<> KC&) K.0Ah.0Rj $ 0 0k JKK	K
KK	Kr   c                     t         t        fD ]Z  }t         t        fD ]I  } ||      } ||      }t        |   D ]+  }	 |	||      }
t        |
d|
      }
| j	                  |
|u        - K \ y )Nr	   )r~   r   rd   getattrrn   )r
   rg   rC   rD   ro   r   r   r   r   ri   rp   s              r   
checkvaluezNumberTest.checkvalue   sw    6] 	7Ev 71X1X- 7B RjG%gsG<GOOGv$5677	7r   c                    | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  d	ddd       | j                  ddd
d       | j                  ddd
d       | j                  ddd
d       | j                  ddd
d       | j                  ddd
d       | j                  d	dd
d       | j                  dd
dd       | j                  dd
dd       | j                  dd
dd       | j                  dd
dd       | j                  dd
dd       | j                  d	d
dd       y )Nr[   r   Fr\   Tr]   r^   r_   r`      )r   r%   s    r   test_valueszNumberTest.test_values   sF   aE*aD*aD*aE*aE*aD*aD*aD*aE*aD*aE*aE*aE*aE*aE*aD*aD*aD*r   N)r'   r(   r)   r   r   r   r*   r   r   r|   r|      s    K$7+r   r|   c                   l    e Zd Zd Zd Zej                   ej                  d      d               Zd Z	y)MiscTestc                       G  fdd      } |       } |       } j                  ||k  d        j                  ||k(  d        j                  ||kD  d       y )Nc                   >    e Zd Zd Zd Zd Z fdZ fdZ fdZy)&MiscTest.test_misbehavin.<locals>.Misbc                      yNr   r*   self_r   s     r   r   z-MiscTest.test_misbehavin.<locals>.Misb.__lt__       Qr   c                      yr   r*   r   s     r   r   z-MiscTest.test_misbehavin.<locals>.Misb.__gt__   r   r   c                      yr   r*   r   s     r   r   z-MiscTest.test_misbehavin.<locals>.Misb.__eq__   r   r   c                 (    j                  d       y NzThis shouldn't happenfailr   r   r
   s     r   r   z-MiscTest.test_misbehavin.<locals>.Misb.__le__       dii0G&Hr   c                 (    j                  d       y r   r   r   s     r   r   z-MiscTest.test_misbehavin.<locals>.Misb.__ge__   r   r   c                 (    j                  d       y r   r   r   s     r   r   z-MiscTest.test_misbehavin.<locals>.Misb.__ne__   r   r   N)	r'   r(   r)   r   r   r   r   r   r   r%   s   r   Misbr      s    ...HHHr   r   r   )rl   )r
   r   rC   rD   s   `   r   test_misbehavinzMiscTest.test_misbehavin   s[    	I 	I FF1a Aq!1a r   c                     dd l } G d dt               G fdd      }d }||j                  fD ]  }| j                  | |               y )Nr   c                       e Zd Zy)MiscTest.test_not.<locals>.ExcNr'   r(   r)   r*   r   r   Excr          r   r   c                       e Zd Z fdZy)MiscTest.test_not.<locals>.Badc                     r   r*   )r
   r   s    r   r;   z'MiscTest.test_not.<locals>.Bad.__bool__       	r   N)r'   r(   r)   r;   r   s   r   Badr          r   r   c                 
    |   y r   r*   )bads    r   dozMiscTest.test_not.<locals>.do   s    Gr   )operator	Exceptionnot_re   )r
   r   r   r   funcr   s        @r   test_notzMiscTest.test_not   sQ     		) 		 		 ' 	0Dc4/	0r      c                 X   ddl m}  |       } |       }|j                  |       |j                  |       | j                  t        t
        j                  ||       | j                  t        t
        j                  ||       | j                  t        t
        j                  ||       | j                  t        t
        j                  ||       | j                  t        t
        j                  ||       | j                  t        t
        j                  ||       |j                  d       | j                  ||k(          | j                  ||k7         | j                  t        t
        j                  ||       | j                  t        t
        j                  ||       | j                  t        t
        j                  ||       | j                  t        t
        j                  ||       |j                  d       | j                  t        t
        j                  ||       | j                  t        t
        j                  ||       |j                  dd       |j                  dd       | j                  ||k(          | j                  ||k7         | j                  ||k         y )Nr   )UserList         )collectionsr   appendre   RecursionErrorr   r]   r^   r[   r\   r_   r`   rn   insert)r
   r   rC   rD   s       r   test_recursionzMiscTest.test_recursion   s    	)JJ		.(++q!<.(++q!<.(++q!<.(++q!<.(++q!<.(++q!<	 	Q!V%Q.(++q!<.(++q!<.(++q!<.(++q!<	.(++q!<.(++q!<	B	BQ!V%QAr   c                 v    G d d      d dfd dfd dfd	 d
fd dfd dfd dfd dfd dfd dffddffddffddfg}t        |      D ]L  \  }}| j                  |      5  | j                  t        |d         5   |d           d d d        d d d        N y # 1 sw Y   xY w# 1 sw Y   exY w) Nc                       e Zd Zy)-MiscTest.test_exception_message.<locals>.SpamNr   r*   r   r   Spamr     r   r   r   c                      dd k  S N*   r*   r*   r   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>  
    R$Y r   z'<' .* of 'int' and 'NoneType'c                      d dk  S r   r*   r*   r   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>  s
    TBY r   z'<' .* of 'NoneType' and 'int'c                      dd kD  S r   r*   r*   r   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>  r   r   z'>' .* of 'int' and 'NoneType'c                      dd k  S )Nfoor*   r*   r   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>	  s
    UT\ r   z'<' .* of 'str' and 'NoneType'c                      ddk\  S )Nr   i  r*   r*   r   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>
  s
    Uc\ r   z'>=' .* of 'str' and 'int'c                      dd k  S r   r*   r*   r   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>  
    R4Z r   z'<=' .* of 'int' and 'NoneType'c                      dd k\  S r   r*   r*   r   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>  r   r   z'>=' .* of 'int' and 'NoneType'c                      dg k  S r   r*   r*   r   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>  
    R"W r   z'<' .* of 'int' and 'list'c                      dg kD  S )Nr*   r*   r*   r   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>  r   r   z'>' .* of 'tuple' and 'list'c                      d d k\  S r   r*   r*   r   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>  s
    TT\ r   z$'>=' .* of 'NoneType' and 'NoneType'c                               dk  S r   r*   r   s   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>  s    TVb[ r   z'<' .* of 'Spam' and 'int'c                      d         k  S r   r*   r   s   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>  s    R$&[ r   z'<' .* of 'int' and 'Spam'c                  "                      k  S r   r*   r   s   r   rT   z1MiscTest.test_exception_message.<locals>.<lambda>  s    TVtv% r   z'<=' .* of 'Spam' and 'Spam')testr   r   )	enumeratesubTestassertRaisesRegexr:   )r
   testsr4   r   r   s       @r   test_exception_messagezMiscTest.test_exception_message  s   	 	  AB AB AB!#DE!#@A!CD!CD;<=>!#JK "?@ "?@%'FG
 !' 	GAt1% ++ItAw? DGI 	  s$   +B/B#B/#B,(B//B8	N)
r'   r(   r)   r   r   r   
no_tracinginfinite_recursionr   r   r*   r   r   r   r      sA    !0  W# $ @r   r   c                       e Zd Zd Zy)DictTestc                    dd l }i }t        d      D ]+  }|j                  d      dz  ||j                  d      dz  <   - t        |j	                               }|j                  |       i }|D ]
  \  }}|||<    |j                         }dz   |<   | j                  ||       | j                  ||       | j                  ||       | j                  ||k7         dD ](  }	t        |	   D ]  }
| j                  t        |
||        * y )Nr   2   d   y              ?g      ?)r[   r\   r_   r`   )randomrm   	randrangerv   itemsshufflecopyrl   rn   rd   re   r:   )r
   r   imag1ar4   r   imag1bkr7   imag2rg   ri   s              r   
test_dictszDictTest.test_dicts  s    	r 	HA/5/?/?/DR/GF6##C(+,	HV\\^$u 	DAqF1I	s7a((&%(. 	@FFm @!!)R?@	@r   N)r'   r(   r)   r   r*   r   r   r   r     s    @r   r   c                       e Zd Zd Zd Zd Zy)ListTestc                 
   dg}| j                  ||k  d       | j                  ||k  d       | j                  ||k(  d       | j                  ||k7  d       | j                  ||kD  d       | j                  ||k\  d       ddg}| j                  ||k  d       | j                  ||k  d       | j                  ||k(  d       | j                  ||k7  d       | j                  ||kD  d       | j                  ||k\  d       y )Nr   FT)assertIs)r
   r	   ys      r   test_coveragezListTest.test_coverage5  s    Dac5!adD!adD!adE"ac5!adD!Hac4 adD!adE"adD!ac5!adE"r   c                      G d dt                G fdd      } |       g} |       g}t        d   D ]  }| j                  |||        y )Nc                       e Zd Zy)#ListTest.test_badentry.<locals>.ExcNr   r*   r   r   r   r   I  r   r   r   c                       e Zd Z fdZy)#ListTest.test_badentry.<locals>.Badc                     r   r*   )r
   r   r   s     r   r   z*ListTest.test_badentry.<locals>.Bad.__eq__L  r   r   N)r'   r(   r)   r   r   s   r   r   r   K  r   r   r   r]   )r   rd   re   )r
   r   r	   r   ri   r   s        @r   test_badentryzListTest.test_badentryF  sT    	) 		 	 UGUG+ 	-Bc2q!,	-r   c                      G d d      } |       g} |       g}t         d   D ]  }| j                   |||      d        y )Nc                       e Zd Zd Zy)%ListTest.test_goodentry.<locals>.Goodc                      y)NTr*   r   s     r   r   z,ListTest.test_goodentry.<locals>.Good.__lt__Y  s    r   N)r'   r(   r)   r   r*   r   r   Goodr   X  s    r   r  r[   T)rd   r   )r
   r  r	   r   ri   s        r   test_goodentryzListTest.test_goodentryU  sG    	 	 VHVH+ 	*BMM"Q(D)	*r   N)r'   r(   r)   r   r   r  r*   r   r   r   r   3  s    #"-*r   r   __main__)unittestr   r   r   r   r,   r[   r   r\   r   r]   r   r^   r   r_   r   r`   r   rd   TestCaserb   r|   r   r   r   r'   mainr*   r   r   <module>r     s     ) ):0 0f X[[(//
:X[[(//
:X[[(//
:X[[(//
:X[[(//
:X[[(//
:	(A"" (AT3+"" 3+jXx   Xv@x   @2-*x   -*` zHMMO r   