o
    ¨"`e;  ã                   @   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y#   eZY nw 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S )/é    N)Ú*c                   C   s”   t dƒtddƒksJ ‚t dƒtdƒksJ ‚t dƒtddƒks J ‚t dƒdks(J ‚t dƒdks0J ‚t dƒdks8J ‚t dƒdks@J ‚tdƒdksHJ ‚d S )Né   r   gñhãˆµøä>ç       @ç      @z2.0©ÚmpfÚmpc© r	   r	   ú=/usr/lib/python3/dist-packages/mpmath/tests/test_basic_ops.pyÚtest_type_compare   s   r   c                   C   s  t dƒt dƒ dksJ ‚t dƒd dksJ ‚t dƒd dks J ‚dt dƒ dks*J ‚dt dƒ dks4J ‚dt dƒ dks>J ‚tdƒt dƒ dksJJ ‚tdƒd dksTJ ‚tdƒd dks^J ‚tdƒd dkshJ ‚dtdƒ dksrJ ‚dtdƒ dks|J ‚dtdƒ dks†J ‚d S )Nç      @é   g      @r   ù      @        r   r	   r	   r	   r
   Útest_add   ó   r   c                   C   s  t dƒt dƒ dksJ ‚t dƒd dksJ ‚t dƒd dks J ‚dt dƒ dks*J ‚dt dƒ dks4J ‚dt dƒ dks>J ‚tdƒt dƒ dksJJ ‚tdƒd dksTJ ‚tdƒd dks^J ‚tdƒd dkshJ ‚dtdƒ dksrJ ‚dtdƒ dks|J ‚dtdƒ dks†J ‚d S )Nr   r   g      à¿r   ç      à?r   r   r	   r	   r	   r
   Útest_sub%   r   r   c                   C   s  t dƒt dƒ dksJ ‚t dƒd dksJ ‚t dƒd dks J ‚dt dƒ dks*J ‚dt dƒ dks4J ‚dt dƒ dks>J ‚tdƒt dƒ dksJJ ‚tdƒd dksTJ ‚tdƒd dks^J ‚tdƒd dkshJ ‚dtdƒ dksrJ ‚dtdƒ dks|J ‚dtdƒ dks†J ‚d S )Nr   r   g      @r   r   r   r	   r	   r	   r
   Útest_mul4   r   r   c                   C   s  t dƒt dƒ dksJ ‚t dƒd dksJ ‚t dƒd dks J ‚dt dƒ dks*J ‚dt dƒ dks4J ‚dt dƒ dks>J ‚tdƒt dƒ dksJJ ‚tdƒd dksTJ ‚tdƒd dks^J ‚tdƒd dkshJ ‚dtdƒ dksrJ ‚dtdƒ dks|J ‚dtdƒ dks†J ‚d S )Né   r   r   r   ç      @ù      @        r   r   r	   r	   r	   r
   Útest_divC   r   r   c                   C   s  t dƒt dƒ dksJ ‚t dƒd dksJ ‚t dƒd dks J ‚dt dƒ dks*J ‚dt dƒ dks4J ‚dt dƒ dks>J ‚tdƒt dƒ dksJJ ‚tdƒd dksTJ ‚tdƒd dks^J ‚tdƒd dkshJ ‚dtdƒ dksrJ ‚dtdƒ dks|J ‚dtdƒ dks†J ‚d S )Nr   r   g      k@r   r   r   r   r   r	   r	   r	   r
   Útest_powR   r   r   c                   C   sh  dt dƒ t dƒd   krdksJ ‚ J ‚dt dƒ t dƒd    kr*dks-J ‚ J ‚dt dƒ t dƒd   kr@dksCJ ‚ J ‚dt dƒ t dƒd   krVdksYJ ‚ J ‚dt dƒ t dƒd   krldksoJ ‚ J ‚dt dƒ t dƒd    krƒdks†J ‚ J ‚dt dƒ t dƒd   kr™dksœJ ‚ J ‚d	t dƒ t dƒd
   kr¯dks²J ‚ J ‚d S )Né   r   é   éþÿÿÿr   r   g      ð?r   r   r   )r   r	   r	   r	   r
   Útest_mixed_misca   s   ,.,,,.,0r   c                   C   s
  dt _tdƒtdƒ dksJ ‚tdƒtdƒd  dksJ ‚td	ƒtd
