U
    ZÊ¹jô;  ã                   @   s  d dl Z d dl T d dlT d dlZd dlZzeZW n ek
rH   eZY nX 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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/d0„ ZdS )1é    N)Ú*c                   C   s”   t dƒtddƒkst‚t dƒtdƒks*t‚t dƒtddƒks@t‚t dƒdksPt‚t dƒdks`t‚t dƒdkspt‚t dƒdks€t‚tdƒdks�t‚d S )Né   r   gñhãˆµøä>ç       @ç      @z2.0)ÚmpfÚmpcÚAssertionError© r	   r	   úZ/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mpmath/tests/test_basic_ops.pyÚtest_type_compare   s    r   c                   C   s  t dƒt dƒ dkst‚t dƒd dks,t‚t dƒd dks@t‚dt dƒ dksTt‚dt dƒ dksht‚dt dƒ dks|t‚tdƒt dƒ dks”t‚tdƒd dks¨t‚tdƒd dks¼t‚tdƒd dksÐt‚dtdƒ dksät‚dtdƒ dksøt‚dtdƒ dk�st‚d S )Nç      @é   g      @r   ù      @        ©r   r   r   r	   r	   r	   r
   Útest_add   s    r   c                   C   s  t dƒt dƒ dkst‚t dƒd dks,t‚t dƒd dks@t‚dt dƒ dksTt‚dt dƒ dksht‚dt dƒ dks|t‚tdƒt dƒ dks”t‚tdƒd dks¨t‚tdƒd dks¼t‚tdƒd dksÐt‚dtdƒ dksät‚dtdƒ dksøt‚dtdƒ dk�st‚d S )Nr   r   g      à¿r   ç      à?r   r   r	   r	   r	   r
   Útest_sub%   s    r   c                   C   s  t dƒt dƒ dkst‚t dƒd dks,t‚t dƒd dks@t‚dt dƒ dksTt‚dt dƒ dksht‚dt dƒ dks|t‚tdƒt dƒ dks”t‚tdƒd dks¨t‚tdƒd dks¼t‚tdƒd dksÐt‚dtdƒ dksät‚dtdƒ dksøt‚dtdƒ dk�st‚d S )Nr   r   g      @r   r   r   r	   r	   r	   r
   Útest_mul4   s    r   c                   C   s  t dƒt dƒ dkst‚t dƒd dks,t‚t dƒd dks@t‚dt dƒ dksTt‚dt dƒ dksht‚dt dƒ dks|t‚tdƒt dƒ dks”t‚tdƒd dks¨t‚tdƒd dks¼t‚tdƒd dksÐt‚dtdƒ dksät‚dtdƒ dksøt‚dtdƒ dk�st‚d S )Né   r   r   r   ç      @ù      @        r   r   r	   r	   r	   r
   Útest_divC   s    r   c                   C   s  t dƒt dƒ dkst‚t dƒd dks,t‚t dƒd dks@t‚dt dƒ dksTt‚dt dƒ dksht‚dt dƒ dks|t‚tdƒt dƒ dks”t‚tdƒd dks¨t‚tdƒd dks¼t‚tdƒd dksÐt‚dtdƒ dksät‚dtdƒ dksøt‚dtdƒ dk�st‚d S )Nr   r   g      k@r   r   r   r   r   r	   r	   r	   r
   Útest_powR   s    r   c                   C   sb  dt dƒ t dƒd   kr$dks*n t‚dt dƒ t dƒd    krPdksVn t‚dt dƒ t dƒd   krzdks€n t‚dt dƒ t dƒd   kr¤dksªn t‚dt dƒ t dƒd   krÎdksÔn t‚dt dƒ t dƒd    krüdk�sn t‚dt dƒ t dƒd   k�r*dk�s0n t‚d	t dƒ t dƒd
   k�rXdk�s^n t‚d S )Né   r   é   éþÿÿÿr   r   g      ð?r   r   r   )r   r   r	   r	   r	   r
   Útest_mixed_misca   s    *,***..r   c                   C   s  dt _tdƒtdƒ dkst‚tdƒtdƒd  dks:t‚td	ƒtd
ƒ td	ƒksVt‚td
ƒtd	ƒ td	ƒksrt‚tdƒtd
ƒ td
ƒksŽt‚td
ƒtdƒ td
ƒksªt‚tdƒd dks¾t‚tdƒd dksÒt‚tdƒd tdƒksêt‚tdƒtdƒ tdƒk�st‚d S )Né   r   iºÿÿÿi¾ÿÿÿr   gš™™™™™ñ?éP   g¸…ëQ8ð?)r   ì    d(	 r   )r   ìýÿÿÿ d(	 gVçž¯Ò<g#B’¡œÇ;g@çr¬\+`;r   )ÚmpÚdpsr   r   r	   r	   r	   r
   Útest_add_misck   s    r#   c                   C   s<   dt dƒ dkst‚t dƒ d¡r&t‚t dƒ d¡s8t‚d S )Nr   r   r   gá      @y       @Vçž¯Ò<)r   r   Úaer	   r	   r	   r
   Útest_complex_miscx   s    r%   c               	   C   sX   dD ]N} dD ]D}dD ]:}dD ]0}t | |ƒt ||ƒ t| |ƒt||ƒ kst‚qqqqd S )N)r   r   )r   r   ©r   r   )r   é   )r   Úcomplexr   )ÚaÚbÚcÚdr	   r	   r
   Útest_complex_zeros~   s
    r-   c                  C   s®  t ddƒD ]} tt| ƒƒt| ƒks
