o
    lĒh  ć                   @   s   d Z ddlT ddlT dd Zdd Zdd Zd	d
 Zdd Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )z+
Test bit-level integer and mpf operations
é    )Ś*c                   C   sp   t ddksJ t ddksJ t ddksJ t ddks J t dd d	ks*J t dd d dks6J d S )
Nr   é   é   é   é   é   é   éd   ée   )Śbitcount© r   r   śm/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/mpmath/tests/test_bitwise.pyŚtest_bitcount   s   r   c                   C   s   t ddksJ t ddksJ t ddksJ t ddks J t ddks(J t dd dks2J t dd d dks>J d S )Nr   r   r   r   r   r   r	   )Śtrailingr   r   r   r   Śtest_trailing   s   r   c                   C   sÖ   t dddtd d dksJ t dddtd d dksJ t dddtd d dks-J t d	ddtd d dks<J t d
ddtd d dksKJ t dddtd d dksZJ t dddtd d dksiJ d S )Nr   éü’’’r   r   ©r   r   r   éš   ©r   é   r   éń   é’   é’’’©r   r   r   é’’’é’’’)Śfrom_man_expŚ
round_downr   r   r   r   Śtest_round_down   ó   "r   c                   C   sÖ   t dddtd d dksJ t dddtd d dksJ t dddtd d d	ks-J t d
ddtd d d	ks<J t dddtd d dksKJ t dddtd d dksZJ t dddtd d dksiJ d S )Nr   r   r   r   r   r   r   r   ©r   r   r   r   r   r   r   ©r   r   r   r   )r   Śround_upr   r   r   r   Śtest_round_up"   r   r#   c                   C   sÖ   t dddtd d dksJ t dddtd d dksJ t dddtd d dks-J t d	ddtd d dks<J t d
ddtd d dksKJ t dddtd d dksZJ t dddtd d dksiJ d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r!   r   )r   Śround_floorr   r   r   r   Śtest_round_floor+   r   r%   c                   C   sÖ   t dddtd d dksJ t dddtd d dksJ t dddtd d d	ks-J t d
ddtd d d	ks<J t dddtd d dksKJ t dddtd d dksZJ t dddtd d dksiJ d S )Nr   r   r   r   r   r   r   r   r    r   r   r   r   r   )r   Śround_ceilingr   r   r   r   Śtest_round_ceiling4   r   r'   c                   C   s  t dddtd d dksJ t dddtd d dksJ t dddtd d dks-J t d	ddtd d d
ks<J t dddtd d d
ksKJ t dddtd d dksZJ t dddtd d dksiJ t dddtd d dksxJ t dddtd d dksJ t dddtd d dksJ t dddtd d dks„J t dddtd d dks“J t dddtd d dksĆJ d S )Nr   r   r   r   r   r   r   é÷   éų   r    éł   éč   )r   r   r   éé   r   r   i	’’’i’’’r!   i’’’i’’’)r   r   r   i’’’)r   Śround_nearestr   r   r   r   Śtest_round_nearest=   s   "r.   c                   C   s   t dddtdksJ t dddtdksJ t dd	d
tdks!J t dd	d
tdks,J t dd	dtdks7J t dd	dtdksBJ d S )Nl   ’’’’iČ’’’é5   )r   r   r   r   l   ~’’’? iæ’’’)r   r   r   r   é   r   r   )r   r   é   r   iį’’’)r   r   r1   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r"   r-   r$   r   r   r   r   Śtest_rounding_bugsL   s   r2   c                  C   s~   t dd} t dd}t dd}d}t| |dd|ksJ t||dd|ks'J t|| dd|ks2J t||dd|ks=J d S )	Ni&  i’’’i8’’’é’’’’r   )r   i’  iö’’’é
   r4   Śd)r   Śmpf_add)ŚaŚbŚcŚzr   r   r   Śtest_rounding_issue_200U   s   


r;   c                  C   sč  t } td}td}t| ddt| ksJ t| ddt| ks J t| ddt|ks+J t| ddt|ks6J t| ddt| ksAJ t| ddt| ksLJ t| ddt| ksWJ t| ddt| ksbJ t| ddt|ksmJ t| ddt|ksxJ t| } t|}t|}t| ddt| ksJ t| ddt| ksJ t| ddt| ks„J t| ddt| ks°J t| ddt|ks»J t| ddt|ksĘJ t| ddt|ksŃJ t| ddt|ksÜJ t| ddt| ksēJ t| ddt| ksņJ d S )Ng’’’’’’ļ?g     š?r   r/   r   )	ŚfoneŚ
from_floatŚmpf_perturbr-   r"   r&   r   r$   Śmpf_neg)r7   r8   r9   r   r   r   Śtest_perturb_   s4   r@   c                  C   s6  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tt| d	t| d	ksNJ tt| d	tt| d	ks^J ttt| d
t| d
ksnJ tt| d
tt| d
ks~J ttttksJ ttttksJ ttttksJ d S )Ng      @g      @g      @g      Ąg      ą?g      Ąg      ąæg      Ąg0ä.’++g0ä.’+«)r=   r6   Śmpf_subr<   Śfzero)Śffr   r   r   Śtest_add_exact{   s       rD   c                  C   s  dt _td} dD ]ž}tdd|d  }tdd| }tdd|d  }tdd|d   }tdd|  }tdd|d   }| | |ksHJ | | |ksPJ | | |ksXJ | | | ks`J | | | kshJ | | | kspJ ||  |ksxJ ||  |ksJ ||  |ksJ ||  | ksJ ||  | ksJ ||  | ks J | | | ks©J | | | ks²J | | | ks»J | | | ksĆJ | | | ksĖJ | | | ksÓJ ||  |ksŪJ ||  |ksćJ ||  |ksėJ ||  |  ksōJ ||  |  ksżJ ||  |  ksJ q	d S )Nr   r   )é    é@   r   )ŚmpŚdpsŚmpfŚldexp)ŚxŚpr7   r8   r9   r5   ŚeŚfr   r   r   Śtest_long_exponent_shifts   sD   ārO   c               	   C   sä   dt _tdtdt tdt td t td t fD ]N} t| }tt| dddd}||ks4J t| | }t|}tt|dddd}||ksMJ dD ]}t| j	|d}tt| dd|dj	|d}||kskJ qOqdt _d S )	NrF   r   r   r/   Śn)ŚprecŚrounding)rP   r5   ŚurN   r9   )Śrnd)
rG   rQ   rI   ŚepsŚfloatŚfaddŚmpcŚcomplexŚto_floatŚ_mpf_)rK   ŚfaŚfbr:   ŚcaŚcbrT   r   r   r   Śtest_float_rounding®   s   :
ż
r`   N)Ś__doc__ŚmpmathŚmpmath.libmpr   r   r   r#   r%   r'   r.   r2   r;   r@   rD   rO   r`   r   r   r   r   Ś<module>   s     						
%