+
    Bi8                     (   ^ RI t ^ RIHtHtHt ^ RIHt R tR tR t	R t
 ! R R	]4      t ! R
 R] P                  4      t ! R R4      tR t ! R R]4      t ! R R]]R7      t ! R R]4      t ! R R]4      t]P+                  ]4        ! R R] P                  4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R  R!]4      t ! R" R#]4      t ! R$ R%4      t ! R& R'] P                  4      t]R(8X  d   ] P>                  ! 4        R# R# ))    N)eqlene)ABCMetac                 ,    V '       d   W,          T rK  V# N )abs   &&&/usr/lib/python3.14/test/test_binop.pygcdr      s    
sA1H    c                 "    \        V \        4      # r   )
isinstanceintxs   &r   isintr          ar   c                 ^    \         \        \        3 F  p\        W4      '       g   K   ^# 	  ^ #    )r   floatcomplexr   )r   Ts   & r   isnumr      s&    % a ! r   c                 "    \        V \        4      # r   )r   Ratr   s   &r   isRatr      r   r   c                      a  ] tR t^t o RR.tRR ltR t]! ]R4      tR t	]! ]	R4      t
R tR tR	 tR
 tR t]tR tR tR t]tR tR tR tR tR tR tR tR tR tRtV tR# )r   	_Rat__num	_Rat__denc                $   \        V4      '       g   \        R V,          4      h\        V4      '       g   \        RV,          4      hV^ 8X  d   \        R4      h\        W!4      p\	        W,          4      V n        \	        W#,          4      V n        R# )zRat numerator must be int (%r)z Rat denominator must be int (%r)zzero denominatorN)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                    V P                   # r   )r!   r&   s   &r   _get_numRat._get_num1       zzr   Nc                    V P                   # r   )r"   r-   s   &r   _get_denRat._get_den6   r0   r   c                @    R V P                   V P                  3,          # )zRat(%d, %d)r!   r"   r-   s   &r   __repr__Rat.__repr__;   s    

DJJ777r   c                *    \        \        V 4      4      # r   )strr   r-   s   &r   __str__Rat.__str__?   s    5;r   c                J    V P                   R ,          V P                  ,          # )      ?r5   r-   s   &r   	__float__Rat.__float__C   s    zz#~djj((r   c                    V P                   ^8X  d    \        V P                  4      # \        R\	        V 4      ,          4      h  \         d    \        R\	        T 4      ,          4      hi ; i)r   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 'A*c                v   \        V4      '       d   \        V4      p\        V4      '       de   \        V P                  VP                  ,          VP                  V P                  ,          ,           V P                  VP                  ,          4      # \        V4      '       d   \        V 4      V,           # \        # r   r   r   r   r!   r"   r   r   NotImplementedr&   others   &&r   __add__Rat.__add__Q   y    <<JE<<tzz%++-DJJ0FFzz%++-/ /<<;&&r   c                v   \        V4      '       d   \        V4      p\        V4      '       de   \        V P                  VP                  ,          VP                  V P                  ,          ,
          V P                  VP                  ,          4      # \        V4      '       d   \        V 4      V,
          # \        # r   rG   rI   s   &&r   __sub__Rat.__sub__^   rM   r   c                v   \        V4      '       d   \        V4      p\        V4      '       de   \        VP                  V P                  ,          V P                  VP                  ,          ,
          V P                  VP                  ,          4      # \        V4      '       d   V\        V 4      ,
          # \        # r   rG   rI   s   &&r   __rsub__Rat.__rsub__i   sy    <<JE<<u{{4::-