t‚q
ttdƒƒtdƒks@t‚ttddƒƒtdƒksZt‚ttƒsft‚ttdƒƒtdƒks~t‚ttd	dƒƒttd
dƒƒksžt‚ddlm} tt dd¡ƒs¾t‚tt dd¡ƒdksÖt‚tt dd¡ƒtdƒksòt‚tt dd¡ƒtdƒk�st‚tt dd¡ƒtdƒk�s.t‚tt dd¡ƒtdƒk�sLt‚t	j
dk�rªttdƒdd  ƒtdd ƒk�s~t‚ttdƒdd  ƒt|ddd ƒƒk�sªt‚d S )Ni ÿÿÿé   r   r   r   y       @      @Z1e1000Z1e10000éd   éÈ   r   ©Úmpqr   éÿÿÿÿr'   ©r   r   iÐ  )ÚrangeÚhashr   r   r   ÚinfÚmpmath.rationalr2   r!   ÚsysÚversion_info)Úir2   r	   r	   r
   Ú	test_hash…   s"     &r<   c                  C   s†   dt _tdƒ} ttt| dtƒtdtƒtdƒks2t‚tt| dtƒtksHt‚tttt| dtƒdtƒtdƒkslt‚tt| dtƒtks‚t‚d S )Nr   g¸ÔJzî�5é5   g      °<g       <)	r!   r"   Ú
from_floatZmpf_subZmpf_addZfoneZround_upr   Z
round_down)r)   r	   r	   r
   Útest_add_rounding›   s    $$r?   c                   C   sJ   t dƒ t dƒd¡st‚t dƒ t dƒd¡r0t‚t dƒ t dƒ¡rFt‚d S )Ng333333ó?geâ533ó?gH¯¼šò×z>g•Ö&è.>gKÞuÃé¿gXÍˆýNÊè¿)r   r$   r   r	   r	   r	   r
   Útest_almost_equal£   s    r@   c                  C   sl  dd l } | jtf| jtf| jtf| jtfg}t	dƒ}t	dƒ}t
dƒ}t
dƒ}||||fD �]}||||fD ]ô}|D ]ê\}}	|	tk	r’dt_|||ƒ}
dt_|||ƒ}dt_|||ƒ}|	||dd	�|ksÈt‚|	||ƒ|ksÚt‚|	tk	�r*|	||td	�|
ksút‚|	||td
�|
k�st‚|	||dd�|
k�s*t‚tt|dd�td	�|k�sHt‚t|ƒ|
  ksrt‚qrqjqXdt_d S )Nr   gHáz®GÑ?g®Gázò?yR¸…ëQà?Ház®G@yHáz®Gñ?®Gáz®ï¿r0   é<   r=   ©Úprec)r"   T©Úexactr   )ÚoperatorÚaddZfaddÚsubÚfsubÚmulZfmulÚtruedivZfdivr   r   r!   rC   r   r7   Zfnegr"   )rF   Zopsr)   r*   r+   r,   ÚxÚyÚopZfopZz0Zz1Zz2r	   r	   r
   Útest_arithmetic_functions¨   s6    ÿ