ƒ td	ƒks+J ‚td
ƒtd	ƒ td	ƒks9J ‚tdƒtd
ƒ td
ƒksGJ ‚td
ƒtdƒ td
ƒksUJ ‚tdƒd dks_J ‚tdƒd dksiJ ‚tdƒd tdƒksuJ ‚tdƒtdƒ tdƒksƒJ ‚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
   Útest_add_misck   s    r#   c                   C   s<   dt dƒ dks
J ‚t dƒ d¡rJ ‚t dƒ d¡sJ ‚d S )Nr   r   r   gá      @y       @Vçž¯Ò<)r   Úaer	   r	   r	   r
   Útest_complex_miscx   s   r%   c               	   C   sX   dD ]'} dD ]"}dD ]}dD ]}t | |ƒt ||ƒ t| |ƒt||ƒ ks&J ‚qq
qqd S )N)r   r   )r   r   ©r   r   )r   é   )r   Úcomplex)ÚaÚbÚcÚdr	   r	   r
   Útest_complex_zeros~   s   .ÿÿÿÿr-   c                  C   s¦  t ddƒD ]} tt| ƒƒt| ƒksJ ‚qttdƒƒtdƒks J ‚ttddƒƒtdƒks-J ‚ttƒs3J ‚ttdƒƒtdƒks?J ‚ttd	dƒƒttd
dƒƒksOJ ‚ddlm} tt dd¡ƒs_J ‚tt dd¡ƒdkskJ ‚tt dd¡ƒtdƒksyJ ‚tt dd¡ƒtdƒks‡J ‚tt dd¡ƒtdƒks•J ‚tt dd¡ƒtdƒks£J ‚tj	dkrÏttdƒdd  ƒtdd ƒksºJ ‚ttdƒdd  ƒt|ddd ƒƒksÑJ ‚d S d S )Ni ÿÿÿé   r   r   r   y       @      @Z1e1000Z1e10000éd   éÈ   r   ©Úmpqr   éÿÿÿÿr'   ©r   r   iÐ  )
ÚrangeÚhashr   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sJ ‚tt| dtƒtks$J ‚tttt| dtƒdtƒtdƒks6J ‚tt| dtƒtksAJ ‚d S )Nr   g¸ÔJzî5é5   g      °<g       <)r!   r"   Z
from_floatZmpf_subZmpf_addZfoneZround_upZ
round_down)r)   r	   r	   r
   Útest_add_rounding›   s   $$r>   c                   C   sJ   t dƒ t dƒd¡sJ ‚t dƒ t dƒd¡rJ ‚t dƒ t dƒ¡r#J ‚d S )Ng333333ó?geâ533ó?gH¯¼šò×z>g•Ö&è.>gKÞuÃé¿gXÍˆýNÊè¿)r   r$   r	   r	   r	   r
   Útest_almost_equal£   s   r?   c                  C   sb  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 ]v}|D ]q\}}	|	turHdt_|||ƒ}
dt_|||ƒ}dt_|||ƒ}|	||dd	|kscJ ‚|	||ƒ|kslJ ‚|	tur‘|	||td	|
ks{J ‚|	||td
|
ks†J ‚|	||dd|
ks‘J ‚tt|ddtd	|ksŸJ ‚t|ƒ|
  ks©J ‚q8q4q,d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!   rB   r7   Zfnegr"   )rE   Úopsr)   r*   r+   r,   ÚxÚyÚopZfopZz0Zz1Zz2r	   r	   r
   Útest_arithmetic_functions¨   s:   ÿ


ñÿ
rO   c                  C   sh  t  d¡ dD ]§} dD ]¢}| t_d| d  }d| d d  }tdƒD ]Š}t  | |¡}t  | |¡}t||d|ks<J ‚tt||dƒ|ksHJ ‚ttt|ƒ|dƒ|ksVJ ‚t|ƒt|ƒ || ksdJ ‚t|ƒt|ƒ || ksrJ ‚t|ƒ | ks|J ‚t  | |¡}t  | |¡}t|ƒt|ƒ || ks˜J ‚t	t
|ƒt
|ƒtj|ƒt
|| ƒks¬J ‚q"qqdt_d S )Nr   )r   é
   é   é(   r/   éú   iÕ  )r,   ÚuÚfr+   ÚnrP   r   )Úroundingr   )ÚrandomZseedr!   r"   r5   Zrandintr   ÚintÚstrZmpf_mulÚfrom_intrB   )rB   rW   ÚMZM2r;   r)   r*   r	   r	   r
   Útest_exact_integer_arithmeticÄ   s,   
