
    g"                     x    d dl Z d dlT d dlT d Zd Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd Zd Zd ZdS )    N)*c                     dt           _        t          d          t          d          cxk    r;t          d          cxk    r't          d          cxk    rt          d          k    sn J t          d          t          d          cxk    r't          d	          cxk    rt          d
          k    sn J t          d          D ]4} t          d          D ]"}t          d| |fz            | d|z  z  k    sJ #5t	          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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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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#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+k    sJ d,S )-z&
    Test basic string conversion
       3z3.0z0003.z0.03e2g      @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')2163048125Lz2163048125.0z-2163048125lz-2163048125.0z-2163048125L/1088391168z-1.98738118113799z2163048125/1088391168lz1.98738118113799N)mpdpsmpfrangestrrepr)ijs     U/var/www/html/ai-engine/env/lib/python3.11/site-packages/mpmath/tests/test_convert.pytest_basic_stringr      s    BFs88s5zzNNNNS\\NNNNS]]NNNNc#hhNNNNNNt99FAAAAs8}}AAAAD		AAAAAA2YY 5 5r 	5 	5Aw!A''1r1u944444	5s9~~)++++s8}}))))s7||''''s6{{v%%%%s5zz??e####s6{{v%%%%s7||''''s8}}))))s9~~)++++s:8++++s1vv;;%s/00115RRRRRs011226SSSSSs>""##'77777s?##$$(99999s;  M1111K  !!%EEEEEs=!!""n4444s>""##6666s,--..2EEEEEs+,,--1CCCCCCC    c                  6   dt           _        t          t          d                    dk    sJ t          t	          dd                    dk    sJ dt           _        dt
          _        t          t          dd                    dk    sJ dt
          _        d S )NT      @r	         @z(2.5 + 3.5j)Fz