rO   c                  C   sp  t  d¡ dD �]T} dD �]H}| t_d| d  }d| d d  }tdƒD �]}t  | |¡}t  | |¡}t||d�|ks~t‚tt||d�ƒ|ks–t‚ttt	|ƒ|d�ƒ|ks²t‚t|ƒt|ƒ || ksÎt‚t|ƒt|ƒ || ksêt‚t|ƒ | ksþt‚t  | |¡}t  | |¡}t|ƒt|ƒ || k�s8t‚t
t|ƒt|ƒtj|ƒt|| ƒksHt‚qHqqdt_d S )Nr   )r   é
   é   é(   r/   éú   iÕ  )r,   ÚuÚfr+   ÚnrP   r   )Úroundingr   )ÚrandomÚseedr!   r"   r5   Úrandintr   r   ÚintÚstrZmpf_mulÚfrom_intrC   )rC   rW   ÚMZM2r;   r)   r*   r	   r	   r
   Útest_exact_integer_arithmeticÄ   s(    


.r_   c                   C   s   t tdƒtƒdkst‚d S )Nr   )Zto_intr]   Zround_nearestr   r	   r	   r	   r
   Útest_odd_int_bugÛ   s    r`   c                   C   sX   dt _ttdƒd ƒdd… dd d… ks.t‚ttƒdd… dd d… ksNt‚d	t _d S )
Nié  r   r   éöÿÿÿr3   Z
9518488472é	   Z
2164201989r   ©r!   r"   r\   r   r   Úpir	   r	   r	   r
   Útest_str_1000_digitsÞ   s    ( re   c                   C   sX   dt _ttdƒd ƒdd… dd d… ks.t‚ttƒdd… dd d… ksNt‚d	t _d S )
Ni'  r   r   ra   r3   Z
5873258351rb   Z
5256375678r   rc   r	   r	   r	   r
   Útest_str_10000_digitså   s    ( rf   c                  C   sh   dd„ } g }g }t | |j|jƒ}|dƒdks0t‚|dƒdks@t‚|d di fksTt‚|d dksdt‚d S )	Nc                 S   s   | d S )Nr   r	   )rL   r	   r	   r
   Ú<lambda>í   ó    ztest_monitor.<locals>.<lambda>r   rb   r   é   r   )r   )ZmonitorÚappendr   )rU   r)   r*   Úgr	   r	   r
   Útest_monitorì   s    rl   c                   C   sŠ  t tdƒƒdt fkst‚t tdƒƒdt fks4t‚t tdƒƒdksHt‚t tdƒƒdks\t‚t tdƒƒdkspt‚t tdƒƒd	ks„t‚t td
ƒƒdks˜t‚t tdƒƒdks¬t‚t tdƒƒdksÀt‚t tdƒƒd	ksÔt‚t tdƒƒdksèt‚t tdƒƒdksüt‚t tdƒƒdk�st‚t tdƒƒdk�s(t‚t tdƒƒdk�s>t‚t tdƒƒdt fk�sZt‚t tdƒƒdk�spt‚t tdƒƒdk�s†t‚d S )NéýÿÿÿgÍÌÌÌÌÌÀ)rm   rm   g®GázÀ)rm   éúÿÿÿg5^ºIÀ)rm   i÷ÿÿÿg9ÖÅm4 À)rm   ióÿÿÿg333333ÀgìQ¸…ëÀgË¡E¶óýÀgÇ):’ËÿÀy      Àš™™™™™¹?y      À{®Gáz„?yÍÌÌÌÌÌÀš™™™™™¹?y®GázÀ{®Gáz„?y5^ºIÀü©ñÒMbP?r   g{®Gáz„?)r   rn   z1e-100)r   i´þÿÿ)Znint_distancer   r7   r   r   r	   r	   r	   r
   Útest_nint_distanceö   s$    ro   c                  C   s  dt _tddƒD ]š} t| ƒ| ks$t‚t| d ƒ| ks8t‚t| ƒ| ksHt‚t| d ƒ| d ks`t‚t| ƒ| kspt‚| d dkr–t| d ƒ| d ksªt‚qt| d ƒ| kst‚qttƒtks¼t‚ttƒtksÌt‚t	tt
