U
    ZÊ¹j‚"  ã                   @   s”   d dl 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d„ Zdd „ ZdS )!é    N)Ú*c                  C   s„  dt _tdƒtdƒ  krBtdƒ  krBtdƒ  krBtdƒksHn t‚tdƒtdƒ  krvtd	ƒ  krvtd
ƒks|n t‚tdƒD ]2} tdƒD ]$}td| |f ƒ| d|  ks�t‚q�q„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�s6t‚ttdƒƒdk�sLt‚ttdƒƒdk�sbt‚ttdƒƒdk�sxt‚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�sTt‚ttd(ƒƒd)k�sjt‚ttd*ƒƒd+k�s€t‚d,S )-z&
    Test basic string conversion
    é   Ú3z3.0z0003.z0.03e2g      @Z30z30.0z00030.g      >@é
   z%ie%iz25000.0z2500.0z250.0z25.0ú2.5z0.25z0.025z0.0025z0.00025z0.000025z2.5e-5r   ú0.0z2.5e1000000000000000000000z2.5e+1000000000000000000000z2.6e-1000000000000000000000gö-—„ó:Ö<z1.23402834e-15gö-—„ó:Ö¼z-1.23402834e-15gùÝîKª<Ö¼z-1.2344e-15zmpf('-1.2343999999999999e-15')Z2163048125Lz2163048125.0z-2163048125lz-2163048125.0z-2163048125L/1088391168z-1.98738118113799z2163048125/1088391168lz1.98738118113799N)ÚmpÚdpsÚmpfÚAssertionErrorÚrangeÚstrÚrepr)ÚiÚj© r   úX/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mpmath/tests/test_convert.pyÚtest_basic_string   s6    B4$r   c                   C   s\   dt _ttdƒƒdkst‚ttddƒƒdks0t‚dt _dt_ttddƒƒdksRt‚dt_d S )NTç      @r   ç      @z(2.5 + 3.5j)Fz
[2.5, 3.5])r   Úprettyr   r
   r   ÚmpcZivZmpir   r   r   r   Útest_pretty&   s    r   c                   C   s   t dƒdkst‚d S )Nz1.26 g)\�Âõ(ô?)r
   r   r   r   r   r   Útest_str_whitespace/   s    r   c                  C   sT   dt _z| } W n tk
r&   t} Y nX t| dƒƒdks<t‚t| dƒƒtksPt‚d S )Nr   z2.76g®Gáz@Úinf)r   r	   Ú	NameErrorr   r
   r   r   )Úunicoder   r   r   Útest_unicode2   s    
r   c                   C   sf  t tdƒddd�dkst‚t tdƒddd�d	ks4t‚t tdƒd
dd�dksNt‚t tdƒd
dd�dksht‚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 tdƒddd
d
d�dksÔt‚t tdƒd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 tdƒddd�dk�sFt‚t tdƒddd�d k�sbt‚d S )!Ngš™™™™™¹?r   F)Ústrip_zerosz0.100000000000000g        T)Zshow_zero_exponentz0.0e+0r   ú.0e+0z.0é   r   g®Gáz®ó?é   z1.23e+0gæµúø°H‰?)r   Z	min_fixedÚ	max_fixedz1.23456789000000e-2gî<Ý^@z1.23456789000000e+2g €wU3èBéè  )r"   z212870000000000.0g `U]*@Cz2128700000000000.0g \UzèRCz21287000000000000.0g¢~´^3Þ:Fz!2128700000000000000000000000000.0©Zto_strÚ
from_floatr   r   r   r   r   Útest_str_format;   s    r&   c                   C   s2   dt _tddtƒtkst‚tddtƒtks.t‚d S )Nr   z0.5r   )r   r	   Úfrom_strZround_floorZfhalfr   Zround_ceilingr   r   r   r   Útest_tight_string_conversionJ   s    r(   c                  C   sf   t  d¡ dD ]L} | t_tdƒD ]8}tt   ¡ ƒd dt  dd¡  }tt|ƒƒ|ks t	‚q qdt_d	S )
zTest that eval(repr(x)) == xé{   )r   r   é   é2   éd   r#   ç      à?r   iœÿÿÿr,   r   N)
ÚrandomÚseedr   r	   r   r
   ÚrandintÚevalr   r   )r	   r   Úar   r   r   Útest_eval_repr_invariantQ   s    
 r3   c                   C   s2   dt _ttdƒƒdkst‚ttdƒƒdks.t‚d S )Nr   Z1e600z1.0e+600Z1e10000z
