ó
¬«Y]c           @   ss  d  Z  d d l m Z d d l m Z d d l Z d d l Z d d l Z d d l Z d d l	 Z	 d d l
 Z
 d d l m Z m Z d d l m Z m Z e j Z e j Z e
 j e j d ƒ j d ƒ d	 ƒ Z d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d e j f d „  ƒ  YZ d e
 j f d „  ƒ  YZ d „  Z d e
 j f d „  ƒ  YZ d „  Z  e! d k roe  ƒ  n  d S(   s   Tests for Lib/fractions.py.iÿÿÿÿ(   t   Decimal(   t   run_unittestN(   t   copyt   deepcopy(   t   dumpst   loadst   doublet   IEEEs   test requires IEEE 754 doublest
   DummyFloatc           B   sk   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z e Z d
 Z RS(   s8   Dummy float class for testing comparisons with Fractionsc         C   s+   t  | t ƒ s t d ƒ ‚ n  | |  _ d  S(   Ns-   DummyFloat can only be initialized from float(   t
   isinstancet   floatt	   TypeErrort   value(   t   selfR   (    (    s$   lib/python2.7/test/test_fractions.pyt   __init__   s    c         C   sU   t  | t j ƒ r+ | t j |  j ƒ | ƒ St  | t ƒ rM | |  j | j ƒ St Sd  S(   N(   R	   t   numberst   Rationalt   Ft
   from_floatR   R   t   NotImplemented(   R   t   othert   op(    (    s$   lib/python2.7/test/test_fractions.pyt   _richcmp   s
    c         C   s   |  j  | t j ƒ S(   N(   R   t   operatort   eq(   R   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   __eq__%   t    c         C   s   |  j  | t j ƒ S(   N(   R   R   t   le(   R   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   __le__&   R   c         C   s   |  j  | t j ƒ S(   N(   R   R   t   lt(   R   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   __lt__'   R   c         C   s   |  j  | t j ƒ S(   N(   R   R   t   ge(   R   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   __ge__(   R   c         C   s   |  j  | t j ƒ S(   N(   R   R   t   gt(   R   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   __gt__)   R   c         C   s   t  s t d ƒ ‚ d  S(   Ns/   __float__ should not be invoked for comparisons(   t   Falset   AssertionError(   R   (    (    s$   lib/python2.7/test/test_fractions.pyt	   __float__,   s    c         C   s   t  s t d ƒ ‚ d  S(   Ns-   __sub__ should not be invoked for comparisons(   R#   R$   (   R   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   __sub__0   s    N(   t   __name__t
   __module__t   __doc__R   R   R   R   R   R    R"   R%   R&   t   __rsub__t   Nonet   __hash__(    (    (    s$   lib/python2.7/test/test_fractions.pyR      s   									t   DummyRationalc           B   sS   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d Z RS(	   sA   Test comparison of Fraction with a naive rational implementation.c         C   s-   t  | | ƒ } | | |  _ | | |  _ d  S(   N(   t   gcdt   numt   den(   R   R/   R0   t   g(    (    s$   lib/python2.7/test/test_fractions.pyR   ;   s    c         C   s<   t  | t j ƒ r4 |  j | j k o3 |  j | j k St Sd  S(   N(   R	   t	   fractionst   FractionR/   t
   _numeratorR0   t   _denominatorR   (   R   R   (    (    s$   lib/python2.7/test/test_fractions.pyR   @   s    c         C   s   |  j  | j |  j | j k  S(   N(   R/   R5   R0   R4   (   R   R   (    (    s$   lib/python2.7/test/test_fractions.pyR   G   s    c         C   s   |  j  | j |  j | j k S(   N(   R/   R5   R0   R4   (   R   R   (    (    s$   lib/python2.7/test/test_fractions.pyR"   J   s    c         C   s   |  j  | j |  j | j k S(   N(   R/   R5   R0   R4   (   R   R   (    (    s$   lib/python2.7/test/test_fractions.pyR   M   s    c         C   s   |  j  | j |  j | j k S(   N(   R/   R5   R0   R4   (   R   R   (    (    s$   lib/python2.7/test/test_fractions.pyR    P   s    c         C   s   t  s t d ƒ ‚ d  S(   Ns   __float__ should not be invoked(   R#   R$   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyR%   U   s    N(   R'   R(   R)   R   R   R   R"   R   R    R%   R+   R,   (    (    (    s$   lib/python2.7/test/test_fractions.pyR-   8   s   							t   DummyFractionc           B   s   e  Z d  Z RS(   s6   Dummy Fraction subclass for copy and deepcopy testing.(   R'   R(   R)   (    (    (    s$   lib/python2.7/test/test_fractions.pyR6   \   s   t   GcdTestc           B   s   e  Z d  „  Z RS(   c         C   sþ   |  j  d t d d ƒ ƒ |  j  d t d d ƒ ƒ |  j  d t d d ƒ ƒ |  j  d t d d ƒ ƒ |  j  d t d d ƒ ƒ |  j  d t d d ƒ ƒ |  j  d t d d ƒ ƒ |  j  d t d d ƒ ƒ |  j  d t d d	 ƒ ƒ |  j  d
 t d	 d ƒ ƒ d  S(   Ni    i   iÿÿÿÿi   iéÿÿÿi   i   ix   iT   iôÿÿÿiˆÿÿÿ(   t   assertEqualR.   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testMisca   s    (   R'   R(   R9   (    (    (    s$   lib/python2.7/test/test_fractions.pyR7   _   s   c         C   s   |  j  |  j f S(   N(   t	   numeratort   denominator(   t   r(    (    s$   lib/python2.7/test/test_fractions.pyt   _componentsn   s    t   FractionTestc           B   s
  e  Z d  „  Z d „  Z d „  Z e d „  ƒ Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s0   |  j  t | ƒ t | ƒ ƒ |  j  | | ƒ d S(   s4   Asserts that both the types and values are the same.N(   R8   t   type(   R   t   expectedt   actual(    (    s$   lib/python2.7/test/test_fractions.pyt   assertTypedEqualst   s    c         O   sU   y | | | Ž  Wn) | k
 r< } |  j  | t | ƒ ƒ n X|  j d | j ƒ d S(   s@   Asserts that callable(*args, **kwargs) raises exc_type(message).s   %s not raisedN(   R8   t   strt   failR'   (   R   t   exc_typet   messaget   callablet   argst   kwargst   e(    (    s$   lib/python2.7/test/test_fractions.pyt   assertRaisesMessagey   s
    c         C   s  |  j  d t t ƒ  ƒ ƒ |  j  d t t d ƒ ƒ ƒ |  j  d t t t d d ƒ ƒ ƒ ƒ |  j  d  t t d d ƒ ƒ ƒ |  j  d! t t d d ƒ ƒ ƒ |  j  d" t t d d ƒ ƒ ƒ |  j  d# t t d d	 ƒ ƒ ƒ |  j  d$ t t d d
 ƒ ƒ ƒ |  j  d& t t d' ƒ ƒ ƒ |  j  d( t t t d d ƒ d ƒ ƒ ƒ |  j  d) t t d t d d ƒ ƒ ƒ ƒ |  j  d* t t t d d ƒ t d d ƒ ƒ ƒ ƒ |  j t d t d d ƒ |  j t t d+ ƒ |  j t t d d ƒ |  j t t d d ƒ |  j t t d d ƒ d  S(,   Ni    i   i   i   iÿÿÿÿiþÿÿÿi   i   i
   i   i   iM   i   i÷ÿÿÿiöÿÿÿi	   i¶	  iµ	  i   ic  iq   s   Fraction(12, 0)i   g      ø?y              @s   3/2y                y              ð?(   i    i   (   i   i   (   i   i   (   iÿÿÿÿi   (   iÿÿÿÿi   (   i   i   (   i   i   (   i   i   l      m+?ÐR (   l      m+?ÐR i   l      m+?ÐR (   i   iM   (   i÷ÿÿÿi   (   i¶	  iµ	  y      ø?      @(   R8   R=   R   RK   t   ZeroDivisionErrort   assertRaisesR   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testInitƒ   s$    %((1c         C   s£   |  j  d t t d ƒ ƒ ƒ |  j  d t t d ƒ ƒ ƒ |  j  d t t d	 ƒ ƒ ƒ |  j t t t d
 ƒ ƒ |  j t t t d ƒ ƒ |  j t t t d ƒ ƒ d  S(   Ni   i   g      @i    i   g       €IÍÌÌÌÌÌ I      € gš™™™™™¹?t   nant   infs   -inf(   i   i   (   i    i   (   IÍÌÌÌÌÌ I      € (   R8   R=   R   RM   R   R
   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testInitFromFloat›   s    	c         C   sÎ   |  j  d t t t d ƒ ƒ ƒ ƒ |  j  d t t t d ƒ ƒ ƒ ƒ |  j  d t t t d	 ƒ ƒ ƒ ƒ |  j t t t d
 ƒ ƒ |  j t t t d ƒ ƒ |  j t t t d ƒ ƒ |  j t t t d ƒ ƒ d  S(   Ni   i
   s   1.1i   iÈ   s   3.5e-2i    i   s   .000e20RO   t   snanRP   s   -inf(   i   i
   (   i   iÈ   (   i    i   (   R8   R=   R   R    RM   R   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testInitFromDecimal¥   s    			c         C   s„  |  j  d0 t t d ƒ ƒ ƒ |  j  d1 t t d ƒ ƒ ƒ |  j  d2 t t d ƒ ƒ ƒ |  j  d3 t t d	 ƒ ƒ ƒ |  j  d4 t t d ƒ ƒ ƒ |  j  d5 t t d ƒ ƒ ƒ |  j  d6 t t d ƒ ƒ ƒ |  j  d7 t t d ƒ ƒ ƒ |  j  d8 t t d ƒ ƒ ƒ |  j  d9 t t d ƒ ƒ ƒ |  j  d: t t d ƒ ƒ ƒ |  j  d; t t d ƒ ƒ ƒ |  j  d< t t d ƒ ƒ ƒ |  j  d= t t d ƒ ƒ ƒ |  j  d> t t d ƒ ƒ ƒ |  j t d t d ƒ |  j t d t d ƒ |  j t d  t d! ƒ |  j t d" t d# ƒ |  j t d$ t d% ƒ |  j t d& t d' ƒ |  j t d( t d) ƒ |  j t d* t d+ ƒ |  j t d, t d- ƒ |  j t d. t d/ ƒ d  S(?   Ni   i   t   5i   i   s   3/2s    
  +3/2iýÿÿÿs   -3/2  i   s       013/02 
  u       013/02 
  i   s    3.2 iðÿÿÿu    -3.2 u    -3. u    .6 i5  s   32.e-5i@B s   1E+06iôÏÿÿs   -1.23e4i    s    .0e+0	s   -0.000e0s   Fraction(3, 0)s   3/0s"   Invalid literal for Fraction: '3/'s   3/s"   Invalid literal for Fraction: '/2's   /2s$   Invalid literal for Fraction: '3 /2's   3 /2s$   Invalid literal for Fraction: '3/+2's   3/+2s%   Invalid literal for Fraction: '+ 3/2's   + 3/2s#   Invalid literal for Fraction: '3a2't   3a2s%   Invalid literal for Fraction: '3/7.2's   3/7.2s%   Invalid literal for Fraction: '3.2/7's   3.2/7s!   Invalid literal for Fraction: '.'t   .(   i   i   (   i   i   (   i   i   (   iýÿÿÿi   (   i   i   (   i   i   (   i   i   (   iðÿÿÿi   (   iýÿÿÿi   (   i   i   (   i   i5  (   i@B i   (   iôÏÿÿi   (   i    i   (   i    i   (   R8   R=   R   RK   RL   t
   ValueError(   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testFromString±   sZ    








c         C   sÂ   t  d d ƒ } | j d d ƒ |  j d
 t | ƒ ƒ |  j t t | d d ƒ |  j t t | d d ƒ |  j d t | ƒ ƒ d	 | _ d | _ |  j d t | ƒ ƒ |  j	 t  d	 d ƒ | ƒ d  S(   Ni   i   i   i   R:   i   R;   i   i   (   i   i   (   i   i   (   i   i   (
   R   R   R8   R=   RM   t   AttributeErrort   setattrR4   R5   t   assertNotEqual(   R   R<   (    (    s$   lib/python2.7/test/test_fractions.pyt   testImmutableé   s    		c         C   sŸ  |  j  t t j d ƒ |  j d t t j d ƒ ƒ ƒ d } |  j | d f t t j | ƒ ƒ ƒ |  j d t t j d ƒ ƒ ƒ |  j d t t j d ƒ ƒ ƒ |  j d t t j d ƒ ƒ ƒ |  j d t t j d ƒ ƒ ƒ |  j t d ƒ t t j d ƒ ƒ ƒ |  j d t t j d ƒ ƒ ƒ |  j d t t j d ƒ ƒ ƒ d } | | } |  j t d t j | ƒ |  j t d t j | ƒ |  j t d t j | ƒ d  S(   Ni   y              @i
   i   Ié}ô"i    g       €g      $@iûÿÿÿi   g      Àl      l+?ÐR göJáÇ-µDi   IÍÌÌÌÌÌ I       gš™™™™™	@g      ðs   Cannot convert inf to Fraction.s    Cannot convert -inf to Fraction.s   Cannot convert nan to Fraction.y      @      @(   i
   i   (   i    i   (   i
   i   (   iûÿÿÿi   (   l      l+?ÐR i   l      m+?ÐR (   IÍÌÌÌÌÌ I       (   RM   R   R   R   R8   R=   R
   RK   (   R   t   bigintRP   RO   (    (    s$   lib/python2.7/test/test_fractions.pyt   testFromFloatù   s0    %	%	
c         C   s†  |  j  t t j d ƒ |  j t d d ƒ t j d ƒ ƒ |  j t d ƒ t j t d ƒ ƒ ƒ |  j t d d ƒ t j t d ƒ ƒ ƒ |  j t d d	 ƒ t j t d
 ƒ ƒ ƒ |  j t d ƒ t j t d ƒ ƒ ƒ |  j d t d d ƒ t j t d d d ƒ ƒ ƒ |  j t d t j t d ƒ ƒ |  j t d t j t d ƒ ƒ |  j t d t j t d ƒ ƒ |  j t d t j t d ƒ ƒ d  S(   Ni   y              @i
   i   i    s   -0i   s   0.5iè  s   5e-3iˆ  t   5e3i   s   0.t   9s$   Cannot convert Infinity to Fraction.RP   s%   Cannot convert -Infinity to Fraction.s   -infs   Cannot convert NaN to Fraction.RO   s    Cannot convert sNaN to Fraction.RR   y      @      @l       ©7§3M“e'(   RM   R   R   t   from_decimalR8   R    RK   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testFromDecimal  s(    "%((%c         C   sA  t  d ƒ } |  j | j d ƒ t  d d ƒ ƒ |  j | j d ƒ t  d d ƒ ƒ |  j | j d ƒ t  d d ƒ ƒ |  j | j d ƒ t  d d ƒ ƒ |  j t  d	 d
 ƒ j d ƒ t  d ƒ ƒ |  j t  d	 d
 ƒ j d ƒ t  d d ƒ ƒ |  j t  d ƒ j d ƒ t  d ƒ ƒ x- d D]% } |  j t d t  d ƒ j | ƒ qWd  S(   Ns   3.1415926535897932i'  ic  iq   iþÿÿip   iM  ij   iÉ   iÈ   id   i   ie   if   i    iÿÿÿÿs$   max_denominator should be at least 1(   i    iÿÿÿÿ(   R   R8   t   limit_denominatorRK   RW   (   R   t   rpit   i(    (    s$   lib/python2.7/test/test_fractions.pyt   testLimitDenominator+  s    "#""(+%c         C   sC  |  j  d t j t d d ƒ ƒ ƒ |  j  d t t d d ƒ ƒ ƒ |  j  d t j t d d ƒ ƒ ƒ |  j t t t d d ƒ ƒ ƒ |  j t t t d d ƒ ƒ ƒ |  j  d	 t	 t d d ƒ ƒ ƒ |  j
 t t	 t d
 d d ƒ ƒ |  j d d t	 t t d
 d d ƒ t d d d ƒ ƒ ƒ ƒ |  j  d t t d d ƒ ƒ ƒ d  S(   Niÿÿÿÿiõÿÿÿi
   i   i   i    i   i   gš™™™™™¹?t   2i  t   7g       @t   3t   1y                yš™™™™™¹?        (   RB   t   matht   truncR   t   intR8   R#   t   boolt   TrueR
   RM   t   OverflowErrort   longt   assertAlmostEqualt   complex(   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testConversions9  s    ""!2c         C   sû  |  j  t d d ƒ t d d ƒ t d d ƒ ƒ |  j  t d d ƒ t d d ƒ t d d ƒ ƒ |  j  t d d ƒ t d d ƒ t d d ƒ ƒ |  j  t d d ƒ t d d ƒ t d d ƒ ƒ |  j d t d d ƒ t d d ƒ ƒ |  j d t d d ƒ t d ƒ ƒ |  j  t d d
 ƒ t d d
 ƒ t d
 d ƒ ƒ |  j  t d d ƒ t d d
 ƒ t d
 ƒ ƒ |  j  t d d ƒ t d d
 ƒ t d ƒ ƒ |  j d t d ƒ t d d ƒ ƒ |  j  t d d ƒ t d d ƒ 
ƒ |  j t t t d ƒ t d d ƒ ƒ d  S(   Ni   i   i
   i   iýÿÿÿi   i   i	   i   i   iùÿÿÿi   i   g       @iÿÿÿÿl      m+?ÐR l      m+?ÐR (   R8   R   RB   RM   RW   t   pow(   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testArithmeticJ  s    ////&#/,,##c         C   sZ  |  j  t d d ƒ t d d ƒ d ƒ |  j  d t d d ƒ d ƒ |  j  d t d d ƒ d ƒ |  j  t d d ƒ d t d d ƒ ƒ |  j  d d t d d ƒ ƒ |  j  d d t d d ƒ ƒ |  j  t d d ƒ t d d ƒ d ƒ |  j  d t d d ƒ d ƒ |  j  d t d d ƒ d ƒ |  j  t d	 d ƒ d t d d ƒ ƒ |  j  d
 d t d d ƒ ƒ |  j  d d t d d ƒ ƒ |  j  t d d ƒ t d d ƒ d ƒ |  j  d t d d ƒ d ƒ |  j  d  t d d ƒ d! ƒ |  j  t d d ƒ d t d d ƒ ƒ |  j  d d t d d ƒ ƒ |  j  d" d# t d d ƒ ƒ |  j  t d d ƒ t d d ƒ d ƒ |  j  d t d d ƒ d ƒ |  j  d$ t d d ƒ d% ƒ |  j  t d d ƒ d t d d ƒ ƒ |  j  d d t d d ƒ ƒ |  j  d& d' t d d ƒ ƒ |  j  d t d d ƒ d ƒ |  j  d t d d ƒ d ƒ |  j  d d t d d ƒ ƒ |  j  d( d) t d d ƒ ƒ |  j  d d t d d ƒ ƒ |  j  t d d ƒ t d d ƒ d ƒ |  j  d t d d ƒ d ƒ |  j  t d d ƒ d t d d ƒ ƒ |  j  d d t d d ƒ ƒ |  j  t d d ƒ t d d ƒ d ƒ |  j  t d d ƒ t d d ƒ d ƒ |  j  d t d d ƒ d ƒ |  j  d* t d d ƒ d+ ƒ |  j  d d t d d ƒ ƒ |  j t t d t d d ƒ ƒ |  j  t d d ƒ d t d d ƒ ƒ |  j  d d t d d ƒ ƒ |  j  d d t d d ƒ ƒ |  j  d, d- t d d ƒ ƒ d  S(.   Ni   i
   i   gš™™™™™ñ?g      ð?y                i÷ÿÿÿgÍÌÌÌÌÌì¿i	   gÍÌÌÌÌÌì?gš™™™™™¹?g      $@i    g        i   i   id   iþÿÿÿi   i   iÿÿÿÿg       @g      Ð?yš™™™™™ñ?        y      ð?        yš™™™™™ñ?        y      ð?        yÍÌÌÌÌÌì¿        y      ð?        yÍÌÌÌÌÌì?        y      ð?        yš™™™™™¹?        y      ð?        yš™™™™™¹?        y      ð?        yš™™™™™¹?        y      ð?        y      $@        y      ð?        l      m+?ÐR l     €dê&Oá!yš™™™™™¹?        y      ð?        y      ð?        y      ð?        (   RB   R   RM   RW   Ru   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testMixedArithmeticY  sV    &&&&&&&&&&&&&c         C   sy   |  j  t d t j t d d ƒ t d ƒ ƒ |  j  t d t j t d ƒ t d d ƒ ƒ |  j t d d ƒ t d ƒ ƒ d  S(	   Ns;   unsupported operand type(s) for +: 'Fraction' and 'Decimal'i   i   s	   3.1415926s;   unsupported operand type(s) for +: 'Decimal' and 'Fraction'i   i   s   2.5(   RK   R   R   t   addR   R    R[   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testMixingWithDecimal  s    c         C   sQ  |  j  t d d ƒ t d d ƒ k  ƒ |  j t d d ƒ t d d ƒ k  ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j t d d ƒ t d d ƒ k ƒ |  j t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ d  S(   Ni   i   i   (   t
   assertTrueR   t   assertFalse(   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testComparisonsœ  s    %%%%%%%%c         C   s  |  j  t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j t d d ƒ t d d ƒ k ƒ |  j t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k  ƒ |  j t d d ƒ t d d ƒ k  ƒ |  j t d d ƒ t d d ƒ k  ƒ |  j t d d ƒ t d d ƒ k ƒ |  j t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j t d d ƒ t d d ƒ k ƒ |  j t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k  ƒ |  j t d d ƒ t d d ƒ k  ƒ |  j t d d ƒ t d d ƒ k  ƒ |  j t d d ƒ t d d ƒ k ƒ |  j t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j t d d ƒ t d d ƒ k ƒ |  j t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d d ƒ k ƒ d  S(   Ni   i   i   i   i   (   Rz   R   R-   R{   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testComparisonsDummyRational§  s8    %%%%%%%%%%%%%%%%%%%%%%%%%%%c         C   së   t  d d ƒ } t d d ƒ } |  j | | k ƒ |  j | | k  pM | | k ƒ |  j | | k ƒ |  j | | k o | | k ƒ |  j | | k ƒ |  j | | k  p± | | k ƒ |  j | | k ƒ |  j | | k oã | | k ƒ d  S(   Ng      ð?g      @i   i   (   R   R   Rz   R{   (   R   t   xt   y(    (    s$   lib/python2.7/test/test_fractions.pyt   testComparisonsDummyFloatÇ  s    c         C   s°  |  j  d t d d ƒ k  ƒ |  j d t d d ƒ k  ƒ |  j  t d d ƒ d k  ƒ |  j t d d ƒ d k  ƒ |  j  t d d ƒ d k  ƒ |  j t d d ƒ d k  ƒ |  j  d t d d ƒ k  ƒ |  j d t d d ƒ k  ƒ |  j t d	 ƒ t d d ƒ k  ƒ |  j  t d
 ƒ t d d ƒ k  ƒ |  j t d ƒ t d d ƒ k  ƒ |  j  t d d ƒ t d	 ƒ k  ƒ |  j t d d ƒ t d
 ƒ k  ƒ |  j t d d ƒ t d ƒ k  ƒ d  S(   Ni   i   i   i   i   g333333ã?gš™™™™™Ù?g      à?RP   s   -infi    i
   RO   iýÿÿÿi   i   i   i   i§ÿÿÿ(   Rz   R   R{   R
   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testMixedLessÓ  s    """""c         C   s°  |  j  d t d d ƒ k ƒ |  j d t d d ƒ k ƒ |  j  t d d ƒ d k ƒ |  j t d d ƒ d k ƒ |  j  d t d d ƒ k ƒ |  j d t d d ƒ k ƒ |  j  t d d ƒ d k ƒ |  j t d d ƒ d k ƒ |  j t d	 ƒ t d d ƒ k ƒ |  j  t d
 ƒ t d d ƒ k ƒ |  j t d ƒ t d d ƒ k ƒ |  j  t d d ƒ t d	 ƒ k ƒ |  j t d d ƒ t d
 ƒ k ƒ |  j t d d ƒ t d ƒ k ƒ d  S(   Ng      à?i   i   g333333ã?gš™™™™™Ù?i   i   i   RP   s   -infi    i
   RO   iýÿÿÿi   i   i   i   i§ÿÿÿ(   Rz   R   R{   R
   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testMixedLessEqualå  s    """""c         C   sç   |  j  t d ƒ t d ƒ k ƒ |  j  d t t t j d ƒ d ƒ ƒ k  ƒ |  j d t t j d ƒ d ƒ k  ƒ |  j  d t t j d ƒ d ƒ k ƒ |  j d t t j d ƒ d ƒ k ƒ |  j  d t t j d ƒ d ƒ k ƒ d  S(   Ni
   i   göJáÇ-µDi   l      m+?ÐR l      m+?ÐR (   R{   R   R
   Rk   Rl   Rz   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testBigFloatComparisonsö  s    ,&&&c         C   sg  |  j  t d ƒ t d	 ƒ k ƒ |  j t t j t d
 ƒ t d ƒ ƒ |  j t t j t d ƒ t d ƒ ƒ t d d ƒ } t d d ƒ } t d d ƒ } |  j | | k ƒ |  j  | | k ƒ |  j  | | k ƒ |  j | | k ƒ x~ t j	 t j t j t j
 f D]^ } |  j t | | | ƒ |  j t | | | ƒ |  j t | | | ƒ |  j t | | | ƒ qWd  S(   Ni
   i   i   i   g      Ø?g        gš™™™™™É?l      m+?ÐR l      m+?ÐR l      m+?ÐR l      m+?ÐR l      m+?ÐR l      m+?ÐR (   R{   R   Rs   RM   R   R   R!   R   Rz   R   R   (   R   R~   t   zt   wR   (    (    s$   lib/python2.7/test/test_fractions.pyt   testBigComplexComparisons   s    %%%c         C   sl  |  j  d t d d ƒ k ƒ |  j d t d d ƒ k ƒ |  j  t d d ƒ d k ƒ |  j t d d ƒ d k ƒ |  j  d t d d ƒ k ƒ |  j d t d d ƒ k ƒ |  j  t d d ƒ d k ƒ |  j t d d ƒ d k ƒ |  j t d d ƒ t d	 ƒ k ƒ |  j t d	 ƒ t d d
 ƒ k ƒ |  j t d d ƒ t d ƒ k ƒ |  j t d ƒ t d d ƒ k ƒ d  S(   Ng      à?i   i   g333333ã?gš™™™™™Ù?i   i   i   RO   i   RP   s   -inf(   Rz   R   R{   R
   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testMixedEqual  s    """c         C   sœ   |  j  d t t d d ƒ ƒ ƒ |  j  d t t d ƒ ƒ ƒ |  j  d t t d d ƒ ƒ ƒ |  j  d
 t t d d ƒ ƒ ƒ |  j  d t t d d ƒ ƒ ƒ d  S(   Ns   Fraction(7, 3)i   i   s    Fraction(6283185307, 2000000000)s   3.1415926535s#   Fraction(-1, 100000000000000000000)i   i
   i   s   7/3Rh   l      Fµx:^V lûÿÿÿ   Fµx:^V (   R8   t   reprR   RC   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testStringification   s    		c         C   ss   |  j  t d ƒ t t d d ƒ ƒ ƒ |  j  t d ƒ t t d ƒ ƒ ƒ |  j t t d	 ƒ ƒ t t d
 ƒ ƒ ƒ d  S(   Ng      @i   i   i
   i2   i   l          +ÛO¦ ±tC3’y+v° l          +ÛO¦ ±tC3’y+v° l      m+?ÐR l      m+?ÐR (   R8   t   hashR   R[   R
   (   R   (    (    s$   lib/python2.7/test/test_fractions.pyt   testHash)  s    %"c   	      C   sÁ   t  d ƒ } d | d d d d d f \ } } } } } } } xk t | | ƒ t  d d	 ƒ k r© | } | | | d } } | | | d } } | | | } | | 7} q? W|  j t j | ƒ d  S(
   Ni   i    i   i   i
   i	   i   i    i Êš;(   R   t   absRr   Rk   t   pi(	   R   t   threet   lastst   tt   st   nt   nat   dt   da(    (    s$   lib/python2.7/test/test_fractions.pyt   testApproximatePi.  s    0"c         C   sË   t  d ƒ } d d t  d ƒ d d d f \ } } } } } } xo t | | ƒ t  d d ƒ k r­ | } | d 7} | | | d 9} | | | 9} | d 9} | | | | 7} q? W|  j t j d ƒ | ƒ d  S(   Ni   i    i
   i	   i   iÿÿÿÿi Êš;(   R   RŒ   Rr   Rk   t   cos(   R   R~   Re   R   R‘   t   factR/   t   sign(    (    s$   lib/python2.7/test/test_fractions.pyt   testApproximateCos1;  s    0"

c         C   sò   t  d d ƒ } t d d ƒ } |  j | t t | ƒ ƒ ƒ |  j t | ƒ t t | ƒ ƒ ƒ |  j t | ƒ t t | ƒ ƒ ƒ |  j t | ƒ t t | ƒ ƒ ƒ |  j t | ƒ t t | ƒ ƒ ƒ |  j	 | t | ƒ ƒ |  j	 | t | ƒ ƒ d  S(   Ni   i   (
   R   R6   R8   R   R   t   idR   R   R[   RB   (   R   R<   t   dr(    (    s$   lib/python2.7/test/test_fractions.pyt   test_copy_deepcopy_pickleI  s    """"c         C   s,   t  d d ƒ } |  j t t | d d ƒ d  S(   Ni   i   t   ai
   (   R   RM   RY   RZ   (   R   R<   (    (    s$   lib/python2.7/test/test_fractions.pyt
   test_slotsT  s    (   R'   R(   RB   RK   RN   t   requires_IEEE_754RQ   RS   RX   R\   R^   Rb   Rf   Rt   Rv   Rw   Ry   R|   R}   R€   R   R‚   Rƒ   R†   R‡   R‰   R‹   R–   Rš   R   RŸ   (    (    (    s$   lib/python2.7/test/test_fractions.pyR>   r   s8   		
	
		8							7			 				
								c           C   s   t  t t ƒ d  S(   N(   R   R>   R7   (    (    (    s$   lib/python2.7/test/test_fractions.pyt	   test_mainY  s    t   __main__("   R)   t   decimalR    t   test.test_supportR   Rk   R   R   R2   t   syst   unittestR   R   t   cPickleR   R   R3   R   R.   t
   skipUnlessR
   t   __getformat__t
   startswithR    t   objectR   R-   R6   t   TestCaseR7   R=   R>   R¡   R'   (    (    (    s$   lib/python2.7/test/test_fractions.pyt   <module>   s2   			#$	ÿ è	