5;;0FFzz%++-/ /<<5;&&r   c                j   \        V4      '       dC   \        V P                  VP                  ,          V P                  VP                  ,          4      # \	        V4      '       d(   \        V P                  V,          V P                  4      # \        V4      '       d   \        V 4      V,          # \        # 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                j   \        V4      '       dC   \        V P                  VP                  ,          V P                  VP                  ,          4      # \	        V4      '       d(   \        V P                  V P                  V,          4      # \        V4      '       d   \        V 4      V,          # \        # r   rU   rI   s   &&r   __truediv__Rat.__truediv__   ss    <<tzz%++-tzz%++/EFF<<tzz4::e#344<<;&&r   c                h   \        V4      '       dC   \        VP                  V P                  ,          VP                  V P                  ,          4      # \	        V4      '       d'   \        WP                  ,          V P                  4      # \        V4      '       d   V\        V 4      ,          # \        # r   rU   rI   s   &&r   __rtruediv__Rat.__rtruediv__   sq    <<u{{4::-u{{4::/EFF<<uZZ'44<<5;&&r   c                    \        V4      '       d   \        V4      pM\        V4      '       g   \        # W,          pVP                  VP
                  ,          # r   )r   r   r   rH   r!   r"   r&   rJ   r   s   && r   __floordiv__Rat.__floordiv__   s=    <<JEu!!Jww!''!!r   c                L    W,          pVP                   VP                  ,          # r   r5   r_   s   && r   __rfloordiv__Rat.__rfloordiv__   s    Jww!''!!r   c                    \        V4      '       d   \        V4      pM\        V4      '       g   \        # W,          pW W,          ,
          3# r   )r   r   r   rH   r_   s   && r   
__divmod__Rat.__divmod__   s:    <<JEu!!K%)#$$r   c                    \        V4      '       d   \        V4      pM\        V4      '       g   \        # \	        W4      # r   )r   r   r   rH   divmodrI   s   &&r   __rdivmod__Rat.__rdivmod__   s.    <<JEu!!e""r   c                &    \        W4      ^,          # r   ri   rI   s   &&r   __mod__Rat.__mod__   s    d"1%%r   c                &    \        W4      ^,          # r   rm   rI   s   &&r   __rmod__Rat.__rmod__   s    e"1%%r   c                P   \        V4      '       d'   V P                  ^8H  ;'       d    V P                  V8H  # \        V4      '       d;   V P                  VP                  8H  ;'       d    V P                  VP                  8H  # \	        V4      '       d   \        V 4      V8H  # \        # r   )r   r"   r!   r   r   r   rH   rI   s   &&r   __eq__
Rat.__eq__   sy    <<::?::tzzU'::<<::,J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   rn   rq   rt   __static_attributes____classdictcell____classdict__s   @r   r   r      s      k*I! 8T
"C 8T
"C8 )A	 H		 H""
%#&& r   r   c                   V   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
tV tR# )RatTestCasec                   V P                  \        ^
^4      ^4       V P                  \        ^
^4      ^4       V P                  \        ^
^4      ^4       V P                  \        ^d^4      ^4       V P                  \        R^4      R4       V P                  \        ^
R4      ^4       V P                  \        RR4      R4       \        ^^4       F  p\        ^^4       F}  pV P                  \        W4      ^ 8  4       V P                  \        V) V4      ^ 8  4       V P                  \        W) 4      ^ 8  4       V P                  \        V) V) 4      ^ 8  4       K  	  K  	  R# )
   N)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           	        \        ^
