-í
è¶<c       sÀ     d  Z    d k Z  d k Z  d „  Z  d „  Z  d „  Z  d „  Z  d e f d „  ƒ  YZ Ò d e i	 f d	 „  ƒ  YZ
 9d
 Z Cd „  Z Ge d j o He ƒ  n d S(   s9   Tests for binary operators on subtypes of built-in types.Nc    s?      x(  |  o 	 | |  |  f \ }  } q W
 | Sd S(   s1   Greatest common divisor using Euclid's algorithm.N(   s   as   b(   s   as   b(    (    s%   /usr/lib/python2.2/test/test_binop.pys   gcd s
    
c    s*      t  |  t ƒ p t  |  t ƒ Sd S(   s5   Test whether an object is an instance of int or long.N(   s
   isinstances   xs   ints   long(   s   x(    (    s%   /usr/lib/python2.2/test/test_binop.pys   isint s   c    sR      x; t  t t t f D ]$ }  t |  | ƒ o  d Sn q W d Sd S(   sA   Test whether an object is an instance of a built-in numeric type.i   i    N(   s   ints   longs   floats   complexs   Ts
   isinstances   x(   s   xs   T(    (    s%   /usr/lib/python2.2/test/test_binop.pys   isnum s    	c    s      t  |  t ƒ Sd S(   s6   Test wheter an object is an instance of the Rat class.N(   s
   isinstances   xs   Rat(   s   x(    (    s%   /usr/lib/python2.2/test/test_binop.pys   isRat s   s   Ratc      sy   t  Z d  Z   d d g Z ! d d d „ Z 0 d „  Z 3 e e e ƒ Z 5 d „  Z	 8 e e	 e ƒ Z
 : d „  Z > d	 „  Z B d
 „  Z F d „  Z P d „  Z V d „  Z a e Z c d „  Z n d „  Z y d „  Z ƒ e Z … d „  Z  e Z ‘ d „  Z › e Z  d „  Z ¦ d „  Z « d „  Z ´ d „  Z ¼ d „  Z À d „  Z Ä d „  Z  Î d „  Z! RS(   s:   Rational number implemented as a normalized pair of longs.s	   _Rat__nums	   _Rat__denl    l    c    s²   ! $ % t  | ƒ o & t d | ‚ n ' t  | ƒ o ( t d | ‚ n * | d j o + t d ‚ n , t | | ƒ } - t | | ƒ |  _	 . t | | ƒ |  _
 d S(   sd   Constructor: Rat([num[, den]]).

        The arguments must be ints or longs, and default to (0, 1).s&   Rat numerator must be int or long (%r)s(   Rat denominator must be int or long (%r)i    s   zero denominatorN(   s   isints   nums	   TypeErrors   dens   ZeroDivisionErrors   gcds   gs   longs   selfs	   _Rat__nums	   _Rat__den(   s   selfs   nums   dens   g(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __init__! s   c    s   0 1 2 |  i Sd S(   s7   Accessor function for read-only 'num' attribute of Rat.N(   s   selfs	   _Rat__num(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   _get_num0 s   c    s   5 6 7 |  i Sd S(   s7   Accessor function for read-only 'den' attribute of Rat.N(   s   selfs	   _Rat__den(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   _get_den5 s   c    s!   : ; < d |  i |  i f Sd S(   s=   Convert a Rat to an string resembling a Rat constructor call.s   Rat(%d, %d)N(   s   selfs	   _Rat__nums	   _Rat__den(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __repr__: s   c    s   > ? @ t  t |  ƒ ƒ Sd S(   s=   Convert a Rat to a string resembling a decimal numeric value.N(   s   strs   floats   self(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __str__> s   c    s   B C D |  i d |  i Sd S(   s   Convert a Rat to a float.f1.0N(   s   selfs	   _Rat__nums	   _Rat__den(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys	   __float__B s   c    s}   F G H |  i d j oJ I y J t |  i ƒ SWn, K t j
 o L t d t |  ƒ ‚ n Xn N t d t |  ƒ ‚ d S(   s,   Convert a Rat to an int; self.den must be 1.i   s   %s too large to convert to ints   can't convert %s to intN(   s   selfs	   _Rat__dens   ints	   _Rat__nums   OverflowErrors   reprs
   ValueError(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __int__F s   c    sG   P Q R |  i d j o S t |  i ƒ Sn T t d t |  ƒ ‚ d S(   s-   Convert a Rat to an long; self.den must be 1.i   s   can't convert %s to longN(   s   selfs	   _Rat__dens   longs	   _Rat__nums
   ValueErrors   repr(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __long__P s   c    s¢   V W X t  | ƒ o Y t | ƒ } n Z t | ƒ o9 [ t |  i | i | i |  i \ |  i | i ƒ Sn ] t | ƒ o ^ t |  ƒ | Sn _ t	 Sd S(   s$   Add two Rats, or a Rat and a number.N(
   s   isints   others   Rats   isRats   selfs	   _Rat__nums	   _Rat__dens   isnums   floats   NotImplemented(   s   selfs   other(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __add__V s   !c    s¢   c d e t  | ƒ o f t | ƒ } n g t | ƒ o9 h t |  i | i | i |  i i |  i | i ƒ Sn j t | ƒ o k t |  ƒ | Sn l t	 Sd S(   s)   Subtract two Rats, or a Rat and a number.N(
   s   isints   others   Rats   isRats   selfs	   _Rat__nums	   _Rat__dens   isnums   floats   NotImplemented(   s   selfs   other(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __sub__c s   !c    s¢   n o p t  | ƒ o q t | ƒ } n r t | ƒ o9 s t | i |  i |  i | i t |  i | i ƒ Sn u t | ƒ o v | t |  ƒ Sn w t	 Sd S(   s9   Subtract two Rats, or a Rat and a number (reversed args).N(
   s   isints   others   Rats   isRats	   _Rat__nums   selfs	   _Rat__dens   isnums   floats   NotImplemented(   s   selfs   other(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __rsub__n s   !c    sœ   y z { t  | ƒ o( | t |  i | i |  i | i ƒ Sn } t | ƒ o ~ t |  i | |  i ƒ Sn  t | ƒ o € t |  ƒ | Sn  t	 Sd S(   s)   Multiply two Rats, or a Rat and a number.N(
   s   isRats   others   Rats   selfs	   _Rat__nums	   _Rat__dens   isints   isnums   floats   NotImplemented(   s   selfs   other(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __mul__y s   (c    sœ   … † ‡ t  | ƒ o( ˆ t |  i | i |  i | i ƒ Sn ‰ t | ƒ o Š t |  i |  i | ƒ Sn ‹ t | ƒ o Œ t |  ƒ | Sn  t	 Sd S(   s'   Divide two Rats, or a Rat and a number.N(
   s   isRats   others   Rats   selfs	   _Rat__nums	   _Rat__dens   isints   isnums   floats   NotImplemented(   s   selfs   other(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __truediv__… s   (c    sœ   ‘ ’ “ t  | ƒ o( ” t | i |  i | i |  i ƒ Sn • t | ƒ o – t | |  i |  i ƒ Sn — t | ƒ o ˜ | t |  ƒ Sn ™ t	 Sd S(   s7   Divide two Rats, or a Rat and a number (reversed args).N(
   s   isRats   others   Rats	   _Rat__nums   selfs	   _Rat__dens   isints   isnums   floats   NotImplemented(   s   selfs   other(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __rtruediv__‘ s   (c    sg    ž Ÿ t  | ƒ o   t | ƒ } n ¡ t | ƒ o ¢ t Sn £ |  | } ¤ | i | i Sd S(   s.   Divide two Rats, returning the floored result.N(	   s   isints   others   Rats   isRats   NotImplementeds   selfs   xs	   _Rat__nums	   _Rat__den(   s   selfs   others   x(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __floordiv__ s   c    s(   ¦ § ¨ | |  } © | i | i Sd S(   s>   Divide two Rats, returning the floored result (reversed args).N(   s   others   selfs   xs	   _Rat__nums	   _Rat__den(   s   selfs   others   x(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __rfloordiv__¦ s   c    sk   « ¬ ­ t  | ƒ o ® t | ƒ } n ¯ t | ƒ o ° t Sn ± |  | } ² | |  | | f Sd S(   s2   Divide two Rats, returning quotient and remainder.N(   s   isints   others   Rats   isRats   NotImplementeds   selfs   x(   s   selfs   others   x(    (    s%   /usr/lib/python2.2/test/test_binop.pys
   __divmod__« s   c    sY   ´ µ ¶ t  | ƒ o · t | ƒ } n ¸ t | ƒ o ¹ t Sn º t | |  ƒ Sd S(   sB   Divide two Rats, returning quotient and remainder (reversed args).N(   s   isints   others   Rats   isRats   NotImplementeds   divmods   self(   s   selfs   other(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __rdivmod__´ s   c    s   ¼ ½ ¾ t  |  | ƒ d Sd S(   s   Take one Rat modulo another.i   N(   s   divmods   selfs   other(   s   selfs   other(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __mod__¼ s   c    s   À Á Â t  | |  ƒ d Sd S(   s,   Take one Rat modulo another (reversed args).i   N(   s   divmods   others   self(   s   selfs   other(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __rmod__À s   c    s¦   Ä Å Æ t  | ƒ o$ Ç |  i d j o |  i | j Sn È t | ƒ o* É |  i | i j o |  i | i j Sn Ê t | ƒ o Ë t |  ƒ | j Sn Ì t Sd S(   s   Compare two Rats for equality.i   N(	   s   isints   others   selfs	   _Rat__dens	   _Rat__nums   isRats   isnums   floats   NotImplemented(   s   selfs   other(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __eq__Ä s   $*c    s   Î Ï Ð |  | j Sd S(   s    Compare two Rats for inequality.N(   s   selfs   other(   s   selfs   other(    (    s%   /usr/lib/python2.2/test/test_binop.pys   __ne__Î s   ("   s   __name__s
   __module__s   __doc__s	   __slots__s   __init__s   _get_nums   propertys   Nones   nums   _get_dens   dens   __repr__s   __str__s	   __float__s   __int__s   __long__s   __add__s   __radd__s   __sub__s   __rsub__s   __mul__s   __rmul__s   __truediv__s   __div__s   __rtruediv__s   __rdiv__s   __floordiv__s   __rfloordiv__s
   __divmod__s   __rdivmod__s   __mod__s   __rmod__s   __eq__s   __ne__(    (    (    s%   /usr/lib/python2.2/test/test_binop.pys   Rat s<   
	
	
	
			
s   RatTestCasec      s€   Ò t  Z d  Z Ó Õ d „  Z ä d „  Z d „  Z d „  Z d „  Z  d „  Z 'd „  Z	 -d „  Z
 4d	 „  Z RS(
   s3   Unit tests for Rat class and its support utilities.c    s‹  Õ Ö |  i t d d ƒ d ƒ × |  i t d d ƒ d ƒ Ø |  i t d d ƒ d ƒ Ù |  i t d d ƒ d ƒ Ú |  i t d	 d ƒ d
 ƒ Û |  i t d d
 ƒ d ƒ Ü |  i t d	 d
 ƒ d
 ƒ Ý xº t d d ƒ DÝ ]¦ } Þ xš t d d ƒ DÞ ]† } ß |  i t | | ƒ d j ƒ à |  i t | | ƒ d j  ƒ á |  i t | | ƒ d j ƒ â |  i t | | ƒ d j  ƒ qö WqÚ Wd  S(   Ni
   i   i   i   i   i   i   id   iöÿÿÿiþÿÿÿi   i    (   s   selfs   assertEquals   gcds   ranges   is   js   assert_(   s   selfs   is   j(    (    s%   /usr/lib/python2.2/test/test_binop.pys   test_gcdÕ s    	 	  c  	  s~  ä å t  d d ƒ } æ |  i | i d ƒ ç |  i | i d ƒ è t  d d ƒ } é |  i | i d ƒ ê |  i | i d ƒ ë t  d d ƒ } ì |  i | i d ƒ í |  i | i d ƒ î t  d	 d ƒ } ï |  i | i d ƒ ð |  i | i d ƒ ñ t  d	 d ƒ } ò |  i | i d ƒ ó |  i | i d ƒ ô t  d
 ƒ } õ |  i | i d
 ƒ ö |  i | i d ƒ ÷ y ø t  d d ƒ } Wn ù t j
 o
 ú n Xü |  i d ƒ ý x» d d d f  g  h  t t  t	 f	 Dý ]• } þ y ÿ t  | ƒ } Wn  t j
 o
 n X|  i d | ƒ y t  d | ƒ } Wn t j
 o
 n X	|  i d | ƒ qÞWd  S(   Ni
   i   i   i   l   
 l    iñÿÿÿiþÿÿÿiöÿÿÿi   i   i    s(   Rat(1, 0) didn't raise ZeroDivisionErrors   0f0.0x0.00.0s   Rat(%r) didn't raise TypeErrors!   Rat(1, %r) didn't raise TypeError(   s   Rats   as   selfs   assertEquals   nums   dens   ZeroDivisionErrors   fails   Nones   unittests   bads	   TypeError(   s   selfs   as   bad(    (    s%   /usr/lib/python2.2/test/test_binop.pys   test_constructorä sF   % 	c    sÂ   |  i t d d ƒ t d d ƒ d ƒ |  i t d d ƒ d t d d ƒ ƒ |  i d t d d ƒ t d d ƒ ƒ |  i d t d d ƒ d ƒ |  i t d d ƒ d d ƒ d  S(   Ni   i   i   i   f1.0f1.5(   s   selfs   assertEquals   Rat(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   test_adds
   ))) c    sË   |  i t d d ƒ t d d ƒ t d d ƒ ƒ |  i t d d ƒ d t d d ƒ ƒ |  i d t d d ƒ t d d ƒ ƒ |  i t d d ƒ d d	 ƒ |  i d t d d ƒ d	 ƒ d  S(
   Ni   i   i   i   i
   i   i   f1.0f0.5(   s   selfs   assertEquals   Rat(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   test_subs
   2)) c    s¹   |  i t d d ƒ t d d ƒ t d d ƒ ƒ |  i t d d ƒ d d ƒ |  i d t d d ƒ d ƒ |  i t d d ƒ d d ƒ |  i d t d d ƒ d ƒ d  S(	   Ni   i   i   i   i
   i   f0.5f1.0(   s   selfs   assertEquals   Rat(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   test_muls
   2   c    sÈ    !|  i t d d ƒ t d d ƒ t d d ƒ ƒ "|  i t d d ƒ d t d d ƒ ƒ #|  i d t d ƒ t d d ƒ ƒ $|  i d t d	 d ƒ d
 ƒ %|  i t d	 d ƒ d d
 ƒ d  S(   Ni
   i   i   i   i   i	   i   f3.0i   f1.5(   s   selfs   assertEquals   Rat(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   test_div s
   2)& c    s   '(|  i t d ƒ t d ƒ d ƒ )|  i t d d ƒ t d d ƒ d ƒ *|  i t d ƒ d d ƒ +|  i d t d ƒ d ƒ d  S(   Ni
   i   i   i   (   s   selfs   assertEquals   Rat(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   test_floordiv's   #)c    s   -.|  i t d ƒ t d d ƒ ƒ /|  i t d ƒ d ƒ 0|  i d t d ƒ ƒ 1|  i t d ƒ d ƒ 2|  i d t d ƒ ƒ d  S(   Ni
   i   i   f10.0(   s   selfs   assertEquals   Rat(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   test_eq-s
   "c    s   45e  d  Ud  S(   N(   s   future_test(   s   self(    (    s%   /usr/lib/python2.2/test/test_binop.pys   test_future_div4s   (   s   __name__s
   __module__s   __doc__s   test_gcds   test_constructors   test_adds   test_subs   test_muls   test_divs   test_floordivs   test_eqs   test_future_div(    (    (    s%   /usr/lib/python2.2/test/test_binop.pys   RatTestCaseÒ s   's  
from __future__ import division
self.assertEqual(Rat(10, 3) / Rat(5, 7), Rat(14, 3))
self.assertEqual(Rat(10, 3) / 3, Rat(10, 9))
self.assertEqual(2 / Rat(5), Rat(2, 5))
self.assertEqual(3.0 * Rat(1, 2), 1.5)
self.assertEqual(Rat(1, 2) * 3.0, 1.5)
self.assertEqual(eval('1/2'), 0.5)
c      s   CDt  i t ƒ d  S(   N(   s   test_supports   run_unittests   RatTestCase(    (    (    s%   /usr/lib/python2.2/test/test_binop.pys	   test_mainCs   s   __main__(   s   __doc__s   test_supports   unittests   gcds   isints   isnums   isRats   objects   Rats   TestCases   RatTestCases   future_tests	   test_mains   __name__(
   s   test_supports   RatTestCases   gcds   isints   unittests   isRats   isnums   Rats	   test_mains   future_test(    (    s%   /usr/lib/python2.2/test/test_binop.pys   ? s   ·g	