ƒƒsÜt‚ttƒtksìt‚ttƒtksüt‚t	tt
ƒƒ�st‚ttƒtk�s t‚ttƒtk�s2t‚t	tt
ƒƒ�sDt‚tdƒdk�sVt‚td	ƒdk�sht‚td
ƒdk�szt‚tdƒdk�sŒt‚tdƒdk�sžt‚tdƒdk�s°t‚tdƒdk�sÂt‚tdƒdk�sÔt‚tdƒdk�sæt‚tdƒdk�søt‚tdƒdk�s
t‚tdƒdk�st‚tdƒdk�s.t‚td	ƒdk�s@t‚td
ƒdk�sRt‚tdƒdk�sdt‚tdƒdk�svt‚tdƒdk�sˆt‚tdƒdk�sšt‚tdƒdk�s¬t‚tdƒdk�s¾t‚tdƒdk�sÐt‚tdƒdk�sât‚tdƒdk�sôt‚tdƒdk�st‚td	ƒdk�st‚td
ƒdk�s*t‚tdƒdk�s<t‚tdƒdk�sNt‚tdƒdk�s`t‚tdƒdk�srt‚tdƒdk�s„t‚tdƒdk�s–t‚tdƒdk�s¨t‚tdƒdk�sºt‚tdƒdk�sÌt‚tdƒdk�sÞt‚tdƒdk�sðt‚tdƒdk�st‚tddƒD ]} t| ƒdk�st‚�qtdƒdk�s8t‚tdƒdk�sJt‚tdƒdk�s\t‚td ƒd!k�snt‚td"ƒd!k�s€t‚td#ƒd!k�s’t‚td$ƒdk�s¤t‚td%ƒ}t|ƒ|k�s¾t‚t| ƒdk�sÒt‚td&ƒ}t| dd'�td|d(d)�k�süt‚td*ƒd+k�st‚d S ),Nr   ra   rP   r   r   r   gš™™™™™¹?r   gÍÌÌÌÌÌì?gš™™™™™¹¿r3   gÍÌÌÌÌÌì¿gÍÌ  _ Br   g33 _ BgÍÌ  _ Âlýÿÿÿd(	 g33 _ Âg0Žä.ÿ++g0Žä.ÿ+«g}Ã”%­I²Tg}Ã”%­I²Ôl   d(	 r    yš™™™™™	@ffffff@ù      @      @y      @      @y      @      @g      Ð?g      ô?g      @g      Ð¿g      è?g      ô¿g      ÀZ1e100000000000000z1e-100000000000000z1e-400rB   TrD   y      
@      @y      Ð?      è?)r!   r"   r5   Úfloorr   ÚceilZnintr7   ZninfÚisnanÚnanÚfracr   rI   )rV   rT   r	   r	   r
   Útest_floor_ceil_nint_frac
  s’    "rv   c                  C   s®  ddl m}  ttƒdkst‚tdƒdks,t‚ttdƒƒdks@t‚ttƒdksPt‚ttdtƒƒdksft‚ttdtƒƒdks|t‚ttttƒƒdks’t‚ttddƒƒdks¨t‚ttttƒƒdks¾t‚ttttƒƒdksÔt‚t| dƒƒdksèt‚t| dƒƒdksüt‚ttƒdk�st‚tt ƒdk�s"t‚tdƒdk�s4t‚ttƒdk�sFt‚td	ƒdk�sXt‚tttƒƒdk�snt‚ttdtƒƒdk�s†t‚tttdƒƒdk�sžt‚ttttƒƒdk�s¶t‚ttttƒƒdk�sÎt‚ttttƒƒdk�sæt‚ttttƒƒdk�sþt‚t| dƒƒdk�st‚t| dƒƒdk�s*t‚t	dƒdk�s<t‚t	d
ƒdk�sNt‚t	td
ƒƒdk�sdt‚t	dƒdk�svt‚t	tdƒƒdk�sŒt‚t	dƒdk�sžt‚t	tƒdk�s°t‚t	t ƒdk�sÄt‚t	tƒdk�sÖt‚t	t
tƒƒdk�sìt‚t	tddƒƒdk�st‚t	tddƒƒdk�st‚t	tddƒƒdk�s4t‚t	tddƒƒdk�sLt‚t	tdtƒƒdk�sdt‚t	tdtƒƒdk�s|t‚t	tdtƒƒdk�s”t‚t	tdtƒƒdk�s¬t‚t	tdt ƒƒdk�sÆt‚t	ttdƒƒdk�sÞt‚t	ttdƒƒdk�söt‚t	ttdƒƒdk�st‚t	ttdƒƒdk�s&t‚t	tttƒƒdk�s>t‚t	tttƒƒdk�sVt‚t	tttƒƒdk�snt‚t	tttƒƒdk�s†t‚t	| dƒƒdk�sœt‚t	| dƒƒdk�s²t‚tdƒdk�sÄt‚tdƒdk�sÖt‚ttdƒƒdk�sìt‚ttdƒƒdk�st‚ttdƒƒdk�st‚ttdƒƒdk�s.t‚ttdƒƒdk�sDt‚ttdƒƒdk�sZt‚tdƒdk�slt‚ttƒdk�s~t‚ttƒdk�s�t‚tt ƒdk�s¤t‚ttdƒƒdk�sºt‚ttdƒƒdk�sÐt‚ttdƒƒdk�sæt‚ttdtƒƒdk�sþt‚tttƒƒdk�st‚ttddƒƒdk�s,t‚ttddƒƒdk�sDt‚ttddƒdd�dk�s`t‚ttddƒdd�dk�s|t‚ttddƒdd�dk�s˜t‚td	ƒdk�sªt‚td	dd�dk�sÀt‚tdƒdk�sÒt‚t| dƒƒdk�sèt‚t| dƒƒdk�sþt‚t| dƒƒdk�st‚t| dƒƒdk�s*t‚t| dƒƒdk�s@t‚t| dƒƒdk�sVt‚t d¡dk�sjt‚t d¡dk�s~t‚t d¡dk�s’t‚t d¡dk�s¦t‚t d¡dk�sºt‚t t dd¡¡dk�sÖt‚t t dd¡¡dk�sòt‚t t dd¡¡dk�st‚t t dd¡¡dk�s*t‚t t dd¡¡dk�sFt‚t d¡dk�sZt‚t d¡dk�snt‚t d¡dk�s‚t‚t d¡dk�s–t‚t d¡dk�sªt‚d S )Nr   r1   Tr   Fr   r4   )r   r   rp   g      @g        rm   gš™™™™™	@)Zgaussianr   )r   rb   )rb   r   r&   )r   r   )r3   r   r   r3   gš™™™™™ñ¿g      ð¿y                y      ð¿        yš™™™™™ñ¿        y      ð¿š™™™™™¹?y        š™™™™™¹?)r8   r2   rs   rt   r   r   r7   r   ÚisinfZisnormalÚfloatZisintÚlongr!   Zisnpintr1   r	   r	   r
   Útest_isnan_etcW  sÌ    rz   c                   C   sD   t tƒt dƒkst‚t tƒt dƒks(t‚t tƒjt dƒjks@t‚d S )Nr7   z-infrt   )r   Zfinfr   ZfninfZfnanZ_mpf_r	   r	   r	   r
   Útest_issue_438À  s    r{   )ZmpmathZmpmath.libmprX   r9   ry   Ú	NameErrorr[   r   r   r   r   r   r   r   r#   r%   r-   r<   r?   r@   rO   r_   r`   re   rf   rl   ro   rv   rz   r{   r	   r	   r	   r
   Ú<module>   s>   



Mi