
    daf@                         d Z ddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
 d Z G d dej                        Z G d dej                        Zed	k(  r ej                           yy)
zUnit tests for numbers.py.    N)ComplexRealRationalIntegralNumberc                     d }t        |       D ](  }	 t        | |      }|j                  rt        | ||       * t        j                  |        | S # t        $ r Y Mw xY w)Nc                      t               N)NotImplementedError)argskwargss     5/root/Python-3.12.4/Lib/test/test_abstract_numbers.pynot_implementedz#concretize.<locals>.not_implemented   s    !##    )dirgetattr__isabstractmethod__setattrAttributeErrorabcupdate_abstractmethods)clsr   namevalues       r   
concretizer   
   sl    $ C 	C&E))T?3	 s#J  		s   %A	AAc                       e Zd Zd Zd Zd Zy)TestNumbersc                 .   | j                  t        t        t                     | j                  t        t        t                     | j                  t        t        t
                     | j                  t        t        t                     | j                  t        t        t                     | j                  dt        d      j                         | j                  dt        d      j                         | j                  dt        d      j                                | j                  dt        d      j                                | j                  dt        d      j                         | j                  dt        d      j                         y )N   r   i   )
assertTrue
issubclassintr   r   r   r   r   assertEqualrealimag	conjugate	numeratordenominatorselfs    r   test_intzTestNumbers.test_int   s    
312
312
3-.
301
3/0CFKK(CFKK(CF,,./SW..01CF,,-CF../r   c                    | j                  t        t        t                     | j                  t        t        t                     | j                  t        t        t                     | j                  t        t        t                     | j                  t        t        t                     | j                  dt        d      j                         | j                  dt        d      j                         | j                  dt        d      j                                | j                  dt        d      j                                y )Ng333333@r   g333333)assertFalser"   floatr   r   r!   r   r   r   r$   r%   r&   r'   r*   s    r   
test_floatzTestNumbers.test_float(   s    E845E845
5$/0
5'23
5&12eCjoo.E#JOO,eCj2245uT{4467r   c                    | j                  t        t        t                     | j                  t        t        t                     | j                  t        t        t
                     | j                  t        t        t                     | j                  t        t        t                     t        dd      t        dd      }}| j                  t        t        j                  |       | j                  t        t        j                  ||       | j                  t        t        ||       | j                  t        t        j                   ||       | j                  t        t"        |       | j                  t        t$        |       y )N         r    )r.   r"   complexr   r   r   r!   r   r   assertRaises	TypeErrormathtruncoperatormoddivmodfloordivr/   r#   )r+   c1c2s      r   test_complexzTestNumbers.test_complex4   s    GX67GX67GT23
7G45
7F34A!B)TZZ4)X\\2r:)VR4)X%6%6B?)UB/)S"-r   N)__name__
__module____qualname__r,   r0   r@    r   r   r   r      s    0
8.r   r   c                   $    e Zd Zd Zd Zd Zd Zy)TestNumbersDefaultMethodsc                    t          G fddt                     | j                  t         dd                   | j                  t         dd                   | j                  t         dd                   | j	                  t         dd                   | j                   dd      t        dd      z
   dd             | j                  t        dd       dd      z
   dd             y )Nc                   N    e Zd Zd Zed        Zed        Z fdZ fdZd Z	y)9TestNumbersDefaultMethods.test_complex.<locals>.MyComplexc                      || _         || _        y r
   )ri)r+   r%   r&   s      r   __init__zBTestNumbersDefaultMethods.test_complex.<locals>.MyComplex.__init__I   s    r   c                     | j                   S r
   )rK   r*   s    r   r%   z>TestNumbersDefaultMethods.test_complex.<locals>.MyComplex.realM       vvr   c                     | j                   S r
   )rL   r*   s    r   r&   z>TestNumbersDefaultMethods.test_complex.<locals>.MyComplex.imagQ   rO   r   c                     t        |t              r7 | j                  |j                  z   | j                  |j                  z         S t        r
   )
