a
    <b                     @   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s2J t| |dttdksLJ t| |dttdksfJ 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sJ t||dttdks J 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   j/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/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sDJ t| |dttdks^J t| |dttdksxJ 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sJ d S r   )r   Zmpf_rdiv_intr   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:J t|| dtt dksTJ t|| dtt dksnJ 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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sxJ 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 ]}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sJ qqd S )Nd   r	   r   
   )
r   ranger   r   bitcountabsZ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sVJ t||dtt dkspJ 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sJ t d} t d}t| |dt}t||t| d t| ksLJ t||dtt dkshJ 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   Zmpf_mulr   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J tdd dks.J tdd	 dksBJ tdd
 dksVJ tdd	 dksjJ tdd
 dks~J tdd dksJ tdd tdksJ dtd dksJ 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   test_mod~   s    r5   c                   C   s>   dt _dtd tdksJ tdtd tdks:J d S )Nr/   r1   z0.1531879017645047z-19.583791966887116z-2.6342475750861301z0.35126216427941814z-7.4993775104985909r4   r   r   r   r   test_div_negative_rnd_bug   s    r6   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.   r5   r6   r   r   r   r   <module>   s   "