^4      pV P                  VP                  ^4       V P                  VP                  ^4       \        ^
R4      pV P                  VP                  R	4       V P                  VP                  ^4       \        R
^4      pV P                  VP                  R	4       V P                  VP                  ^4       \        R
R4      pV P                  VP                  ^4       V P                  VP                  ^4       \        ^4      pV P                  VP                  ^4       V P                  VP                  ^4        \        ^^ 4      pV P	                  R4       RRRR. / R\         \        3	 FL  p \        V4      pV P	                  RV,          4        \        ^V4      pV P	                  RV,          4       KN  	  R#   \
         d     Lri ; i  \         d     LIi ; i  \         d     K  i ; i)r   z(Rat(1, 0) didn't raise ZeroDivisionError0g        y                NzRat(%r) didn't raise TypeErrorz!Rat(1, %r) didn't raise TypeErrorir   r   r	   )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(-G9G%$G%(G65G69HHc                   V P                  \        ^^4      \        ^^4      ,           ^4       V P                  \        ^^4      ^,           \        ^^4      4       V P                  ^\        ^^4      ,           \        ^^4      4       V P                  R\        ^^4      ,           R4       V P                  \        ^^4      R,           R4       R# )   r=         ?N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                   V P                  \        ^^4      \        ^^4      ,
          \        ^^
4      4       V P                  \        ^^4      ^,
          \        ^^4      4       V P                  ^\        ^^4      ,
          \        ^^4      4       V P                  \        ^^4      R,
          R4       V P                  R\        ^^4      ,
          R4       R# )   r=         ?Nr   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                   V P                  \        ^^4      \        ^^4      ,          \        ^
^4      4       V P                  \        ^
^4      ^,          ^
4       V P                  ^\        ^
^4      ,          ^
4       V P                  \        ^
^4      R,          R4       V P                  R\        ^
^4      ,          R4       R# )r   r   r=   Nr   r-   s   &r   test_mulRatTestCase.test_mul	  s    QSAY.B<Ra,SQZ,Rc)3/s2qz)3/r   c                   V P                  \        ^
^4      \        ^^4      ,          \        ^^4      4       V P                  \        ^
^4      ^,          \        ^
^	4      4       V P                  ^\        ^4      ,          \        ^^4      4       V P                  R\        ^^4      ,          R4       V P                  \        ^^4      R,          R4       R# )r         @r   Nr   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                >   V P                  \        ^
4      \        ^4      ,          ^4       V P                  \        ^
^4      \        ^^4      ,          ^4       V P                  \        ^
4      ^,          ^4       V P                  ^
\        ^4      ,          ^4       R# )r   Nr   r-   s   &r   test_floordivRatTestCase.test_floordiv  sp    RCF*A.Rs1ay0!4RAq)s1vq)r   c                (   V P                  \        ^
4      \        ^^4      4       V P                  \        ^
4      ^
4       V P                  ^
\        ^
4      4       V P                  \        ^
4      R4       V P                  R\        ^
4      4       R# )r   g      $@Nr   r-   s   &r   test_eqRatTestCase.test_eq  sl    R#b!*-R"%SW%R$'s2w'r   c                   V P                  \        ^
^4      \        ^^4      ,          \        ^^4      4       V P                  \        ^
^4      ^,          \        ^
^	4      4       V P                  ^\        ^4      ,          \        ^^4      4       V P                  R\        ^^4      ,          R4       V P                  \        ^^4      R,          R4       V P                  \        R4      R4       R# )r   r   r   z1/2r   N)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)rx   ry   rz   r{   r   r   r   r   r   r   r   r   r   r   r   r   s   @r   r   r      s9     1"EH//0/*(+ +r   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )OperationLoggeri/  c                    Wn         R # r   logger)r&   r   s   &&r   r*   OperationLogger.__init__1  s    r   c                &    V P                   ! V!   R # r   r   )r&   argss   &*r   log_operationOperationLogger.log_operation3  s    Tr   r   N)rx   ry   rz   r{   r*   r   r   r   r   s   @r   r   r   /  s      r   r   c                     . p. pV F$  pVP                  V! VP                   4      4       K&  	   V ! V!   V#   \         d     T# i ; ir   )appendr$   )opclasseslog	instancescs   &*   r   op_sequencer   6  sZ     CI3::' 
I J  Js   8 AAc                   2   a  ] tR tRt o R tR tR tRtV tR# )AiD  c                0    V P                  R 4       \        # )A.__eq__r   rH   rI   s   &&r   rt   A.__eq__E      :&r   c                0    V P                  R 4       \        # )A.__le__r   rI   s   &&r   __le__A.__le__H  r   r   c                0    V P                  R 4       \        # )A.__ge__r   rI   s   &&r   __ge__A.__ge__K  r   r   r	   N	rx   ry   rz   r{   rt   r   r   r   r   r   s   @r   r   r   D        r   r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )BiO  c                0    V P                  R 4       \        # )B.__eq__r   rI   s   &&r   rt   B.__eq__P  r   r   c                0    V P                  R 4       \        # )B.__le__r   rI   s   &&r   r   B.__le__S  r   r   c                0    V P                  R 4       \        # )B.__ge__r   rI   s   &&r   r   B.__ge__V  r   r   r	   Nr   r   s   @r   r   r   O  r   r   r   )	metaclassc                   2   a  ] tR tRt o R tR tR tRtV tR# )CiZ  c                0    V P                  R 4       \        # )C.__eq__r   rI   s   &&r   rt   C.__eq__[  r   r   c                0    V P                  R 4       \        # )C.__le__r   rI   s   &&r   r   C.__le__^  r   r   c                0    V P                  R 4       \        # )C.__ge__r   rI   s   &&r   r   C.__ge__a  r   r   r	   Nr   r   s   @r   r   r   Z  r   r   r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )Vie  c                0    V P                  R 4       \        # )V.__eq__r   rI   s   &&r   rt   V.__eq__g  r   r   c                0    V P                  R 4       \        # )zV.__le__r   rI   s   &&r   r   V.__le__j  r   r   c                0    V P                  R 4       \        # )V.__ge__r   rI   s   &&r   r   V.__ge__m  r   r   r	   Nr   r   s   @r   r   r   e  s      r   r   c                   &   a  ] tR tRt o R tRtV tR# )OperationOrderTestsis  c                B   V P                  \        \        \        \        4      R R .4       V P                  \        \        \        \        4      R R.4       V P                  \        \        \        \        4      RR .4       V P                  \        \        \        \
        4      RR.4       V P                  \        \        \
        \        4      RR.4       V P                  \        \        \        \        4      RR.4       V P                  \        \        \        \        4      RR.4       V P                  \        \        \        \        4      RR.4       V P                  \        \        \        \
        4      RR.4       V P                  \        \        \
        \        4      RR.4       V P                  \        \        4       V P                  \        \        \        \        4      RR	.4       V P                  \        \        \        \        4      RR
