o
    lh                     @   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sJ t| |dttdks&J t| |dttdks3J t| |dttdks@J t| |dttdksMJ t||dttdksZJ t||dttdksgJ t||dttdkstJ t||dttdksJ t||dttdksJ d S 	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c r   n/var/www/html/construction_image-detection-poc/venv/lib/python3.10/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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sIJ t||dttdksVJ t||dttdkscJ t||dttdkspJ t||dttdks}J t||dttdksJ d S r   )r   mpf_rdiv_intr   r   r   r   r   r   r   r   r   r   test_mpf_divi_1_3    s   r   c                  C   st  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s7J t|| dtt dksDJ t|| dtt dksQJ t|| dtt dks^J t|| dtt dkskJ t|| dtt dksxJ t|| dtt dksJ t d}t d	}t d
}t|| dtt dksJ t|| dtt dksJ t|| dtt dksJ d S )Ni@B iDi Di!D	   i,  i-  i_i`iai.  )r   r   r   r   r   )qr   r   r   r   r   r   test_div_3000   s&   r    c                  C   s   d} t d t| D ]L}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sUJ qHq
d S )Nd   r	   r   
   )
r   ranger   r   bitcountabstrailingr   	all_modesr   )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J t||dtt dks+J t||dtt dks8J t||dtt d	ksEJ t||dtt d
ksRJ t||dtt dks_J t||dtt dkslJ t||dtt d	ksyJ t||dtt d
ksJ t d} t d}t| |dt}t||t| d t| ksJ t||dtt dksJ t||dtt dksJ t||dtt dksJ t||dtt dksJ t||dtt dksJ t||dtt dksJ 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   mpf_mulr   r   r$   r   r   r   r   r   r   r   test_epsilon_rounding\   s,   r1   c                   C   s   dt _tdd dksJ tdd dksJ tdd	 dks!J tdd
 dks+J tdd	 dks5J tdd
 dks?J tdd dksIJ tdd tdksUJ dtd dks_J d S )N      r	   r         g      ?g    @g    g    g      пg    @1e10000000000z1.23e-1000000000r
   z1.75g      ?r   dpsr   r   r   r   r   test_mod~   s   r:   c                   C   s>   dt _dtd tdksJ tdtd tdksJ d S )Nr2   r4   z0.1531879017645047z-19.583791966887116z-2.6342475750861301z0.35126216427941814z-7.4993775104985909r8   r   r   r   r   test_div_negative_rnd_bug   s    r;   N)mpmath.libmpmpmathr   r   randomr   r   r   r   r   r   r   r   r'   	from_bstrr   from_intr   
from_floatffr   r   r    r-   r1   r:   r;   r   r   r   r   <module>   s    "