U
    9%e                     @   s   d dl T 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d Zdd Zdd	 Zd
d Zdd Zdd Zdd ZdS )    )*)mpfmp)randintchoiceseedc                  C   s$  t d} t d}t d}t| |dttdks2tt| |dttdksLtt| |dttdksftt| |dttdkstt| |dttdkstt||dttdkstt||dttdkstt||dttdkstt||dttdkstt||dttdks td S 	N         z
0.01010101z
0.01010110z-0.01010110z-0.01010101)	fimpf_divround_floorfbAssertionErrorround_ceiling
round_downround_upround_nearestabc r   Y/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/mpmath/tests/test_division.pytest_div_1_3   s    r   c                  C   s  d} t d}d}t| |dttdks*tt| |dttdksDtt| |dttdks^tt| |dttdksxtt| |dttdkstt||dttdkstt||dttdkstt||dttdkstt||dttdkstt||dttdkstd S r   )	r   Zmpf_rdiv_intr   r   r   r   r   r   r   r   r   r   r   test_mpf_divi_1_3    s    r   c                  C   s|  t d} t d}t d}t d}t|| dtt dks:tt|| dtt dksTtt|| dtt dksntt|| dtt dkstt|| dtt dkstt|| dtt dkstt|| dtt dkstt|| dtt dkst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sxtd S )Ni@B iDi Di!D	   i,  i-  i_i`iai.  )r   r   r   r   r   r   )qr   r   r   r   r   r   test_div_3000   s&    r    c                  C   s   d} t d 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|}tD ]}t	|||||kst
qqd S )Nd   r	   r   
   )r   ranger   r   bitcountabsZtrailingr   	all_modesr   r   )Nir   r   pwidthmoder   r   r   test_tight_integer_divisionN   s        r,   c                  C   s  t d} t d}t| |dt}t||t| d t| ks<tt||dtt dksVtt||dtt dksptt||dtt d	kstt||dtt d
kstt||dtt dkstt||dtt dkstt||dtt d	kstt||dtt d
kstt d} t d}t| |dt}t||t| d t| ksLtt||dtt dkshtt||dtt dkstt||dtt dkstt||dtt dkstt||dtt dkstt||dtt dkstd S )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   Zmpf_mulr   r   r$   r   r   r   r   r   r   r   r   test_epsilon_rounding\   s,     r/   c                   C   s   dt _tdd dksttdd dks.ttdd	 dksBttdd
 dksVttdd	 dksjttdd
 dks~ttdd dksttdd tdkstdtd dkstd S )N      r	   r         g      ?g    @g    g    g      пg    @Z1e10000000000z1.23e-1000000000r
   z1.75g      ?r   Zdpsr   r   r   r   r   r   test_mod~   s    r6   c                   C   s>   dt _dtd tdksttdtd tdks:td S )Nr0   r2   z0.1531879017645047z-19.583791966887116z-2.6342475750861301z0.35126216427941814z-7.4993775104985909r5   r   r   r   r   test_div_negative_rnd_bug   s    r7   N)Zmpmath.libmpZmpmathr   r   randomr   r   r   r   r   r   r   r   r&   Z	from_bstrr   from_intr   
from_floatffr   r   r    r,   r/   r6   r7   r   r   r   r   <module>   s   "