.4       R# )r   r   r   r   r   r   r   r   r   r   r   N)	r   r   r   r   r   r   r   assertIsSubclassr   r-   s   &r   test_comparison_orders*OperationOrderTests.test_comparison_orderst  sz   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a#RA.Z0HIRA.Z0HIr   r	   N)rx   ry   rz   r{   r   r   r   r   s   @r   r   r   s  s     J Jr   r   c                   &   a  ] tR tRt o R tRtV tR# )SupEqi  c                    R # Tr	   rI   s   &&r   rt   SupEq.__eq__      r   r	   N)rx   ry   rz   r{   rt   r   r   r   s   @r   r   r     s      r   r   c                       ] tR tRtRtRtR# )Si  Nr	   rx   ry   rz   r{   rt   r   r	   r   r   r  r        Fr   r  c                       ] tR tRtRtR# )Fi  r	   N)rx   ry   rz   r{   r   r	   r   r   r	  r	    s    r   r	  c                       ] tR tRtRtRtR# )Xi  Nr	   r  r	   r   r   r  r    r  r   r  c                       ] tR tRtRtRtR# )SNi  Nr	   )rx   ry   rz   r{   __ne__r   r	   r   r   r  r    r  r   r  c                   *   a  ] tR tRt o R tRtRtV tR# )XNi  c                    R # r  r	   rI   s   &&r   rt   	XN.__eq__  r  r   Nr	   )rx   ry   rz   r{   rt   r  r   r   r   s   @r   r  r    s     Fr   r  c                   ,   a  ] tR tRt o R tR tRtV tR# )FallbackBlockingTestsi  c                   \        4       \        4       \        4       \        4       3w  rr4V P	                  W4       V P	                  W4       V P	                  W!4       V P	                  W4       V P                  \        \        WA4       V P                  \        \        W4       V P                  \        \        W14       R # 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                .   \        4       \        4       \        4       r2pV P                  W8g  4       V P	                  \
        \        W4       V P	                  \
        \        W!4       V P                  W8g  4       V P	                  \
        \        W14       R # 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)rx   ry   rz   r{   r  r   r   r   r   s   @r   r  r    s     
/0 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  rx   mainr	   r   r   <module>r)     s      g& gRe+(## e+T 	 		7 		 	
 
 

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