[2.5, 3.5])r   prettyr   r   mpcivmpi r   r   test_prettyr   &   s    BIC>>U""""C////BIBIC----BIIIr   c                  0    t          d          dk    sJ d S )Nz1.26 g)\(?)r   r   r   r   test_str_whitespacer!   /   s    w<<4r   c                      dt           _        	 | } n# t          $ r
 t          } Y nw xY wt	           | d                    dk    sJ t	           | d                    t
          k    sJ d S )Nr   z2.76gGz@inf)r   r   	NameErrorr   r   r#   )unicodes    r   test_unicoder&   2   s    BF   wwv4''''wwu~~#%%%%%%s    %%c                     t          t          d          dd          dk    sJ t          t          d          dd          d	k    sJ t          t          d          d
d          dk    sJ t          t          d          d
d          dk    sJ t          t          d          dd          d	k    sJ t          t          d          dd          dk    sJ t          t          d          dd          dk    sJ t          t          d          ddd
d
          dk    sJ t          t          d          ddd
d
          dk    sJ t          t          d          dd          dk    sJ t          t          d          dd          dk    sJ t          t          d          dd          dk    sJ t          t          d          dd          d k    sJ d S )!Ng?r   F)strip_zerosz0.100000000000000g        T)show_zero_exponentz0.0e+0r   .0e+0z.0   r
   gGz?   z1.23e+0gH?)r(   	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to_str
from_floatr   r   r   test_str_formatr3   ;   s   *S//"777;NNNNN*S//"===IIII*S//!t<<<GGGG*S//!u===EEEE*S//!t<<<HHHH*S//!u===FFFF*T""1===JJJJ*011"QR]^___cxxxxx*011"QR]^___cxxxxx*Y''t<<<@SSSSS*Y''t<<<@TTTTT*Y''t<<<@UUUUU*Y''t<<<@cccccccr   c                      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_strround_floorfhalfround_ceilingr   r   r   test_tight_string_conversionr9   J   sK    BF E2{++u4444E2}--666666r   c                  H   t          j        d           dD ]~} | t          _        t	          d          D ]`}t          t          j                               dz  dt          j        dd          z  z  }t          t          |                    |k    sJ a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   as      r   test_eval_repr_invariantrE   Q   s    
K$ & &t 	& 	&AFMOO$$c)BtS0I0I,IIAQ==A%%%%%	& BFFFr   c                      dt           _        t          t          d                    dk    sJ t          t          d                    dk    sJ d S )Nr   1e600z1.0e+6001e10000z
1.0e+10000)r   r   r   r   r   r   r   test_str_bugsrI   [   sM    BFs7||
****s9~~,......r   c                  d   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 d S )NgX9v?r   r*   gV瞯<z.0e-15g  4&kCz.0e+15gV瞯Ҽz-.0e-15g  4&kz-.0e+15r0   r   r   r   test_str_prec0rK   a   s    *U##Q''72222*U##Q''83333*U##Q''83333*V$$a((I5555*V$$a((I555555r   c                      dt           _        t          dddt                    dk    sJ t          dddt                    dk    sJ t	          d	          d
k    sJ d S )Nr         5   )r   r,   r+      i   )r+      r,   )r   r+   r+   )r+   rP   )r   r   from_rationalround_nearestto_rationalr   r   r   test_convert_rationalrX   h   sf    BFQM22lBBBBQM22mCCCC}%%//////r   c                      G d d          }  G d d          }t          d           |             z   dk    sJ  |             t          d          z   dk    sJ t           |                       dk    sJ  |            t          d          z   t          dd          k    sJ t          d           |            z   t          dd          k    sJ t           |                      d	k    sJ d S )
Nc                   $    e Zd Zed             ZdS ) test_custom_class.<locals>.mympfc                 *    t          d          j        S )Nr   r   _mpf_selfs    r   r^   z&test_custom_class.<locals>.mympf._mpf_p   s    s88>!r   N)__name__
__module____qualname__propertyr^   r   r   r   mympfr[   o   s-        		" 	" 
	" 	" 	"r   re   c                   $    e Zd Zed             ZdS ) test_custom_class.<locals>.mympcc                 R    t          d          j        t          d          j        fS )Nr   r   r]   r_   s    r   _mpc_z&test_custom_class.<locals>.mympc._mpc_t   s    s88>3s88>11r   N)ra   rb   rc   rd   ri   r   r   r   mympcrg   s   s-        		2 	2 
	2 	2 	2r   rj   rP   g      @r   r   y      @      @)r   r   )re   rj   s     r   test_custom_classrk   n   s,   " " " " " " " "2 2 2 2 2 2 2 2 q66EEGGs""""577SVVs""""uuww<<3577SVVs3}},,,,q66EEGGs3}},,,,uuww<<H%%%%%%r   c                      G d d          }  G d d          } G d d          }t          d          }t          d          } |             } |            } |            }dD ]}|t          _        ||z                       t          d	                    sJ ||z                       t          d	                    sJ ||z                       t          d	d
                    sJ ||z                       t          d	d
                    sJ ||z                       t          d	                    sJ ||z                       t          d	                    sJ ||z                       t          d	d
                    sJ ||z                       t          d	d
                    sJ ||z
   ||z
   ||z
   ||z
   ||z
   ||z
   ||z
   ||z
   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||z   ||k     ||k     ||k     ||k     ||k     ||k     ||k     ||k     dt          _        |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |	                    |          t          u sJ |
                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ t          |d          r|                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ |                    |          t          u sJ d S )Nc                       e Zd ZdS )0test_conversion_methods.<locals>.SomethingRandomN)ra   rb   rc   r   r   r   SomethingRandomrn      s        r   ro   c                       e Zd Zd ZdS ).test_conversion_methods.<locals>.SomethingRealc                 T    t                               t          d||                    S )N1.3)r   make_mpfr5   r`   precroundings      r   _mpmath_z7test_conversion_methods.<locals>.SomethingReal._mpmath_   s     ;;xtX>>???r   Nra   rb   rc   rx   r   r   r   SomethingRealrq      s(        	@ 	@ 	@ 	@ 	@r   rz   c                       e Zd Zd ZdS )1test_conversion_methods.<locals>.SomethingComplexc                 v    t                               t          d||          t          d||          f          S )Nrs   1.7)r   make_mpcr5   ru   s      r   rx   z:test_conversion_methods.<locals>.SomethingComplex._mpmath_   s:    ;;h ? ?h// 1 2 2 2r   Nry   r   r   r   SomethingComplexr|      s#        	2 	2 	2 	2 	2r   r   r,   )r   -   z4.3r~   r   __cmp__)r   r   r   r   ae__add__NotImplemented__radd____lt____gt____le____ge____eq____ne__hasattrr   __sub____rsub____mul____rmul____div____rdiv____mod____rmod____pow____rpow__)	ro   rz   r   xzrD   ywds	            r   test_conversion_methodsr   ~   s          @ @ @ @ @ @ @ @2 2 2 2 2 2 2 2 	AAAAAAA 7 7!xxE

#####!xxE

#####!xxE5))*****!xxE5))*****!xxE

#####!xxE

#####!xxE5))*****!xxE5))*****	!QqSS!A##qssAaCC1acc1Q33	!QqSS!A##qssAaCC1acc1Q33	!QqSS!A##qssAaCC1acc1Q33	1addAqDD!Q$$1addAqDD!Q$$	1addAqDD!Q$$1addAqDD!Q$$$BF99Q<<>))))::a==N****88A;;.((((88A;;.((((88A;;.((((88A;;.((((88A;;.((((88A;;.((((q) .yy||~----99Q<<>))))::a==N****99Q<<>))))::a==N****99Q<<>))))::a==N****99Q<<>))))::a==N****99Q<<>))))::a==N****99Q<<>))))::a==N****88A;;.((((88A;;.((((99Q<<>))))::a==N****99Q<<>))))::a==N****99Q<<>))))::a==N****99Q<<>))))::a==N******r   c                      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    sJ d S )
Nz1/2r?   z
(1.0+1.0j)r+   z(1.2e-10 - 3.4e5j)z1.2e-10z-3.4e51jy              ?)	mpmathifyr   r   r   r   test_mpmathifyr      s    Us""""\""c!Qii////)**c)X.F.FFFFFT??c"gg%%%%%%r   c                  J    	 t          dddz  z   dz              n#  Y d S xY wJ )N(1i  z!j)r   r   r   r   test_issue548r      s=     	#d
"T)****Ls     c            	      &   	 dd l } ddlm} ddlm} dd l}n# t
          $ r Y d S w xY w| j        j        j        	                                D ]}t          || j                  r |t          dd                    }nAt          || j                  r |d          }n t          || j                  r |d          }|                      t!          |                     |                    t#          |                    |                     |          z
            }n#  Y xY w|dk     sJ t$          j        }dt$          _        t$          j        |                                _        t#           |dd	                                        t#          t/          d
                              sJ t#           |d           |d	          z                                t#          t/          d
                              sJ |t$          _        d S )Nr   )Fraction)Decimalr?   g      rP   g      <r/   r,   z2/3)numpy	fractionsr   decimalr   ImportErrorcorenumerictypestypeDictvalues
issubclasscomplexfloatingcomplexfloatingintegerabstypesqrtr   rv   r   
getcontextr   r   )npr   r   r   nptyper   diffoldprecs           r   test_compatibilityr      s
   &&&&&&######    '&/6688 
 
fb011 	wsD))**AA,, 	sAA
++ 	q		AFF+4

++DGG44rwwqzzABBTThgGBG "GA""4E

#3#344444

771::%&&))$s5zz*:*:;;;;;BGGGs    
%%=A!DD#)r@   mpmathmpmath.libmpr   r   r!   r&   r3   r9   rE   rI   rK   rX   rk   r   r   r   r   r   r   r   <module>r      s           D D D@       & & &d d d7 7 7  / / /6 6 60 0 0& & & ?+ ?+ ?+B& & &      r   