
    5\h@                         	 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                     dS dS )	    N)ComplexRealRationalIntegralNumberc                     d }t          |           D ];}	 t          | |          }|j        rt          | ||           ,# t          $ r Y 8w xY wt          j        |            | S )Nc                      t                      N)NotImplementedError)argskwargss     D/opt/python-3.11.14/usr/lib/python3.11/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   
   s    $ $ $ C  	C&&E) 4T?333 	 	 	D	s###Js   (?
AAc                        e Zd Zd Zd Zd ZdS )TestNumbersc                    |                      t          t          t                               |                      t          t          t                               |                      t          t          t
                               |                      t          t          t                               |                      t          t          t                               |                     dt          d          j	                   |                     dt          d          j
                   |                     dt          d                                                     |                     dt          d                                                     |                     dt          d          j                   |                     dt          d          j                   d S )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1222
311222
3--...
300111
3//000CFFK(((CFFK(((CFF,,..///SWW..00111CFF,---CFF./////r   c                 <   |                      t          t          t                               |                      t          t          t                               |                     t          t          t                               |                     t          t          t                               |                     t          t          t                               | 	                    dt          d          j
                   | 	                    dt          d          j                   | 	                    dt          d                                                     | 	                    dt          d                                                     d S )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4555E844555
5$//000
5'22333
5&11222eCjjo...E#JJO,,,eCjj2244555uT{{446677777r   c                    |                      t          t          t                               |                      t          t          t                               |                      t          t          t
                               |                     t          t          t                               |                     t          t          t                               t          dd          t          dd          }}| 	                    t          t          j        |           | 	                    t          t          j        ||           | 	                    t          t          ||           | 	                    t          t          j        ||           | 	                    t          t"          |           | 	                    t          t$          |           d S )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   sP   GX66777GX66777GT22333
7G44555
7F33444A!B)TZ444)X\2r:::)VR444)X%6B???)UB///)S"-----r   N)__name__
__module____qualname__r,   r0   r@    r   r   r   r      sA        0 0 0
8 
8 
8. . . . .r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestNumbersDefaultMethodsc                    t            G fddt                                |                     t           dd                               |                     t           dd                               |                     t           dd                               |                     t           dd                               |                      dd          t          dd          z
   dd                     |                     t          dd           dd          z
   dd                     d S )Nc                   \    e Zd Zd Zed             Zed             Z fdZ fdZd Z	dS )9TestNumbersDefaultMethods.test_complex.<locals>.MyComplexc                 "    || _         || _        d S 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   	    vr   c                     | j         S r
   )rL   r*   s    r   r&   z>TestNumbersDefaultMethods.test_complex.<locals>.MyComplex.imagQ   rO   r   c                     t          |t                    r& | 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   sF    eW-- =$9TY%;%)Y%;= = =))r   c                 4     | j          | j                   S r
   )r%   r&   r+   rT   s    r   __neg__zATestNumbersDefaultMethods.test_complex.<locals>.MyComplex.__neg__[   s     y$)diZ888r   c                     t          |t                    r | j        |j        k    o| j        |j        k    S t          |t                    r| j        dk    o| j        |j        k    S d S )Nr   )rR   r   r&   r%   r   r+   rS   s     r   __eq__z@TestNumbersDefaultMethods.test_complex.<locals>.MyComplex.__eq__^   sk    eW-- O9
2NtyEJ7NNeV,, F9>Edi5:.EEF Fr   N)
rA   rB   rC   rM   propertyr%   r&   rU   rX   r[   )rT   s   r   rT   rI   G   s             X   X* * * * *9 9 9 9 9F F F F Fr   rT   r    r   r3   r2   )r   r   r!   boolr.   r$   r5   rW   s    @r   r@   z&TestNumbersDefaultMethods.test_complexF   sW   		F 	F 	F 	F 	F 	F 	F 	F 	F 
	F: 	YYq!__--...YYq!__--...YYq!__--...ii1oo../// 	1a71a==8))Aq//JJJ 	A1a8))Aq//JJJJJr   c                 D   t            G d dt                                }|                     t           |d          d          d           |                     t          d |d                    d           |                     t	           |d                    d           |                      |d          j        d           |                      |d          j        d           |                      |d	                                          d	           d S )
Nc                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	3TestNumbersDefaultMethods.test_real.<locals>.MyRealc                     || _         d S 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   	    vr   c                 *    t          | j                  S r
   )r/   rc   r*   s    r   	__float__z=TestNumbersDefaultMethods.test_real.<locals>.MyReal.__float__y   s    TV}}$r   c                     | j         |z  S r
   rb   rZ   s     r   __floordiv__z@TestNumbersDefaultMethods.test_real.<locals>.MyReal.__floordiv__|   s    v&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    v~%r   c                     || j         z  S r
   rb   rZ   s     r   __rmod__z<TestNumbersDefaultMethods.test_real.<locals>.MyReal.__rmod__   s    tv~%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6 	66!99--v666 	++T222 	+++ 	+++ 	..00#66666r   c                     t            G d dt                                }|                     t           |dd                    d           d S )Nc                   @    e Zd Zd Zed             Zed             ZdS );TestNumbersDefaultMethods.test_rational.<locals>.MyRationalc                 "    || _         || _        d S 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      sY        % % %   X   X  r   r}      r3   g      @)r   r   r$   r/   )r+   r}   s     r   test_rationalz'TestNumbersDefaultMethods.test_rational   sh    		 	 	 	 	 	 	 
	 	zz!Q//00#66666r   c                    t            G d dt                                }|                     t          j         |d                    d           |                     t           |d                    d           |                      |d          j        d           |                      |d          j        d           d S )Nc                        e Zd Zd Zd Zd ZdS );TestNumbersDefaultMethods.test_integral.<locals>.MyIntegralc                     || _         d S 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      sA                r   r   rt   g     ^@r    )r   r   r$   r:   indexr/   r(   r)   )r+   r   s     r   test_integralz'TestNumbersDefaultMethods.test_integral   s    		 	 	 	 	 	 	 
	 	

388#>>> 	zz#//777 	C2C888 	C4a88888r   N)rA   rB   rC   r@   ru   r   r   rD   r   r   rF   rF   E   sU        (K (K (KT(7 (7 (7V7 7 7&9 9 9 9 9r   rF   __main__)r   r8   r:   unittestnumbersr   r   r   r   r   r   TestCaser   rF   rA   mainrD   r   r   <module>r      s      



    = = = = = = = = = = = = = =  ). ). ). ). ).(# ). ). ).X9 9 9 9 9 1 9 9 9D zHMOOOOO r   