
    wg                     v    d dl  d 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y)    )*)mpfmp)randintchoiceseedc                     t        d      } t        d      }t        d      }t        | |dt              t        d      k(  sJ t        | |dt              t        d      k(  sJ t        | |dt
              t        d      k(  sJ t        | |dt              t        d      k(  sJ t        | |dt              t        d      k(  sJ t        ||dt              t        d      k(  sJ t        ||dt              t        d      k(  sJ t        ||dt
              t        d      k(  sJ t        ||dt              t        d      k(  sJ t        ||dt              t        d      k(  sJ y 	N         z
0.01010101z
0.01010110z-0.01010110z-0.01010101)fimpf_divround_floorfbround_ceiling
round_downround_upround_nearestabcs      _/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/mpmath/tests/test_division.pytest_div_1_3r      sM   
1A
1A
2A 1aK(b.>>>>1aM*b.>>>>1aJ'b.>>>>1aH%b.>>>>1aM*b.>>>> 1aK(b.????1aM*b.????1aJ'b.????1aH%b.????1aM*b.????    c                     d} t        d      }d}t        | |dt              t        d      k(  sJ t        | |dt              t        d      k(  sJ t        | |dt
              t        d      k(  sJ t        | |dt              t        d      k(  sJ t        | |dt              t        d      k(  sJ t        ||dt              t        d      k(  sJ t        ||dt              t        d      k(  sJ t        ||dt
              t        d      k(  sJ t        ||dt              t        d      k(  sJ t        ||dt              t        d      k(  sJ y r
   )r   mpf_rdiv_intr   r   r   r   r   r   r   s      r   test_mpf_divi_1_3r        sA   	A
1A
A1a-2l3CCCC1a/2l3CCCC1a,2l3CCCC1a*2l3CCCC1a/2l3CCCC1a-2m3DDDD1a/2m3DDDD1a,2m3DDDD1a*2m3DDDD1a/2m3DDDDr   c                     t        d      } t        d      }t        d      }t        d      }t        || dt              t        d      k(  sJ t        || dt              t        d      k(  sJ t        || dt              t        d      k(  sJ t        || dt              t        d      k(  sJ t        || dt              t        d      k(  sJ t        || dt              t        d      k(  sJ t        || dt              t        d      k(  sJ t        || dt              t        d      k(  sJ t        || dt              t        d      k(  sJ t        d      }t        d	      }t        d
      }t        || dt              t        d      k(  sJ t        || dt              t        d      k(  sJ t        || dt              t        d      k(  sJ y )Ni@B iDi Di!D	   i,  i-  i_i`iai.  )r   r   r   r   r   )qr   r   r   s       r   test_div_300r$   0   s   
7A
9A
9A
9A 1aJ'2c72221aJ'2c72221aJ'2c72221aH%C0001aH%C0001aH%C000 1aM*bg5551aM*bg5551aM*bg555 	9A
9A
9A1aM*bg5551aM*bg5551aM*bg555r   c            
         d} t        d       t        |       D ]  }t        ddg      t        ddt        dd      z        z  }t        ddg      t        ddt        dd      z        z  }||z  }t	        t        |            t        |      z
  }t        |      }t        |      }t        |      }t        D ]  }t        ||||      |k(  rJ   y )Nd   r   r   
   )
r   ranger   r   bitcountabstrailingr   	all_modesr   )Nir   r   pwidthmodes          r   test_tight_integer_divisionr2   N   s    AG1X 3Ar7OgaGB,<)<==Ar7OgaGB,<)<==EQ 8A;.qEr!u1"Q%a 	3D1a-222	33r   c                     t        d      } t        d      }t        | |dt              }t        ||t	        | d         t              | k(  sJ t        ||dt
              t        d      k(  sJ t        ||dt
              t        d      k(  sJ t        ||dt              t        d	      k(  sJ t        ||dt              t        d
      k(  sJ t        ||dt              t        d      k(  sJ t        ||dt              t        d      k(  sJ t        ||dt              t        d	      k(  sJ t        ||dt              t        d
      k(  sJ t        d      } t        d      }t        | |dt              }t        ||t	        | d         t              | k(  sJ t        ||dt
              t        d      k(  sJ t        ||dt              t        d      k(  sJ t        ||dt              t        d      k(  sJ t        ||dt              t        d      k(  sJ t        ||dt              t        d      k(  sJ t        ||dt              t        d      k(  sJ y )Nz0.101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001z1.10101   r      z0.10r   z0.101z0.11z0.110z-0.101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001z-0.10z-0.110z-0.11z-0.101)r   mpf_mulr   r   r)   r   r   r   r   s      r   test_epsilon_roundingr7   \   s(    	$%A
9A1c;'A1a!A$5:::1aJ'2f:5551aJ'2g;6661aH%F3331aH%G4441aK(BvJ6661aK(BwK7771aM*bj8881aM*bk999 	%&A
9A1c;'A1a!A$5:::1aJ'2g;6661aH%H555 1aK(BwK7771aK(BxL8881aM*bk9991aM*bl:::r   c                     dt         _        t        d      dz  dk(  sJ t        d      dz  dk(  sJ t        d      d	z  dk(  sJ t        d      d
z  dk(  sJ t        d      d	z  dk(  sJ t        d      d
z  dk(  sJ t        d      dz  dk(  sJ t        d      dz  t        d      k(  sJ dt        d      z  dk(  sJ y )N      r   r         g      ?g    @g    g    g      пg    @1e10000000000z1.23e-1000000000r   z1.75g      ?r   dpsr    r   r   test_modrB   ~   s    BFs8a<1r7S=Ct9w$&&&t9x9,,,u:8+++u: E)))!#q(((!"Q&#.@*AAAAs6{?d"""r   c                      dt         _        dt        d      z  t        d      k(  sJ t        d      t        d      z  t        d      k(  sJ y )Nr9   r;   z0.1531879017645047z-19.583791966887116z-2.6342475750861301z0.35126216427941814z-7.4993775104985909r?   rA   r   r   test_div_negative_rnd_bugrD      sM    BF#*++s3H/IIII$%,A(BBcJ_F````r   N)mpmath.libmpmpmathr   r   randomr   r   r   r   r   r   r   r   r,   	from_bstrr   from_intr   
from_floatffr   r    r$   r2   r7   rB   rD   rA   r   r   <module>rL      sW      ( (-X}M	@&E 6<3;D#ar   