isinstancer   r&   r%   r   )r+   other	MyComplexs     r   __add__zATestNumbersDefaultMethods.test_complex.<locals>.MyComplex.__add__U   s?    eW-$TYY%;%)YY%;= =))r   c                 B     | j                    | j                         S r
   )r%   r&   r+   rT   s    r   __neg__zATestNumbersDefaultMethods.test_complex.<locals>.MyComplex.__neg__[   s     $))diiZ88r   c                     t        |t              r4| j                  |j                  k(  xr | j                  |j                  k(  S t        |t              r*| j                  dk(  xr | j                  |j                  k(  S y )Nr   )rR   r   r&   r%   r   r+   rS   s     r   __eq__z@TestNumbersDefaultMethods.test_complex.<locals>.MyComplex.__eq__^   s`    eW-99

2NtyyEJJ7NNeV,99>Edii5::.EE -r   N)
rA   rB   rC   rM   propertyr%   r&   rU   rX   r[   )rT   s   r   rT   rI   G   s@        *9Fr   rT   r    r   r3   r2   )r   r   r!   boolr.   r$   r5   rW   s    @r   r@   z&TestNumbersDefaultMethods.test_complexF   s    		F 	F 
	F: 	Yq!_-.Yq!_-.Yq!_-.i1o./ 	1a71a=8)Aq/J 	A1a8)Aq/Jr   c                    t          G d dt                     }| j                  t         |d      d      d       | j                  t        d |d            d       | j                  t	         |d            d       | j                   |d      j
                  d       | j                   |d      j                  d       | j                   |d	      j                         d	       y )
Nc                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	3TestNumbersDefaultMethods.test_real.<locals>.MyRealc                     || _         y r
   nr+   rc   s     r   rM   z<TestNumbersDefaultMethods.test_real.<locals>.MyReal.__init__s   	    r   c                     | j                   S r
   rb   r*   s    r   __pos__z;TestNumbersDefaultMethods.test_real.<locals>.MyReal.__pos__v       vvr   c                 ,    t        | j                        S r
   )r/   rc   r*   s    r   	__float__z=TestNumbersDefaultMethods.test_real.<locals>.MyReal.__float__y   s    TVV}$r   c                      | j                   |z  S r
   rb   rZ   s     r   __floordiv__z@TestNumbersDefaultMethods.test_real.<locals>.MyReal.__floordiv__|   s    vv&r   c                      || j                   z  S r
   rb   rZ   s     r   __rfloordiv__zATestNumbersDefaultMethods.test_real.<locals>.MyReal.__rfloordiv__   s    &r   c                      | j                   |z  S r
   rb   rZ   s     r   __mod__z;TestNumbersDefaultMethods.test_real.<locals>.MyReal.__mod__   s    vv~%r   c                      || j                   z  S r
   rb   rZ   s     r   __rmod__z<TestNumbersDefaultMethods.test_real.<locals>.MyReal.__rmod__   s    tvv~%r   N)
rA   rB   rC   rM   rg   rj   rl   rn   rp   rr   rD   r   r   MyRealr`   q   s%    %''&&r   rs   r2   r3   )r    r    r    y      ?        r   {   )r   r   r$   r<   r5   r%   r&   r'   )r+   rs   s     r   	test_realz#TestNumbersDefaultMethods.test_realp   s    		&T 	& 
	&. 	q	1-v6 	6!9-v6 	+T2 	+ 	+ 	..0#6r   c                 x    t          G d dt                     }| j                  t         |dd            d       y )Nc                   2    e Zd Zd Zed        Zed        Zy);TestNumbersDefaultMethods.test_rational.<locals>.MyRationalc                      || _         || _        y r
   )rc   d)r+   r(   r)   s      r   rM   zDTestNumbersDefaultMethods.test_rational.<locals>.MyRational.__init__   s    "$r   c                     | j                   S r
   rb   r*   s    r   r(   zETestNumbersDefaultMethods.test_rational.<locals>.MyRational.numerator   rO   r   c                     | j                   S r
   )rz   r*   s    r   r)   zGTestNumbersDefaultMethods.test_rational.<locals>.MyRational.denominator   rO   r   N)rA   rB   rC   rM   r\   r(   r)   rD   r   r   
MyRationalrx      s/    %    r   r}      r3   g      @)r   r   r$   r/   )r+   r}   s     r   test_rationalz'TestNumbersDefaultMethods.test_rational   s9    		 	 
	 	z!Q/0#6r   c                 T   t          G d dt                     }| j                  t        j                   |d            d       | j                  t         |d            d       | j                   |d      j                  d       | j                   |d      j                  d       y )Nc                       e Zd Zd Zd Zd Zy);TestNumbersDefaultMethods.test_integral.<locals>.MyIntegralc                     || _         y r
   rb   rd   s     r   rM   zDTestNumbersDefaultMethods.test_integral.<locals>.MyIntegral.__init__   re   r   c                     | j                   S r
   rb   r*   s    r   rg   zCTestNumbersDefaultMethods.test_integral.<locals>.MyIntegral.__pos__   rh   r   c                     | j                   S r
   rb   r*   s    r   __int__zCTestNumbersDefaultMethods.test_integral.<locals>.MyIntegral.__int__   rh   r   N)rA   rB   rC   rM   rg   r   rD   r   r   
MyIntegralr      s    r   r   rt   g     ^@r    )r   r   r$   r:   indexr/   r(   r)   )r+   r   s     r   test_integralz'TestNumbersDefaultMethods.test_integral   s    		 	 
	 	
38#> 	z#/7 	C22C8 	C44a8r   N)rA   rB   rC   r@   ru   r   r   rD   r   r   rF   rF   E   s    (KT(7V7&9r   rF   __main__)__doc__r   r8   r:   unittestnumbersr   r   r   r   r   r   TestCaser   rF   rA   mainrD   r   r   <module>r      sa      
    = =).(## ).X9 1 1 9D zHMMO r   