
    /hh8                        S SK r S SKJrJrJr  S SKJr  S rS rS r	S r
 " S S	\5      r " S
 S\ R                  5      r " S S5      rS r " S S\5      r " S S\\S9r " S S\5      r " S S\5      r\R+                  \5         " S S\ R                  5      r " S S\5      r " S S\5      r " S S\5      r " S  S!\5      r " S" S#\5      r " S$ S%5      r " S& S'\ R                  5      r\S(:X  a  \ R>                  " 5         gg))    N)eqlene)ABCMetac                 0    U (       a  X-  U pU (       a  M  U$ N )abs     8/opt/python-3.13.8/usr/lib/python3.13/test/test_binop.pygcdr      s    
sA1 !H    c                 "    [        U [        5      $ r   )
isinstanceintxs    r   isintr          ar   c                 X    [         [        [        4 H  n[        X5      (       d  M    g   g)N   r   )r   floatcomplexr   )r   Ts     r   isnumr      s&    % a ! r   c                 "    [        U [        5      $ r   )r   Ratr   s    r   isRatr      r   r   c                       \ rS rSrSS/rSS jrS r\" \S5      rS r	\" \	S5      r
S rS	 rS
 rS rS r\rS rS rS r\rS rS rS rS rS rS rS rS rS rSrg)r      	_Rat__num	_Rat__denc                     [        U5      (       d  [        SU-  5      e[        U5      (       d  [        SU-  5      eUS:X  a  [        S5      e[        X!5      n[	        X-  5      U l        [	        X#-  5      U l        g )NzRat numerator must be int (%r)z Rat denominator must be int (%r)r   zzero denominator)r   	TypeErrorZeroDivisionErrorr   r   r!   r"   )selfnumdengs       r   __init__Rat.__init__"   sn     Szz<sBCCSzz>DEE!8#$677M[
[
r   c                     U R                   $ r   )r!   r&   s    r   _get_numRat._get_num1       zzr   Nc                     U R                   $ r   )r"   r-   s    r   _get_denRat._get_den6   r0   r   c                 8    SU R                   U R                  4-  $ )NzRat(%d, %d)r!   r"   r-   s    r   __repr__Rat.__repr__;   s    

DJJ777r   c                 *    [        [        U 5      5      $ r   )strr   r-   s    r   __str__Rat.__str__?   s    5;r   c                 :    U R                   S-  U R                  -  $ )N      ?r5   r-   s    r   	__float__Rat.__float__C   s    zz#~djj((r   c                     U R                   S:X  a   [        U R                  5      $ [        S[	        U 5      -  5      e! [         a    [        S[	        U 5      -  5      ef = f)Nr   z%s too large to convert to intzcan't convert %s to int)r"   r   r!   OverflowErrorrepr
ValueErrorr-   s    r   __int__Rat.__int__G   sd    ::?24::& 2T$Z?@@ ! 2#$D&*4j%1 2 22s	   > "A c                 H   [        U5      (       a  [        U5      n[        U5      (       aT  [        U R                  UR                  -  UR                  U R                  -  -   U R                  UR                  -  5      $ [        U5      (       a  [        U 5      U-   $ [        $ r   r   r   r   r!   r"   r   r   NotImplementedr&   others     r   __add__Rat.__add__Q   y    <<JE<<tzz%++-DJJ0FFzz%++-/ /<<;&&r   c                 H   [        U5      (       a  [        U5      n[        U5      (       aT  [        U R                  UR                  -  UR                  U R                  -  -
  U R                  UR                  -  5      $ [        U5      (       a  [        U 5      U-
  $ [        $ r   rG   rI   s     r   __sub__Rat.__sub__^   rM   r   c                 H   [        U5      (       a  [        U5      n[        U5      (       aT  [        UR                  U R                  -  U R                  UR                  -  -
  U R                  UR                  -  5      $ [        U5      (       a  U[        U 5      -
  $ [        $ r   rG   rI   s     r   __rsub__Rat.__rsub__i   sy    <<JE<<u{{4::-

5;;0FFzz%++-/ /<<5;&&r   c                 D   [        U5      (       a:  [        U R                  UR                  -  U R                  UR                  -  5      $ [	        U5      (       a#  [        U R                  U-  U R                  5      $ [        U5      (       a  [        U 5      U-  $ [        $ r   r   r   r!   r"   r   r   r   rH   rI   s     r   __mul__Rat.__mul__t   ss    <<tzz%++-tzz%++/EFF<<tzz%'44<<;u$$r   c                 D   [        U5      (       a:  [        U R                  UR                  -  U R                  UR                  -  5      $ [	        U5      (       a#  [        U R                  U R                  U-  5      $ [        U5      (       a  [        U 5      U-  $ [        $ r   rU   rI   s     r   __truediv__Rat.__truediv__   ss    <<tzz%++-tzz%++/EFF<<tzz4::e#344<<;&&r   c                 B   [        U5      (       a:  [        UR                  U R                  -  UR                  U R                  -  5      $ [	        U5      (       a"  [        XR                  -  U R                  5      $ [        U5      (       a  U[        U 5      -  $ [        $ r   rU   rI   s     r   __rtruediv__Rat.__rtruediv__   sq    <<u{{4::-u{{4::/EFF<<uZZ'44<<5;&&r   c                     [        U5      (       a  [        U5      nO[        U5      (       d  [        $ X-  nUR                  UR
                  -  $ r   )r   r   r   rH   r!   r"   r&   rJ   r   s      r   __floordiv__Rat.__floordiv__   s=    <<JEu!!Jww!''!!r   c                 <    X-  nUR                   UR                  -  $ r   r5   r_   s      r   __rfloordiv__Rat.__rfloordiv__   s    Jww!''!!r   c                 ~    [        U5      (       a  [        U5      nO[        U5      (       d  [        $ X-  nX X-  -
  4$ r   )r   r   r   rH   r_   s      r   
__divmod__Rat.__divmod__   s:    <<JEu!!K%)#$$r   c                 |    [        U5      (       a  [        U5      nO[        U5      (       d  [        $ [	        X5      $ r   )r   r   r   rH   divmodrI   s     r   __rdivmod__Rat.__rdivmod__   s.    <<JEu!!e""r   c                     [        X5      S   $ Nr   ri   rI   s     r   __mod__Rat.__mod__   s    d"1%%r   c                     [        X5      S   $ rm   rn   rI   s     r   __rmod__Rat.__rmod__   s    e"1%%r   c                 F   [        U5      (       a%  U R                  S:H  =(       a    U R                  U:H  $ [        U5      (       a9  U R                  UR                  :H  =(       a    U R                  UR                  :H  $ [	        U5      (       a  [        U 5      U:H  $ [        $ rm   )r   r"   r!   r   r   r   rH   rI   s     r   __eq__
Rat.__eq__   ss    <<::?:tzzU'::<<::,Ju{{1JJ<<;%''r   )__den__num)r   r   )__name__
__module____qualname____firstlineno__	__slots__r*   r.   propertyr'   r2   r(   r6   r:   r>   rD   rK   __radd__rO   rR   rV   __rmul__rY   r\   r`   rc   rf   rj   ro   rr   ru   __static_attributes__r	   r   r   r   r      s     k*I! 8T
"C 8T
"C8 )A	 H		 H""
%#&&r   r   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)RatTestCase   c                    U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        S	S5      S
5        U R                  [        SS
5      S5        U R                  [        S	S
5      S
5        [        SS5       H  n[        SS5       H}  nU R                  [        X5      S:  5        U R                  [        U* U5      S:  5        U R                  [        X* 5      S:  5        U R                  [        U* U* 5      S:  5        M     M     g )N
                  r   d      r   )assertEqualr   range
assertTrue)r&   ijs      r   test_gcdRatTestCase.test_gcd   s   Ra(Ra(Ra(S"q)S!b)Ra(S"r*q"A1b\A	A.QB
Q/Ar
Q/QBa0	 " r   c           	         [        SS5      nU R                  UR                  S5        U R                  UR                  S5        [        SS5      nU R                  UR                  S5        U R                  UR                  S5        [        SS5      nU R                  UR                  S5        U R                  UR                  S5        [        SS5      nU R                  UR                  S5        U R                  UR                  S5        [        S5      nU R                  UR                  S5        U R                  UR                  S	5         [        S	S
5      nU R	                  S5        SSSS/ 0 S [         [        4	 HD  n [        U5      nU R	                  SU-  5         [        S	U5      nU R	                  SU-  5        MF     g ! [
         a     Nhf = f! [         a     NBf = f! [         a     Mv  f = f)Nr   r   r      ir   r      r   r   z(Rat(1, 0) didn't raise ZeroDivisionError0g        y                r	   zRat(%r) didn't raise TypeErrorz!Rat(1, %r) didn't raise TypeError)r   r   r'   r(   failr%   unittestr$   )r&   r
   bads      r   test_constructorRatTestCase.test_constructor   s   BK""CL#"RL#"SM""F""	BAq	A II@ARRT3@CBH 		:S@AE3K 		=CD A	 ! 		    s6   G 	G)G.
GG
G+*G+.
G<;G<c                 v   U R                  [        SS5      [        SS5      -   S5        U R                  [        SS5      S-   [        SS5      5        U R                  S[        SS5      -   [        SS5      5        U R                  S[        SS5      -   S5        U R                  [        SS5      S-   S5        g )Nr   r   r   r   r=         ?r   r   r-   s    r   test_addRatTestCase.test_add   s    QSAY.2QQAq	2SAYAq	2s1ay#.QS#.r   c                    U R                  [        SS5      [        SS5      -
  [        SS5      5        U R                  [        SS5      S-
  [        SS5      5        U R                  S[        SS5      -
  [        SS5      5        U R                  [        SS5      S-
  S	5        U R                  S[        SS5      -
  S	5        g )
Nr   r   r      r   r   r   r=         ?r   r-   s    r   test_subRatTestCase.test_sub  s    QSAY.B<QQAq	2SAYAq	2QS#.s1ay#.r   c                 b   U R                  [        SS5      [        SS5      -  [        SS5      5        U R                  [        SS5      S-  S5        U R                  S[        SS5      -  S5        U R                  [        SS5      S-  S5        U R                  S[        SS5      -  S5        g )	Nr   r   r   r   r   r   r   r=   r   r-   s    r   test_mulRatTestCase.test_mul	  s    QSAY.B<Ra,SQZ,Rc)3/s2qz)3/r   c                    U R                  [        SS5      [        SS5      -  [        SS5      5        U R                  [        SS5      S-  [        SS5      5        U R                  S[        S5      -  [        SS5      5        U R                  S[        S	S5      -  S
5        U R                  [        S	S5      S-  S
5        g )Nr   r   r   r      	   r         @r   r   r   r-   s    r   test_divRatTestCase.test_div  s    Rc!Qi/R<RaR4SVSAY/s1ay#.QS#.r   c                    U R                  [        S5      [        S5      -  S5        U R                  [        SS5      [        SS5      -  S5        U R                  [        S5      S-  S5        U R                  S[        S5      -  S5        g )Nr      r   r   r   r-   s    r   test_floordivRatTestCase.test_floordiv  sp    RCF*A.Rs1ay0!4RAq)s1vq)r   c                 &   U R                  [        S5      [        SS5      5        U R                  [        S5      S5        U R                  S[        S5      5        U R                  [        S5      S5        U R                  S[        S5      5        g )Nr   r   r   g      $@r   r-   s    r   test_eqRatTestCase.test_eq  sl    R#b!*-R"%SW%R$'s2w'r   c                    U R                  [        SS5      [        SS5      -  [        SS5      5        U R                  [        SS5      S-  [        SS5      5        U R                  S[        S5      -  [        SS5      5        U R                  S[        S	S5      -  S
5        U R                  [        S	S5      S-  S
5        U R                  [        S5      S5        g )Nr   r   r   r   r   r   r   r   r   r   z1/2r   )r   r   evalr-   s    r   test_true_divRatTestCase.test_true_div$  s    Rc!Qi/R<RaR4SVSAY/s1ay#.QS#.ec*r   r	   N)ry   rz   r{   r|   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r      s1    1"EH//0/*(+r   r   c                        \ rS rSrS rS rSrg)OperationLoggeri/  c                     Xl         g r   logger)r&   r   s     r   r*   OperationLogger.__init__1  s    r   c                 "    U R                   " U6   g r   r   )r&   argss     r   log_operationOperationLogger.log_operation3  s    Tr   r   N)ry   rz   r{   r|   r*   r   r   r	   r   r   r   r   /  s    r   r   c                     / n/ nU H$  nUR                  U" UR                   5      5        M&      U " U6   U$ ! [         a     U$ f = fr   )appendr$   )opclasseslog	instancescs        r   op_sequencer   6  sZ     CI3::' 
I J  Js   7 
AAc                   &    \ rS rSrS rS rS rSrg)AiD  c                 0    U R                  S5        [        $ )NA.__eq__r   rH   rI   s     r   ru   A.__eq__E      :&r   c                 0    U R                  S5        [        $ )NA.__le__r   rI   s     r   __le__A.__le__H  r   r   c                 0    U R                  S5        [        $ )NA.__ge__r   rI   s     r   __ge__A.__ge__K  r   r   r	   Nry   rz   r{   r|   ru   r   r   r   r	   r   r   r   r   D      r   r   c                   &    \ rS rSrS rS rS rSrg)BiO  c                 0    U R                  S5        [        $ )NB.__eq__r   rI   s     r   ru   B.__eq__P  r   r   c                 0    U R                  S5        [        $ )NB.__le__r   rI   s     r   r   B.__le__S  r   r   c                 0    U R                  S5        [        $ )NB.__ge__r   rI   s     r   r   B.__ge__V  r   r   r	   Nr   r	   r   r   r   r   O  r   r   r   )	metaclassc                   &    \ rS rSrS rS rS rSrg)CiZ  c                 0    U R                  S5        [        $ )NC.__eq__r   rI   s     r   ru   C.__eq__[  r   r   c                 0    U R                  S5        [        $ )NC.__le__r   rI   s     r   r   C.__le__^  r   r   c                 0    U R                  S5        [        $ )NC.__ge__r   rI   s     r   r   C.__ge__a  r   r   r	   Nr   r	   r   r   r   r   Z  r   r   r   c                   &    \ rS rSrS rS rS rSrg)Vie  c                 0    U R                  S5        [        $ )NV.__eq__r   rI   s     r   ru   V.__eq__g  r   r   c                 0    U R                  S5        [        $ )NzV.__le__r   rI   s     r   r   V.__le__j  r   r   c                 0    U R                  S5        [        $ )NV.__ge__r   rI   s     r   r   V.__ge__m  r   r   r	   Nr   r	   r   r   r   r   e  s    r   r   c                       \ rS rSrS rSrg)OperationOrderTestsis  c                 R   U R                  [        [        [        [        5      SS/5        U R                  [        [        [        [        5      SS/5        U R                  [        [        [        [        5      SS/5        U R                  [        [        [        [
        5      SS/5        U R                  [        [        [
        [        5      SS/5        U R                  [        [        [        [        5      SS/5        U R                  [        [        [        [        5      SS/5        U R                  [        [        [        [        5      SS/5        U R                  [        [        [        [
        5      SS/5        U R                  [        [        [
        [        5      S	S/5        U R                  [        [        [        5      5        U R                  [        [        [        [        5      SS
/5        U R                  [        [        [        [        5      SS/5        g )Nr   r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   
issubclassr   r-   s    r   test_comparison_orders*OperationOrderTests.test_comparison_orderst  s}   RA.Z0HIRA.Z0HIRA.Z0HIRA.Z0HIRA.Z0HIRA.Z0HIRA.Z0HIRA.Z0HIRA.Z0HIRA.Z0HI
1a()RA.Z0HIRA.Z0HIr   r	   N)ry   rz   r{   r|   r  r   r	   r   r   r  r  s  s    Jr   r  c                       \ rS rSrS rSrg)SupEqi  c                     gNTr	   rI   s     r   ru   SupEq.__eq__      r   r	   Nry   rz   r{   r|   ru   r   r	   r   r   r	  r	    s    r   r	  c                       \ rS rSrSrSrg)Si  Nr	   r  r	   r   r   r  r        Fr   r  c                       \ rS rSrSrg)Fi  r	   N)ry   rz   r{   r|   r   r	   r   r   r  r    s     r   r  c                       \ rS rSrSrSrg)Xi  Nr	   r  r	   r   r   r  r    r  r   r  c                       \ rS rSrSrSrg)SNi  Nr	   )ry   rz   r{   r|   __ne__r   r	   r   r   r  r    r  r   r  c                       \ rS rSrS rSrSrg)XNi  c                     gr  r	   rI   s     r   ru   	XN.__eq__  r  r   Nr	   )ry   rz   r{   r|   ru   r  r   r	   r   r   r  r    s    Fr   r  c                        \ rS rSrS rS rSrg)FallbackBlockingTestsi  c                    [        5       [        5       [        5       [        5       4u  pp4U R	                  X5        U R	                  X5        U R	                  X!5        U R	                  X5        U R                  [        [        XA5        U R                  [        [        X5        U R                  [        [        X15        g r   )r	  r  r  r  r   assertRaisesr$   r   )r&   efsr   s        r   test_fallback_rmethod_blocking4FallbackBlockingTests.test_fallback_rmethod_blocking  s    Wac13+
a)R.)R.)R.r   c                 ,   [        5       [        5       [        5       p2nU R                  X:g  5        U R	                  [
        [        X5        U R	                  [
        [        X!5        U R                  X:g  5        U R	                  [
        [        X15        g r   )r	  r  r  assertFalser   r$   r   )r&   r!  snxns       r   test_fallback_ne_blocking/FallbackBlockingTests.test_fallback_ne_blocking  si    GRT24r )R/)R/!)R/r   r	   N)ry   rz   r{   r|   r$  r*  r   r	   r   r   r  r    s    
/0r   r  __main__) r   operatorr   r   r   abcr   r   r   r   r   objectr   TestCaser   r   r   r   r   r   r   registerr  r	  r  r  r  r  r  r  ry   mainr	   r   r   <module>r3     s      g& gRe+(## e+T 	 		7 		 	
 
 

1J(++ J&F 
 2 2   0H-- 0. zMMO r   