1.0e+10000)r   r	   r   r
   r   r   r   r   r   Útest_str_bugs[   s    r4   c                   C   sr   t tdƒdƒdkst‚t tdƒdƒdks,t‚t tdƒdƒdksBt‚t tdƒdƒd	ksXt‚t td
ƒdƒdksnt‚d S )NgX9´Èv¾ó?r   r   gVçž¯Ò<z.0e-15g  4&õkCz.0e+15gVçž¯Ò¼z-.0e-15g  4&õkÃz-.0e+15r$   r   r   r   r   Útest_str_prec0a   s
    r5   c                   C   sF   dt _tdddtƒdkst‚tdddtƒdks2t‚td	ƒd
ksBt‚d S )Nr   é   é   é5   )r   r!   r    é   iùÿÿÿé   )r    é   éþÿÿÿr!   )r   r    éÿÿÿÿr    )r    r9   )r   r	   Zfrom_rationalZround_nearestr   Zto_rationalr   r   r   r   Útest_convert_rationalh   s    r>   c                  C   s¨   G dd„ dƒ} G dd„ dƒ}t dƒ| ƒ  dks2t‚| ƒ t dƒ dksHt‚t | ƒ ƒdksZt‚|ƒ tdƒ tddƒksvt‚tdƒ|ƒ  tddƒks’t‚t|ƒ ƒd	ks¤t‚d S )
Nc                   @   s   e Zd Zedd„ ƒZdS )z test_custom_class.<locals>.mympfc                 S   s
   t dƒjS )Nr   ©r
   Ú_mpf_©Úselfr   r   r   r@   p   s    z&test_custom_class.<locals>.mympf._mpf_N)Ú__name__Ú
__module__Ú__qualname__Úpropertyr@   r   r   r   r   Úmympfo   s   rG   c                   @   s   e Zd Zedd„ ƒZdS )z test_custom_class.<locals>.mympcc                 S   s   t dƒjt dƒjfS )Nr   r   r?   rA   r   r   r   Ú_mpc_t   s    z&test_custom_class.<locals>.mympc._mpc_N)rC   rD   rE   rF   rH   r   r   r   r   Úmympcs   s   rI   r9   g      @r   r   y      @      @)r
   r   r   )rG   rI   r   r   r   Útest_custom_classn   s    rJ   c            	      C   sÚ  G dd„ dƒ} G dd„ dƒ}G dd„ dƒ}t dƒ}tdƒ}| ƒ }|ƒ }|ƒ }dD �]}|t_||  t d	ƒ¡srt‚||  t d	ƒ¡sˆt‚||  td	d
