-í
è¶<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
 d
 Z d „  Z e d j o 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    s=   x2 t  t t t f D] } t |  | ƒ o d Sn q Wd 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      s  t  Z d  Z d d g Z d d d „ Z d „  Z e e e ƒ Z d „  Z	 e e	 e ƒ Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z e Z d „  Z d „  Z 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   |  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   |  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   |  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    se   |  i d j o> y t |  i ƒ SWn& t j
 o t d t |  ƒ ‚ n Xn 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    s8   |  i d j o t |  i ƒ Sn 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„   t  | ƒ o t | ƒ } n t | ƒ o3 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„   t  | ƒ o t | ƒ } n t | ƒ o3 t |  i | i | i |  i |  i | i ƒ Sn t | ƒ o t |  ƒ | Sn 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„   t  | ƒ o t | ƒ } n t | ƒ o3 t | i |  i |  i | i |  i | i ƒ Sn t | ƒ o | t |  ƒ Sn 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   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    sO   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    sS   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    sD   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
 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]z } |  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]w } 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
    /&&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
    /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
    /&#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 ƒ |  i d t d ƒ ƒ |  i t d ƒ d ƒ |  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   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   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
	