a
    <b>!                     @   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S )    N)*c                  C   s  dt _tdtd  krBtd  krBtd  krBtdksHn J tdtd  krvtd	  krvtd
ks|n J tdD ]2} tdD ]$}td| |f | d|  ksJ qqttddksJ ttddksJ ttddksJ ttddks
J ttddks J ttddks6J ttddksLJ ttddksbJ ttddksxJ ttddksJ ttddksJ ttddksJ ttddksJ ttddksJ ttdd ksJ 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sTJ ttd(d)ksjJ ttd*d+ksJ 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-15gK<ּ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rangestrrepr)ij r   i/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/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J ttdddks0J dt _dt_ttdddksRJ dt_d S )NT      @r         @z(2.5 + 3.5j)Fz
[2.5, 3.5])r   prettyr   r
   mpcZivZmpir   r   r   r   test_pretty&   s    r   c                   C   s   t ddksJ d S )Nz1.26 g)\(?)r
   r   r   r   r   test_str_whitespace/   s    r   c                  C   sR   dt _z| } W n ty$   t} Y n0 t| ddks:J t| dtksNJ d S )Nr   z2.76gGz@inf)r   r	   	NameErrorr   r
   r   )unicoder   r   r   test_unicode2   s    
r   c                   C   sf  t tdddddksJ t tddddd	ks4J t tdd
dddksNJ t tdd
dddkshJ t tddddd	ksJ t tdddddksJ t tdddddksJ t tdddd
d
ddksJ t tdddd
d
ddksJ t tdddddksJ t tdddddks*J t tdddddksFJ t tddddd ksbJ d S )!Ng?r   F)strip_zerosz0.100000000000000g        T)Zshow_zero_exponentz0.0e+0r   .0e+0z.0   r   gGz?   z1.23e+0gH?)r   Z	min_fixed	max_fixedz1.23456789000000e-2g<^@z1.23456789000000e+2g wU3B  )r!   z212870000000000.0g `U]*@Cz2128700000000000.0g \UzRCz21287000000000000.0g~^3:Fz!2128700000000000000000000000000.0Zto_str
from_floatr   r   r   r   test_str_format;   s    r%   c                   C   s2   dt _tddttksJ tddttks.J d S )Nr   z0.5r   )r   r	   from_strZround_floorZfhalfZ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 J q qdt_d	S )
zTest that eval(repr(x)) == x{   )r   r      2   d   r"         ?r   ir+   r   N)	randomseedr   r	   r   r
   randintevalr   )r	   r   ar   r   r   test_eval_repr_invariantQ   s    
 r2   c                   C   s2   dt _ttddksJ ttddks.J d S )Nr   Z1e600z1.0e+600Z1e10000z
1.0e+10000)r   r	   r   r
   r   r   r   r   test_str_bugs[   s    r3   c                   C   sr   t tdddksJ t tdddks,J t tdddksBJ t tddd	ksXJ t td
ddksnJ d S )NgX9v?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
    r4   c                   C   sF   dt _tdddtdksJ tdddtdks2J td	d
ksBJ d S )Nr         5   )r   r    r      i   )r      r    )r   r   r   )r   r8   )r   r	   Zfrom_rationalZround_nearestZ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s2J |  t d dksHJ t |  dksZJ | td tddksvJ td|  tddksJ t| d	ksJ 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   rF   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>   r@   r   r   r   _mpc_t   s    z&test_custom_class.<locals>.mympc._mpc_N)rB   rC   rD   rE   rG   r   r   r   r   mympcs   s   rH   r8   g      @r   r   y      @      @)r
   r   )rF   rH   r   r   r   test_custom_classn   s    rI   c            	      C   s  G dd d} G dd d}G dd d}t d}td}|  }| }| }dD ]}|t_|| t d	srJ || t d	sJ || td	d
sJ || td	d
sJ || td	sJ || td	sJ || td	d
sJ || td	d
sJ ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||k ||k ||k ||k ||k ||k ||k ||k qPdt_||tu srJ ||tu sJ ||tu sJ |	|tu sJ |
|tu sJ ||tu sJ ||tu sJ ||tu sJ t|dr||tu sJ ||tu s2J ||tu sFJ ||tu sZJ ||tu snJ ||tu sJ ||tu sJ ||tu sJ ||tu sJ ||tu sJ ||tu sJ ||tu sJ ||tu sJ ||tu s"J ||tu s6J ||tu sJJ ||tu s^J ||tu srJ ||tu sJ ||tu sJ ||tu sJ ||tu sJ ||tu sJ d S )Nc                   @   s   e Zd ZdS )z0test_conversion_methods.<locals>.SomethingRandomN)rB   rC   rD   r   r   r   r   SomethingRandom   s   rJ   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&   rA   precroundingr   r   r   _mpmath_   s    z7test_conversion_methods.<locals>.SomethingReal._mpmath_NrB   rC   rD   rO   r   r   r   r   SomethingReal   s   rQ   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 )NrK   1.7)r   Zmake_mpcr&   rL   r   r   r   rO      s    
z:test_conversion_methods.<locals>.SomethingComplex._mpmath_NrP   r   r   r   r   SomethingComplex   s   rS   r    )r   -   z4.3rR   r   __cmp__)r
   r   r   r	   ae__add__NotImplemented__radd____lt____gt____le____ge____eq____ne__hasattrrU   __sub____rsub____mul____rmul__Z__div__Z__rdiv____mod____rmod____pow____rpow__)	rJ   rQ   rS   xzr1   ywdr   r   r   test_conversion_methods~   sp    
@@@@Brn   c                   C   sT   t ddksJ t dtddks&J t dtddks<J t dtd	ksPJ d S )
Nz1/2r,   z
(1.0+1.0j)r   z(1.2e-10 - 3.4e5j)z1.2e-10z-3.4e5Z1jy              ?)Z	mpmathifyr   r   r   r   r   test_mpmathify   s    ro   c                  C   sP  z,dd l } ddlm} ddlm} dd l}W n ty@   Y d S 0 | jjj	 D ]}t
|| jrp|tdd}n*t
|| jr|d}nt
|| jr|d}z*| t| |t|| | }W n   Y qPY n0 |dk sPJ qPtj}dt_tj| _t|dd	ttd
sJ t|d|d	 ttd
sFJ |t_d S )Nr   )Fraction)Decimalr,   g      r8   g      <r"   r    z2/3)ZnumpyZ	fractionsrp   decimalrq   ImportErrorcoreZnumerictypesZtypeDictvalues
issubclassZcomplexfloatingcomplexZfloatingintegerabstypesqrtr   rM   r	   
getcontextrV   r
   )nprp   rq   rr   Znptyperi   diffZoldprecr   r   r   test_compatibility   s.    
,"(r   )r-   ZmpmathZmpmath.libmpr   r   r   r   r%   r'   r2   r3   r4   r=   rI   rn   ro   r   r   r   r   r   <module>   s     		
A