*ôü
r]   c                   C   s   t tdƒtƒdksJ ‚d S )Nr   )Zto_intr[   Zround_nearestr	   r	   r	   r
   Útest_odd_int_bugÛ   s   r^   c                   C   óX   dt _ttdƒd ƒdd… dd d… ksJ ‚ttƒdd… dd d… ks'J ‚d	t _d S )
Nié  r   r   éöÿÿÿr3   Z
9518488472é	   Z
2164201989r   ©r!   r"   rZ   r   Zpir	   r	   r	   r
   Útest_str_1000_digitsÞ   ó   ( 
rc   c                   C   r_   )
Ni'  r   r   r`   r3   Z
5873258351ra   Z
5256375678r   rb   r	   r	   r	   r
   Útest_str_10000_digitså   rd   re   c                  C   sh   dd„ } g }g }t | |j|jƒ}|dƒdksJ ‚|dƒdks J ‚|d di fks*J ‚|d dks2J ‚d S )	Nc                 S   s   | d S )Nr   r	   )rL   r	   r	   r
   Ú<lambda>í   s    ztest_monitor.<locals>.<lambda>r   ra   r   é   r   )r   )ZmonitorÚappend)rU   r)   r*   Úgr	   r	   r
   Útest_monitorì   s   rj   c                   C   s~  t tdƒƒdt fksJ ‚t tdƒƒdt fksJ ‚t tdƒƒdks$J ‚t tdƒƒdks.J ‚t tdƒƒdks8J ‚t tdƒƒd	ksBJ ‚t td
ƒƒdksLJ ‚t tdƒƒdksVJ ‚t tdƒƒdks`J ‚t tdƒƒd	ksjJ ‚t tdƒƒdkstJ ‚t tdƒƒdks~J ‚t tdƒƒdksˆJ ‚t tdƒƒdks’J ‚t tdƒƒdksœJ ‚t tdƒƒdt fks©J ‚t tdƒƒdks³J ‚t tdƒƒdks½J ‚d S )NéýÿÿÿgÍÌÌÌÌÌÀ)rk   rk   g®GázÀ)rk   éúÿÿÿg5^ºIÀ)rk   i÷ÿÿÿg9ÖÅm4 À)rk   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   rl   z1e-100)r   i´þÿÿ)Znint_distancer   r7   r   r	   r	   r	   r
   Útest_nint_distanceö   s$   rm   c                  C   sò  dt _tddƒD ]M} t| ƒ| ksJ ‚t| d ƒ| ksJ ‚t| ƒ| ks$J ‚t| d ƒ| d ks0J ‚t| ƒ| ks8J ‚| d dkrKt| d ƒ| d ksJJ ‚qt| d ƒ| ksUJ ‚qttƒtks^J ‚ttƒtksfJ ‚ttt	ƒƒsnJ ‚ttƒtksvJ ‚ttƒtks~J ‚ttt	ƒƒs†J ‚ttƒtksŽJ ‚ttƒtks–J ‚ttt	ƒƒ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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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ksJ ‚tdƒdks"J ‚tdƒdks+J ‚tdƒdks4J ‚tdƒdks=J ‚tdƒdksFJ ‚tdƒdksOJ ‚tdƒdksXJ ‚tdƒdksaJ ‚tdƒdksjJ ‚tdƒdkssJ ‚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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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 ]} t
| ƒdksJ ‚qö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s0J ‚t
d#ƒd!ks9J ‚t
d$ƒdksBJ ‚td%ƒ}t
|ƒ|ksOJ ‚t
| ƒdksYJ ‚td&ƒ}t
| dd'td|d(d)ksnJ ‚t
d*ƒd+kswJ ‚d S ),Nr   r`   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-400rA   TrC   y      
@      @y      Ð?      è?)r!   r"   r5   ZfloorZceilZnintr7   ZninfÚisnanÚnanZfracr   rH   )rV   rT   r	   r	   r
   Útest_floor_ceil_nint_frac
  s’   "rq   c                  C   s”  ddl m}  ttƒdksJ ‚tdƒdksJ ‚ttdƒƒdks J ‚ttƒdks(J ‚ttdtƒƒdks3J ‚ttdtƒƒdks>J ‚ttttƒƒdksIJ ‚ttddƒƒdksTJ ‚ttttƒƒdks_J ‚ttttƒƒdksjJ ‚t| dƒƒdkstJ ‚t| dƒƒdks~J ‚ttƒdks†J ‚tt ƒdksJ ‚tdƒdks—J ‚ttƒdksŸJ ‚td	ƒdks§J ‚tttƒƒdks±J ‚ttdtƒƒdks¼J ‚tttdƒƒdksÇJ ‚ttttƒƒdksÒJ ‚ttttƒƒdksÝJ ‚ttttƒƒdksèJ ‚ttttƒƒ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td
