U
    ZÊ¹jÜ  ã                   @   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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�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/bwave/python/venv/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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�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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�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s�t
‚q�qd S )Néd   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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�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�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‚d S )NzÎ0.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s’t‚tdƒd tdƒksªt‚dtdƒ dks¾t‚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   "