
    wg"                     z    d dl Z d dl d dl 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y)    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J  J t        d      t        d      cxk(  rt        d	      cxk(  rt        d
      k(  sJ  J t        d      D ]-  } t        d      D ]  }t        d| |fz        | d|z  z  k(  r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 t	        t        d*            d+k(  sJ y,)-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     ^/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/mpmath/tests/test_convert.pytest_basic_stringr      s    BFs8s5zNS\NS]Nc#hNNNNNt9FAs8}AD	AAAAA2Y 5r 	5Aw!A'1r1u9444	55 s9~)+++s8})))s7|'''s6{v%%%s5z?e###s6{v%%%s7|'''s8})))s9~)+++s:8+++s1v;%s/015RRRRs0126SSSSs>"#'7777s?#$(9999s; M111K !%EEEEs=!"n444s>"#666s,-.2EEEEs+,-1CCCC    c                      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
        _        y )NT      @r	         @z(2.5 + 3.5j)Fz
[2.5, 3.5])r   prettyr   r   mpcivmpi r   r   test_prettyr   &   sf    BIC>U"""C///BIBIC---BIr   c                  $    t        d      dk(  sJ y )Nz1.26 g)\(?)r   r   r   r   test_str_whitespacer!   /   s    w<4r   c                      dt         _        	  } t	         | d            dk(  sJ t	         | d            t
        k(  sJ y # t        $ r	 t        } Y Bw xY w)Nr   z2.76gGz@inf)r   r   	NameErrorr   r   r#   )unicodes    r   test_unicoder&   2   sY    BF wv4'''wu~#%%%  s   A   AA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 y )!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;NNNN*S/"=III*S/!t<GGG*S/!u=EEE*S/!t<HHH*S/!u=FFF*T"1=JJJ*01"QR]^_cxxxx*01"QR]^_cxxxx*Y't<@SSSS*Y't<@TTTT*Y't<@UUUU*Y't<@ccccr   c                      dt         _        t        ddt              t        k(  sJ t        ddt
              t        k(  sJ y )Nr   z0.5r   )r   r   from_strround_floorfhalfround_ceilingr   r   r   test_tight_string_conversionr9   J   s9    BF E2{+u444E2}-666r   c                  .   t        j                  d       dD ]p  } | t        _        t	        d      D ]U  }t        t        j                                dz  dt        j                  dd      z  z  }t        t        |            |k(  rUJ  r dt        _        y	)
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    
KK$ &t 	&AFMMO$c)BtS0I,IIAQ=A%%%	&&
 BFr   c                  ~    dt         _        t        t        d            dk(  sJ t        t        d            dk(  sJ y )Nr   1e600z1.0e+6001e10000z
1.0e+10000)r   r   r   r   r   r   r   test_str_bugsrI   [   s7    BFs7|
***s9~,...r   c                     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 y )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*U#Q'8333*U#Q'8333*V$a(I555*V$a(I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 y )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   sN    BFQM2lBBBQM2mCCC}%///r   c                  h    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 y )
Nc                       e Zd Zed        Zy) test_custom_class.<locals>.mympfc                 ,    t        d      j                  S )Nr   r   _mpf_selfs    r   r^   z&test_custom_class.<locals>.mympf._mpf_p   s    s8>>!r   N)__name__
__module____qualname__propertyr^   r   r   r   mympfr[   o   s    		" 
	"r   re   c                       e Zd Zed        Zy) test_custom_class.<locals>.mympcc                 V    t        d      j                  t        d      j                  fS )Nr   r   r]   r_   s    r   _mpc_z&test_custom_class.<locals>.mympc._mpc_t   s    s8>>3s8>>11r   N)ra   rb   rc   rd   ri   r   r   r   mympcrg   s   s    		2 
	2r   rj   rP   g      @r   r   y      @      @)r   r   )re   rj   s     r   test_custom_classrk   n   s    " "2 2 q6EGs"""7SVs"""uw<37SVs3},,,q6EGs3},,,uw<H%%%r   c                  
    G d d      }  G d d      } G d d      }t        d      }t        d      } |        } |       } |       }dD ]  }|t        _        ||z   j	                  t        d	            sJ ||z   j	                  t        d	            sJ ||z   j	                  t        d	d
            sJ ||z   j	                  t        d	d
            sJ ||z   j	                  t        d	            sJ ||z   j	                  t        d	            sJ ||z   j	                  t        d	d
            sJ ||z   j	                  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        _        |j                  |      t        u sJ |j                  |      t        u sJ |j                  |      t        u sJ |j                  |      t        u sJ |j                  |      t        u sJ |j                  |      t        u sJ |j                  |      t        u sJ |j                  |      t        u sJ t        |d      r|j                  |      t        u sJ |j!                  |      t        u sJ |j#                  |      t        u sJ |j%                  |      t        u sJ |j'                  |      t        u sJ |j)                  |      t        u sJ |j+                  |      t        u sJ |j-                  |      t        u sJ |j/                  |      t        u sJ |j1                  |      t        u sJ |j3                  |      t        u sJ |j                  |      t        u sJ |j                  |      t        u sJ |j                  |      t        u sJ |j                  |      t        u sJ |j!                  |      t        u sJ |j#                  |      t        u sJ |j%                  |      t        u sJ |j'                  |      t        u sJ |j)                  |      t        u sJ |j+                  |      t        u sJ |j1                  |      t        u sJ |j3                  |      t        u sJ y )Nc                       e Zd Zy)0test_conversion_methods.<locals>.SomethingRandomN)ra   rb   rc   r   r   r   SomethingRandomrn      s    r   ro   c                       e Zd Zd Zy).test_conversion_methods.<locals>.SomethingRealc                 B    t         j                  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y)1test_conversion_methods.<locals>.SomethingComplexc                 \    t         j                  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 2r   Nry   r   r   r   SomethingComplexr|      s    	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 	AAAAAAA 7!xxE
###!xxE
###!xxE5)***!xxE5)***!xxE
###!xxE
###!xxE5)***!xxE5)***	!QqS!A#qsAaC1ac1Q3	!QqS!A#qsAaC1ac1Q3	!QqS!A#qsAaC1ac1Q3	1adAqD!Q$1adAqD!Q$	1adAqD!Q$1adAqD!Q$7 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 y )
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!Qi///)*c)X.FFFFT?c"g%%%r   c                  >    	 t        dddz  z   dz          J #  Y y xY w)N(1i  z!j)r   r   r   r   test_issue548r      s0     	#d
"T)* 5s    c            	         	 dd l } ddlm} ddlm} dd l}| j                  j                  j                  j                         D ]  }t        || j                        r |t        dd            }n=t        || j                        r	 |d      }nt        || j                        r |d      }| j                   t!        | j#                              t#        |            | j#                  |      z
        }|dk  rJ  t$        j&                  }dt$        _        t$        j(                  |j+                         _        t#         |dd	            j-                  t#        t/        d
                  sJ t#         |d       |d	      z        j-                  t#        t/        d
                  sJ |t$        _        y # t
        $ r Y y w xY w#  Y xY w)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      sm   &# ''&&//668 
fb001wsD)*A,sA

+q	AFF+4
+DG4rwwqzABTh
 ggGBG "GA""4E
#3444
71:%&))$s5z*:;;;BG)   	s   F< -A
G<	GGG)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7/60& ?+B&r   