ó
 7Ü[c           @   s¢   d  d l  Z  d  d l Td  d l Td „  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 S(   iÿÿÿÿN(   t   *c          C   sv  d t  _ t d ƒ t d ƒ k oT t d ƒ k oT t d ƒ k oT t d ƒ k n s_ t ‚ t d ƒ t d ƒ k o™ t d	 ƒ k o™ t d
 ƒ k n s¤ t ‚ xU t d ƒ D]G }  x> t d ƒ D]0 } t d |  | f ƒ |  d | k sÄ t ‚ qÄ Wq± Wt t d ƒ ƒ d k st ‚ t t d ƒ ƒ d k s8t ‚ t t d ƒ ƒ d k sVt ‚ t t d ƒ ƒ d k stt ‚ t t d ƒ ƒ d k s’t ‚ t t d ƒ ƒ d k s°t ‚ t t d ƒ ƒ d k sÎt ‚ t t d ƒ ƒ d k sìt ‚ t t d ƒ ƒ d k s
t ‚ t t d ƒ ƒ d k s(t ‚ t t d ƒ ƒ d k sFt ‚ t t d ƒ ƒ d k sdt ‚ t t d ƒ ƒ d k s‚t ‚ t t d ƒ ƒ d k s t ‚ t t d ƒ ƒ d  k s¾t ‚ t t d! ƒ ƒ d" k sÜt ‚ t t d! ƒ ƒ d# k sút ‚ t t d$ ƒ ƒ d% k st ‚ t t d& ƒ ƒ d' k s6t ‚ t t d( ƒ ƒ d) k sTt ‚ t t d* ƒ ƒ d+ k srt ‚ d, S(-   s&   
    Test basic string conversion
    i   t   3s   3.0s   0003.s   0.03e2g      @t   30s   30.0s   00030.g      >@i
   s   %ie%is   25000.0s   2500.0s   250.0s   25.0s   2.5s   0.25s   0.025s   0.0025s   0.00025s   0.000025s   2.5e-5i    s   0.0s   2.5e1000000000000000000000s   2.5e+1000000000000000000000s   2.6e-1000000000000000000000gö-—„ó:Ö<s   1.23402834e-15gö-—„ó:Ö¼s   -1.23402834e-15gùÝîKª<Ö¼s   -1.2344e-15s   mpf('-1.2343999999999999e-15')t   2163048125Ls   2163048125.0s   -2163048125ls   -2163048125.0s   -2163048125L/1088391168s   -1.98738118113799s   2163048125/1088391168ls   1.98738118113799N(   t   mpt   dpst   mpft   AssertionErrort   ranget   strt   repr(   t   it   j(    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_basic_string   s6    	VE2c           C   sˆ   t  t _ t t d ƒ ƒ d k s' t ‚ t t d d ƒ ƒ d k sH t ‚ t t _ t  t _ t t	 d d ƒ ƒ d k s{ t ‚ t t _ d  S(   Ng      @s   2.5g      @s   (2.5 + 3.5j)s
   [2.5, 3.5](
   t   TrueR   t   prettyR
   R   R   t   mpct   Falset   ivt   mpi(    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_pretty&   s    	!		!c           C   s   t  d ƒ d k s t ‚ d  S(   Ns   1.26 g)\Âõ(ô?(   R   R   (    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_str_whitespace/   s    c          C   sm   d t  _ y
 |  }  Wn t k
 r, t }  n Xt |  d ƒ ƒ d k sK t ‚ t |  d ƒ ƒ t k si t ‚ d  S(   Ni   s   2.76g®Gáz@t   inf(   R   R   t	   NameErrorR	   R   R   R   (   t   unicode(    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_unicode2   s    	

c        	   C   s  t  t d ƒ d d t ƒd k s' t ‚ t  t d ƒ d d t ƒd k sN t ‚ t  t d ƒ d d t ƒd	 k su t ‚ t  t d ƒ d d t ƒd
 k sœ t ‚ t  t d ƒ d d t ƒd k sÃ t ‚ t  t d ƒ d d t ƒd k sê t ‚ t  t d ƒ d d t ƒd k st ‚ t  t d ƒ d d t d d d d ƒd k sDt ‚ t  t d ƒ d d t d d d d ƒd k swt ‚ t  t d ƒ d d d ƒd k sžt ‚ t  t d ƒ d d d ƒd k sÅt ‚ t  t d ƒ d d d ƒd k sìt ‚ t  t d ƒ d d d ƒd k st ‚ d  S(   Ngš™™™™™¹?i   t   strip_zeross   0.100000000000000g        t   show_zero_exponents   0.0e+0i    s   .0e+0s   .0i   s   0.0g®Gáz®ó?i   s   1.23e+0gæµúø°H‰?t	   min_fixedt	   max_fixeds   1.23456789000000e-2gî<Ý^@s   1.23456789000000e+2g €wU3èBiè  s   212870000000000.0g `U]*@Cs   2128700000000000.0g \UzèRCs   21287000000000000.0g¢~´^3Þ:Fs!   2128700000000000000000000000000.0(   t   to_strt
   from_floatR   R   R   (    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_str_format;   s    '''''''33'''c           C   sI   d t  _ t d d t ƒ t k s' t ‚ t d d t ƒ t k sE t ‚ d  S(   Ni   s   0.5i
   (   R   R   t   from_strt   round_floort   fhalfR   t   round_ceiling(    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_tight_string_conversionJ   s    	c          C   s¢   t  j d ƒ x… d d d d d g D]n }  |  t _ x\ t d ƒ D]N } t t  j  ƒ  ƒ d d t  j d	 d ƒ } t t | ƒ ƒ | k s? t	 ‚ q? Wq# Wd t _ d
 S(   s   Test that eval(repr(x)) == xi{   i
   i   i   i2   id   iè  g      à?iœÿÿÿN(
   t   randomt   seedR   R   R   R   t   randintt   evalR
   R   (   R   R   t   a(    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_eval_repr_invariantQ   s    	*&c           C   sI   d t  _ t t d ƒ ƒ d k s' t ‚ t t d ƒ ƒ d k sE t ‚ d  S(   Ni   t   1e600s   1.0e+600t   1e10000s
   1.0e+10000(   R   R   R	   R   R   (    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_str_bugs[   s    	c           C   s©   t  t d ƒ d ƒ d k s! t ‚ t  t d ƒ d ƒ d k sB t ‚ t  t d ƒ d ƒ d k sc t ‚ t  t d ƒ d ƒ d	 k s„ t ‚ t  t d
 ƒ d ƒ d k s¥ t ‚ d  S(   NgX9´Èv¾ó?i    s   .0e+0gVçž¯Ò<s   .0e-15g  4&õkCs   .0e+15gVçž¯Ò¼s   -.0e-15g  4&õkÃs   -.0e+15(   R   R   R   (    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_str_prec0a   s
    !!!!c           C   sg   d t  _ t d d d t ƒ d k s* t ‚ t d	 d
 d t ƒ d k sK t ‚ t d ƒ d k sc t ‚ d  S(   Ni   i   i   i5   i    i   i   i   iùÿÿÿi   i   iþÿÿÿiÿÿÿÿ(   i    i   i   i   (   i   i   iþÿÿÿi   (   i    i   iÿÿÿÿi   (   i   i   (   R   R   t   from_rationalt   round_nearestR   t   to_rational(    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_convert_rationalh   s    	!!c          C   sî   d d
 d „  ƒ  Y}  d d d „  ƒ  Y} t  d ƒ |  ƒ  d k sE t ‚ |  ƒ  t  d ƒ d k sd t ‚ t  |  ƒ  ƒ d k s t ‚ | ƒ  t d ƒ t d d ƒ k s§ t ‚ t d ƒ | ƒ  t d d ƒ k sÏ t ‚ t | ƒ  ƒ d k sê t ‚ d  S(   Nt   mympfc           B   s   e  Z e d  „  ƒ Z RS(   c         S   s   t  d ƒ j S(   Ng      @(   R   t   _mpf_(   t   self(    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyR5   p   s    (   t   __name__t
   __module__t   propertyR5   (    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyR4   o   s   t   mympcc           B   s   e  Z e d  „  ƒ Z RS(   c         S   s   t  d ƒ j t  d ƒ j f S(   Ng      @g      @(   R   R5   (   R6   (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   _mpc_t   s    (   R7   R8   R9   R;   (    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyR:   s   s   i   g      @g      @g      @y              @(    (    y      @      @(   R   R   R   (   R4   R:   (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_custom_classn   s    ((c    	      C   sD  d d d „  ƒ  Y}  d d d „  ƒ  Y} d d d „  ƒ  Y} t  d ƒ } t d ƒ } |  ƒ  } | ƒ  } | ƒ  } xqd d	 g D]c} | t _ | | j t  d
 ƒ ƒ s§ t ‚ | | j t  d
 ƒ ƒ sÆ t ‚ | | j t d
 d ƒ ƒ sè t ‚ | | j t d
 d ƒ ƒ s
t ‚ | | j t d
 ƒ ƒ s)t ‚ | | j t d
 ƒ ƒ sHt ‚ | | j t d
 d ƒ ƒ sjt ‚ | | j t d
 d ƒ ƒ sŒt ‚ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | k | | k | | k | | k | | k | | k | | k | | k qy Wd t _ | j | ƒ t k st ‚ | j | ƒ t k st ‚ | j	 | ƒ t k s:t ‚ | j
 | ƒ t k sUt ‚ | j | ƒ t k spt ‚ | j | ƒ t k s‹t ‚ | j | ƒ t k s¦t ‚ | j | ƒ t k sÁt ‚ t | d ƒ rî| j | ƒ t k sît ‚ n  | j | ƒ t k s	t ‚ | j | ƒ t k s$t ‚ | j | ƒ t k s?t ‚ | j | ƒ t k sZt ‚ | j | ƒ t k sut ‚ | j | ƒ t k st ‚ | j | ƒ t k s«t ‚ | j | ƒ t k sÆt ‚ | j | ƒ t k sát ‚ | j | ƒ t k süt ‚ | j | ƒ t k st ‚ | j | ƒ t k s2t ‚ | j | ƒ t k sMt ‚ | j | ƒ t k sht ‚ | j | ƒ t k sƒt ‚ | j | ƒ t k sžt ‚ | j | ƒ t k s¹t ‚ | j | ƒ t k sÔt ‚ | j | ƒ t k sït ‚ | j | ƒ t k s
t ‚ | j | ƒ t k s%t ‚ | j | ƒ t k s@t ‚ d  S(   Nt   SomethingRandomc           B   s   e  Z RS(    (   R7   R8   (    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyR=      s   t   SomethingRealc           B   s   e  Z d  „  Z RS(   c         S   s   t  j t d | | ƒ ƒ S(   Ns   1.3(   R   t   make_mpfR!   (   R6   t   prect   rounding(    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   _mpmath_‚   s    (   R7   R8   RB   (    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyR>      s   t   SomethingComplexc           B   s   e  Z d  „  Z RS(   c         S   s+   t  j t d | | ƒ t d | | ƒ f ƒ S(   Ns   1.3s   1.7(   R   t   make_mpcR!   (   R6   R@   RA   (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyRB   …   s    (   R7   R8   RB   (    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyRC   „   s   i   i   i-   s   4.3s   1.7t   __cmp__(    (    (    (   R   R   R   R   t   aeR   t   __add__t   NotImplementedt   __radd__t   __lt__t   __gt__t   __le__t   __ge__t   __eq__t   __ne__t   hasattrRE   t   __sub__t   __rsub__t   __mul__t   __rmul__t   __div__t   __rdiv__t   __mod__t   __rmod__t   __pow__t   __rpow__(	   R=   R>   RC   t   xt   zR*   t   yt   wt   d(    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_conversion_methods~   s¶    				""""                            
 
 
 
 
 
 
 	c           C   s|   t  d ƒ d k s t ‚ t  d ƒ t d d ƒ k s9 t ‚ t  d ƒ t d d ƒ k sZ t ‚ t  d ƒ t d	 ƒ k sx t ‚ d  S(
   Ns   1/2g      à?s
   (1.0+1.0j)i   s   (1.2e-10 - 3.4e5j)s   1.2e-10s   -3.4e5t   1jy              ð?(   t	   mpmathifyR   R   (    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_mpmathify¿   s    !!c          C   sÏ  y< d d  l  }  d d l m } d d l m } d d  l } Wn t k
 rP d  SXxã |  j j j j	 ƒ  D]Ì } t
 | |  j ƒ r— | t d d ƒ ƒ } nB t
 | |  j ƒ r¸ | d ƒ } n! t
 | |  j ƒ rÙ | d ƒ } n  y; |  j t |  j | ƒ ƒ t | ƒ ƒ |  j | ƒ ƒ } Wn
 qg n X| d k  sg t ‚ qg Wt j } d	 t _ t j | j ƒ  _ t | d d
 ƒ ƒ j t t d ƒ ƒ ƒ s‹t ‚ t | d ƒ | d
 ƒ ƒ j t t d ƒ ƒ ƒ sÂt ‚ | t _ d  S(   Niÿÿÿÿ(   t   Fraction(   t   Decimalg      à?g      à¿i   g       @iËÿÿÿiè  i   s   2/3g       <(   t   numpyt	   fractionsRd   t   decimalRe   t   ImportErrort   coret   numerictypest   typeDictt   valuest
   issubclasst   complexfloatingt   complext   floatingt   integert   abst   typet   sqrtR   R   R@   R   t
   getcontextRF   R   (   t   npRd   Re   Rh   t   nptypeR[   t   difft   oldprec(    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   test_compatibilityÅ   s2     ; 		07(   R&   t   mpmatht   mpmath.libmpR   R   R   R   R    R%   R+   R.   R/   R3   R<   R`   Rc   R{   (    (    (    s8   lib/python2.7/site-packages/mpmath/tests/test_convert.pyt   <module>   s    

	 								
					A	