ƒƒdks%J ‚tdƒdks.J ‚ttdƒƒdks9J ‚tdƒdksBJ ‚ttƒdksKJ ‚tt ƒdksUJ ‚ttƒdks^J ‚tt	tƒƒdksiJ ‚ttddƒƒdksuJ ‚ttddƒƒdksJ ‚ttddƒƒdksJ ‚ttddƒƒdks™J ‚ttdtƒƒdks¥J ‚ttdtƒƒdks±J ‚ttdtƒƒdks½J ‚ttdtƒƒdksÉJ ‚ttdt ƒƒdksÖJ ‚tttdƒƒdksâJ ‚tttdƒƒdksîJ ‚tttdƒƒdksúJ ‚tttdƒƒdksJ ‚ttttƒƒdksJ ‚ttttƒƒdksJ ‚ttttƒƒdks*J ‚ttttƒƒdks6J ‚t| dƒƒdksAJ ‚t| dƒƒdksLJ ‚t
dƒdksUJ ‚t
dƒdks^J ‚t
tdƒƒdksiJ ‚t
tdƒƒdkstJ ‚t
tdƒƒdksJ ‚t
tdƒƒdksŠJ ‚t
tdƒƒdks•J ‚t
tdƒƒdks J ‚t
dƒdks©J ‚t
tƒdks²J ‚t
tƒdks»J ‚t
t ƒdksÅJ ‚t
tdƒƒdksÐJ ‚t
tdƒƒdksÛJ ‚t
tdƒƒdksæJ ‚t
tdtƒƒdksòJ ‚t
ttƒƒdksýJ ‚t
tddƒƒdks	J ‚t
tddƒƒdksJ ‚t
tddƒdddks#J ‚t
tddƒdddks1J ‚t
tddƒdddks?J ‚t
d	ƒdksHJ ‚t
d	dddksSJ ‚t
dƒdks\J ‚t
| dƒƒdksgJ ‚t
| dƒƒdksrJ ‚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ks²J ‚t d¡dks¼J ‚t d¡dksÆJ ‚t d¡dksÐJ ‚t t dd¡¡dksÞJ ‚t t dd¡¡dksìJ ‚t t dd¡¡dksúJ ‚t t dd¡¡dksJ ‚t t dd¡¡dksJ ‚t d¡dks J ‚t d¡dks*J ‚t d¡dks4J ‚t d¡dks>J ‚t d¡dksHJ ‚d S )Nr   r1   Tr   Fr   r4   )r   r   rn   g      @g        rk   gš™™™™™	@)Zgaussianr   )r   ra   )ra   r   r&   )r   r   )r3   r   r   r3   gš™™™™™ñ¿g      ð¿y                y      ð¿        yš™™™™™ñ¿        y      ð¿š™™™™™¹?y        š™™™™™¹?)r8   r2   ro   rp   r   r7   r   ZisinfZisnormalÚfloatZisintÚlongr!   Zisnpintr1   r	   r	   r
   Útest_isnan_etcW  sÌ   rt   )ZmpmathZmpmath.libmprX   r9   rs   Ú	NameErrorrY   r   r   r   r   r   r   r   r#   r%   r-   r<   r>   r?   rO   r]   r^   rc   re   rj   rm   rq   rt   r	   r	   r	   r
   Ú<module>   s@    ÿ


M