ó
<Zc           @   s¦   d  d l  Td  d l m Z m Z d  d l m Z m Z m Z e e	 e
 e e g Z e Z e Z e Z d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d S(   iÿÿÿÿ(   t   *(   t   mpft   mp(   t   randintt   choicet   seedc          C   s®  t  d ƒ }  t  d ƒ } t  d ƒ } t |  | d t ƒ t d ƒ k sK t ‚ t |  | d t ƒ t d ƒ k sr t ‚ t |  | d t ƒ t d ƒ k s™ t ‚ t |  | d t ƒ t d ƒ k sÀ t ‚ t |  | d t ƒ t d ƒ k sç t ‚ t | | d t ƒ t d ƒ k st ‚ t | | d t ƒ t d ƒ k s5t ‚ t | | d t ƒ t d ƒ k s\t ‚ t | | d t ƒ t d ƒ k sƒt ‚ t | | d t ƒ t d ƒ k sªt ‚ d  S(	   Ni   i   iÿÿÿÿi   s
   0.01010101s
   0.01010110s   -0.01010110s   -0.01010101(	   t   fit   mpf_divt   round_floort   fbt   AssertionErrort   round_ceilingt
   round_downt   round_upt   round_nearest(   t   at   bt   c(    (    s9   lib/python2.7/site-packages/mpmath/tests/test_division.pyt   test_div_1_3   s    '''''''''c          C   s¢  d }  t  d ƒ } d } t |  | d t ƒ t d ƒ k s? t ‚ t |  | d t ƒ t d ƒ k sf t ‚ t |  | d t ƒ t d ƒ k s t ‚ t |  | d t ƒ t d ƒ k s´ t ‚ t |  | d t ƒ t d ƒ k sÛ t ‚ t | | d t ƒ t d ƒ k st ‚ t | | d t ƒ t d ƒ k s)t ‚ t | | d t ƒ t d ƒ k sPt ‚ t | | d t ƒ t d ƒ k swt ‚ t | | d t ƒ t d ƒ k sžt ‚ d  S(	   Ni   i   iÿÿÿÿi   s
   0.01010101s
   0.01010110s   -0.01010110s   -0.01010101(	   R   t   mpf_rdiv_intR   R	   R
   R   R   R   R   (   R   R   R   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_division.pyt   test_mpf_divi_1_3    s    '''''''''c          C   s,  t  d ƒ }  t  d ƒ } t  d ƒ } t  d ƒ } t | |  d t ƒ t  d ƒ k sW t ‚ t | |  d t ƒ t  d ƒ k s~ t ‚ t | |  d t ƒ t  d ƒ k s¥ t ‚ t | |  d t ƒ t  d ƒ k sÌ t ‚ t | |  d t ƒ t  d ƒ k só t ‚ t | |  d t ƒ t  d ƒ k st ‚ t | |  d t ƒ t  d ƒ k sAt ‚ t | |  d t ƒ t  d ƒ k sht ‚ t | |  d t ƒ t  d ƒ k st ‚ t  d ƒ } t  d	 ƒ } t  d
 ƒ } t | |  d t ƒ t  d ƒ k sÚt ‚ t | |  d t ƒ t  d ƒ k st ‚ t | |  d t ƒ t  d ƒ k s(t ‚ d  S(   Ni@B iDéi Déi!Déi	   i,  i-  i_†øi`†øia†øi.  (   R   R   R   R
   R   R   (   t   qR   R   R   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_division.pyt   test_div_3000   s&    '''''''''''c          C   sÿ   d }  t  d ƒ xè t |  ƒ D]Ú } t d d g ƒ t d d t d d ƒ >ƒ } t d d g ƒ t d d t d d ƒ >ƒ } | | } t t | ƒ ƒ t | ƒ } t | ƒ } t | ƒ } t | ƒ } x/ t D]' } t	 | | | | ƒ | k sÌ t
 ‚ qÌ Wq Wd  S(   Nid   i   iÿÿÿÿi
   (   R   t   rangeR   R   t   bitcountt   abst   trailingR   t	   all_modesR   R
   (   t   Nt   iR   R   t   pt   widtht   mode(    (    s9   lib/python2.7/site-packages/mpmath/tests/test_division.pyt   test_tight_integer_divisionN   s    
,,
  c          C   sî  t  d d d d ƒ }  t  d ƒ } t |  | d t ƒ } t | | t |  d ƒ t ƒ |  k sd t ‚ t | | d t ƒ t  d	 ƒ k s‹ t ‚ t | | d
 t ƒ t  d ƒ k s² t ‚ t | | d t ƒ t  d ƒ k sÙ t ‚ t | | d
 t ƒ t  d ƒ k s t ‚ t | | d t ƒ t  d	 ƒ k s't ‚ t | | d
 t ƒ t  d ƒ k sNt ‚ t | | d t ƒ t  d ƒ k sut ‚ t | | d
 t ƒ t  d ƒ k sœt ‚ t  d d d d ƒ }  t  d ƒ } t |  | d t ƒ } t | | t |  d ƒ t ƒ |  k s t ‚ t | | d t ƒ t  d ƒ k s't ‚ t | | d
 t ƒ t  d ƒ k sNt ‚ t | | d t ƒ t  d ƒ k sut ‚ t | | d
 t ƒ t  d ƒ k sœt ‚ t | | d t ƒ t  d ƒ k sÃt ‚ t | | d
 t ƒ t  d ƒ k sêt ‚ d  S(   Ns   0.101t   0iÈ   t   1s   1.10101iú   i   i   s   0.10i   s   0.11s   0.110s   -0.101s   -0.10s   -0.110s   -0.11(	   R	   t   mpf_mulR   R   R   R
   R   R   R   (   R   R   R   (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_division.pyt   test_epsilon_rounding\   s,    +''''''''+'''''c           C   s  d t  _ t d ƒ d d k s% t ‚ t d ƒ d d k sA t ‚ t d ƒ d	 d k s] t ‚ t d ƒ d
 d k sy t ‚ t d ƒ d	 d k s• t ‚ t d ƒ d
 d k s± t ‚ t d ƒ d d k sÍ t ‚ t d ƒ d t d ƒ k sï t ‚ d t d ƒ d k st ‚ d  S(   Ni   iê   i   i    iýÿÿÿi   iý   g      Ð?g     ðÖ@g     ðÖÀg    ðÖÀg      Ð¿g    ðÖ@t   1e10000000000s   1.23e-1000000000i   s   1.75g      ô?(   R   t   dpsR   R
   (    (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_division.pyt   test_mod~   s    	"c           C   sW   d t  _ d t d ƒ t d ƒ k s+ t ‚ t d ƒ t d ƒ t d ƒ k sS t ‚ d  S(   Ni   iýÿÿÿs   0.1531879017645047s   -19.583791966887116s   -2.6342475750861301s   0.35126216427941814s   -7.4993775104985909(   R   R'   R   R
   (    (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_division.pyt   test_div_negative_rnd_bugŒ   s    	"N(   t   mpmath.libmpt   mpmathR   R   t   randomR   R   R   R   R   R   R   R   R   t	   from_bstrR	   t   from_intR   t
   from_floatt   ffR   R   R   R!   R%   R(   R)   (    (    (    s9   lib/python2.7/site-packages/mpmath/tests/test_division.pyt   <module>   s   
					"	