
    [h"                     z    S SK r S SK7  S SK7  S rS rS rS rS rS rS	 r	S
 r
S rS rS rS rS rS rS rg)    N)*c                     S[         l        [        S5      [        S5      s=:X  a0  [        S5      s=:X  a   [        S5      s=:X  a  [        S5      :X  d   e   e[        S5      [        S5      s=:X  a   [        S	5      s=:X  a  [        S
5      :X  d   e   e[        S5       H0  n [        S5       H  n[        SX4-  5      U SU-  -  :X  a  M   e   M2     [	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S:X  d   e[	        [        S5      5      S :X  d   e[	        [        S!5      5      S":X  d   e[        [        S!5      5      S#:X  d   e[	        [        S$5      5      S%:X  d   e[	        [        S&5      5      S':X  d   e[	        [        S(5      5      S):X  d   e[	        [        S*5      5      S+:X  d   eg,)-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     Q/var/www/auris/envauris/lib/python3.13/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rAw!'1r1u9444   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                      S[         l        [        [        S5      5      S:X  d   e[        [	        SS5      5      S:X  d   eS[         l        S[
        l        [        [        SS5      5      S:X  d   eS[
        l        g )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                  &    [        S5      S:X  d   eg )Nz1.26 g)\(?)r   r   r   r   test_str_whitespacer!   /   s    w<4r   c                      S[         l         W n [	        U " S5      5      S:X  d   e[	        U " S5      5      [
        :X  d   eg ! [         a	    [        n  NEf = f)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                     [        [        S5      SSS9S:X  d   e[        [        S5      SSS9S	:X  d   e[        [        S5      S
SS9S:X  d   e[        [        S5      S
SS9S:X  d   e[        [        S5      SSS9S	:X  d   e[        [        S5      SSS9S:X  d   e[        [        S5      SSS9S:X  d   e[        [        S5      SSS
S
S9S:X  d   e[        [        S5      SSS
S
S9S:X  d   e[        [        S5      SSS9S:X  d   e[        [        S5      SSS9S:X  d   e[        [        S5      SSS9S:X  d   e[        [        S5      SSS9S :X  d   eg )!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                      S[         l        [        SS[        5      [        :X  d   e[        SS[
        5      [        :X  d   eg )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                  >   [         R                  " S5        S Hv  n U [        l        [	        S5       HY  n[        [         R                   " 5       5      S-  S[         R                  " SS5      -  -  n[        [        U5      5      U:X  a  MY   e   Mx     S[        l        g	)
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   sv    
KK$tAFMMO$c)BtS0I,IIAQ=A%%%  %
 BFr   c                      S[         l        [        [        S5      5      S:X  d   e[        [        S5      5      S:X  d   eg )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                     [        [        S5      S5      S:X  d   e[        [        S5      S5      S:X  d   e[        [        S5      S5      S:X  d   e[        [        S5      S5      S	:X  d   e[        [        S
5      S5      S:X  d   eg )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                      S[         l        [        SSS[        5      S:X  d   e[        SSS[        5      S:X  d   e[	        S	5      S
:X  d   eg )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                  t    " S S5      n  " S S5      n[        S5      U " 5       -   S:X  d   eU " 5       [        S5      -   S:X  d   e[        U " 5       5      S:X  d   eU" 5       [        S5      -   [        SS5      :X  d   e[        S5      U" 5       -   [        SS5      :X  d   e[        U" 5       5      S	:X  d   eg )
Nc                   $    \ rS rSr\S 5       rSrg) test_custom_class.<locals>.mympfo   c                 ,    [        S5      R                  $ )Nr   r   _mpf_selfs    r   r_   &test_custom_class.<locals>.mympf._mpf_p   s    s8>>!r   r   N)__name__
__module____qualname____firstlineno__propertyr_   __static_attributes__r   r   r   mympfr[   o   s    		" 
	"r   ri   c                   $    \ rS rSr\S 5       rSrg) test_custom_class.<locals>.mympcs   c                 V    [        S5      R                  [        S5      R                  4$ )Nr   r   r^   r`   s    r   _mpc_&test_custom_class.<locals>.mympc._mpc_t   s    s8>>3s8>>11r   r   N)rc   rd   re   rf   rg   rn   rh   r   r   r   mympcrk   s   s    		2 
	2r   rp   rP   g      @r   r   y      @      @)r   r   )ri   rp   s     r   test_custom_classrq   n   s    " "2 2 q6EGs"""7SVs"""uw<37SVs3},,,q6EGs3},,,uw<H%%%r   c                  
    " S S5      n  " S S5      n " S S5      n[        S5      n[        S5      nU " 5       nU" 5       nU" 5       nS GH  nU[        l        X6-   R	                  [        S	5      5      (       d   eXc-   R	                  [        S	5      5      (       d   eX7-   R	                  [        S	S
5      5      (       d   eXs-   R	                  [        S	S
5      5      (       d   eXF-   R	                  [        S	5      5      (       d   eXd-   R	                  [        S	5      5      (       d   eXG-   R	                  [        S	S
5      5      (       d   eXt-   R	                  [        S	S
5      5      (       d   eX6-
    Xc-
    X7-
    Xs-
    XF-
    Xd-
    XG-
    Xt-
    X6-    Xc-    X7-    Xs-    XF-    Xd-    XG-    Xt-    X6-    Xc-    X7-    Xs-    XF-    Xd-    XG-    Xt-    X6-    Xc-    X7-    Xs-    XF-    Xd-    XG-    Xt-    X6:H    Xc:H    X7:H    Xs:H    XF:H    Xd:H    XG:H    Xt:H    GM     S[        l        UR                  U5      [        L d   eUR                  U5      [        L d   eUR                  U5      [        L d   eUR                  U5      [        L d   eUR                  U5      [        L d   eUR                  U5      [        L d   eUR                  U5      [        L d   eUR                  U5      [        L d   e[        US5      (       a  UR                  U5      [        L d   eUR!                  U5      [        L d   eUR#                  U5      [        L d   eUR%                  U5      [        L d   eUR'                  U5      [        L d   eUR)                  U5      [        L d   eUR+                  U5      [        L d   eUR-                  U5      [        L d   eUR/                  U5      [        L d   eUR1                  U5      [        L d   eUR3                  U5      [        L d   eUR                  U5      [        L d   eUR                  U5      [        L d   eUR                  U5      [        L d   eUR                  U5      [        L d   eUR!                  U5      [        L d   eUR#                  U5      [        L d   eUR%                  U5      [        L d   eUR'                  U5      [        L d   eUR)                  U5      [        L d   eUR+                  U5      [        L d   eUR1                  U5      [        L d   eUR3                  U5      [        L d   eg )Nc                       \ rS rSrSrg)0test_conversion_methods.<locals>.SomethingRandom   r   N)rc   rd   re   rf   rh   r   r   r   SomethingRandomrt      s    r   rv   c                       \ rS rSrS rSrg).test_conversion_methods.<locals>.SomethingReal   c                 @    [         R                  [        SX5      5      $ )N1.3)r   make_mpfr5   ra   precroundings      r   _mpmath_7test_conversion_methods.<locals>.SomethingReal._mpmath_   s    ;;xt>??r   r   Nrc   rd   re   rf   r   rh   r   r   r   SomethingRealrx      s    	@r   r   c                       \ rS rSrS rSrg)1test_conversion_methods.<locals>.SomethingComplex   c                 X    [         R                  [        SX5      [        SX5      45      $ )Nr{   1.7)r   make_mpcr5   r}   s      r   r   :test_conversion_methods.<locals>.SomethingComplex._mpmath_   s+    ;; ?/ 1 2 2r   r   Nr   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__)	rv   r   r   xzrD   ywds	            r   test_conversion_methodsr   ~   s    @ @2 2 	AAAAAAAxxE
####xxE
####xxE5)****xxE5)****xxE
####xxE
####xxE5)****xxE5)****	QS!#qsACac13	QS!#qsACac13	QS!#qsACac13	adAD!$adAD!$	adAD!$adAD!$  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                      [        S5      S:X  d   e[        S5      [        SS5      :X  d   e[        S5      [        SS5      :X  d   e[        S5      [        S	5      :X  d   eg )
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                  >     [        SSS-  -   S-   5         e!    g = f)N(1i  z!j)r   r   r   r   test_issue548r      s0     	#d
"T)* 5s    c                      SS K n SSKJn  SSKJn  SS KnU R                  R                  R                  R                  5        H  n[        X@R                  5      (       a  U" [        SS5      5      nOE[        X@R                  5      (       a	  U" S5      nO"[        X@R                  5      (       a  U" S5      nU R                  [!        U R#                  W5      5      " [#        U5      5      U R#                  U5      -
  5      nUS:  a  M   e   [$        R&                  nS[$        l        [$        R(                  UR+                  5       l        [#        U" SS	5      5      R-                  [#        [/        S
5      5      5      (       d   e[#        U" S5      U" S	5      -  5      R-                  [#        [/        S
5      5      5      (       d   eU[$        l        g ! [
         a     g f = f!    GM  = f)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   r~   r   
getcontextr   r   )npr   r   r   nptyper   diffoldprecs           r   test_compatibilityr      sn   &# ''&&//668f0011wsD)*A,,sA

++q	AFF4
+DG4rwwqzABTh 9 ggGBG "GA""4E
#34444
71:%&))$s5z*:;;;;BG)   	s   G 9A
G%
G"!G"%G+)r@   mpmathmpmath.libmpr   r   r!   r&   r3   r9   rE   rI   rK   rX   rq   r   r   r   r   r   r   r   <module>r      s]      D@ &d7/60& ?+B&r   