ƒ¡s t‚||  td	d
ƒ¡s¸t‚||  td	ƒ¡sÎt‚||  td	ƒ¡sät‚||  td	d
ƒ¡süt‚||  td	d
ƒ¡�st‚||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||k ||k ||k ||k ||k ||k ||k ||k qPdt_| |¡tk�srt‚| |¡tk�s†t‚| 	|¡tk�sšt‚| 
|¡tk�s®t‚| |¡tk�sÂt‚| |¡tk�sÖt‚| |¡tk�sêt‚| |¡tk�sþt‚t|dƒ�r| |¡tk�st‚| |¡tk�s2t‚| |¡tk�sFt‚| |¡tk�sZt‚| |¡tk�snt‚| |¡tk�s‚t‚| |¡tk�s–t‚| |¡tk�sªt‚| |¡tk�s¾t‚| |¡tk�sÒt‚| |¡tk�sæt‚| |¡tk�sút‚| |¡tk�st‚| |¡tk�s"t‚| |¡tk�s6t‚| |¡tk�sJt‚| |¡tk�s^t‚| |¡tk�srt‚| |¡tk�s†t‚| |¡tk�sšt‚| |¡tk�s®t‚| |¡tk�sÂt‚| |¡tk�sÖt‚d S )Nc                   @   s   e Zd ZdS )z0test_conversion_methods.<locals>.SomethingRandomN)rC   rD   rE   r   r   r   r   ÚSomethingRandom   s   rK   c                   @   s   e Zd Zdd„ ZdS )z.test_conversion_methods.<locals>.SomethingRealc                 S   s   t  td||ƒ¡S )Nú1.3)r   Zmake_mpfr'   ©rB   ÚprecÚroundingr   r   r   Ú_mpmath_‚   s    z7test_conversion_methods.<locals>.SomethingReal._mpmath_N©rC   rD   rE   rP   r   r   r   r   ÚSomethingReal�   s   rR   c                   @   s   e Zd Zdd„ ZdS )z1test_conversion_methods.<locals>.SomethingComplexc                 S   s   t  td||ƒtd||ƒf¡S )NrL   ú1.7)r   Zmake_mpcr'   rM   r   r   r   rP   …   s    
ÿz:test_conversion_methods.<locals>.SomethingComplex._mpmath_NrQ   r   r   r   r   ÚSomethingComplex„   s   rT   r!   )r   é-   z4.3rS   r   Ú__cmp__)r
   r   r   r	   Úaer   Ú__add__ÚNotImplementedÚ__radd__Ú__lt__Ú__gt__Ú__le__Ú__ge__Ú__eq__Ú__ne__ÚhasattrrV   Ú__sub__Ú__rsub__Ú__mul__Ú__rmul__Z__div__Z__rdiv__Ú__mod__Ú__rmod__Ú__pow__Ú__rpow__)	rK   rR   rT   ÚxÚzr2   ÚyÚwÚdr   r   r   Útest_conversion_methods~   s¶    
                                   
ro   c                   C   sT   t dƒdkst‚t dƒtddƒks&t‚t dƒtddƒks<t‚t dƒtd	ƒksPt‚d S )
Nz1/2r-   z
(1.0+1.0j)r    z(1.2e-10 - 3.4e5j)z1.2e-10z-3.4e5Z1jy              ð?)Ú	mpmathifyr   r   r   r   r   r   Útest_mpmathify¿   s    rq   c                   C   s4   zt ddd  d ƒ W n   Y d S X ds0t‚d S )Nú(Ú1iˆ  z!jF)rp   r   r   r   r   r   Útest_issue548Å   s
    rt   c                  C   sR  z,dd l } ddlm} ddlm} dd l}W n tk
rB   Y d S X | jjj 	¡ D ]’}t
|| jƒrr|tddƒƒ}n*t
|| jƒrˆ|dƒ}nt
|| jƒrœ|dƒ}z*|  t|  |¡ƒt|ƒƒ|  |¡ ¡}W n   Y qRY nX |dk sRt‚qRtj}dt_tj| ¡ _t|dd	ƒƒ ttd
ƒƒ¡�s t‚t|dƒ|d	ƒ ƒ ttd
ƒƒ¡�sHt‚|t_d S )Nr   )ÚFraction)ÚDecimalr-   g      à¿r9   g       <r#   r!   z2/3)ÚnumpyÚ	fractionsru   Údecimalrv   ÚImportErrorÚcoreZnumerictypesZtypeDictÚvaluesÚ
issubclassZcomplexfloatingÚcomplexZfloatingÚintegerÚabsÚtypeÚsqrtr   r   rN   r	   Ú
getcontextrW   r
   )Únpru   rv   ry   Znptyperj   ÚdiffZoldprecr   r   r   Útest_compatibilityÏ   s2    
 * 
"(r†   )r.   ZmpmathZmpmath.libmpr   r   r   r   r&   r(   r3   r4   r5   r>   rJ   ro   rq   rt   r†   r   r   r   r   Ú<module>   s"    		
A
