
    wg;                         d dl Z d dl  d dl d dlZd dlZ	 e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 Zd Zd Zd Zd Zd Zd Zd Zd Zy# e$ r eZY Ow xY w)    N)*c                  >   t        d      t        dd      k(  sJ t        d      t        d      k(  sJ t        d      t        dd      k7  sJ t        d      dk(  sJ t        d      dk7  sJ t        d      dk(  sJ t        d      dk7  sJ t        d      dk7  sJ y )N   r   gh㈵>       @      @z2.0mpfmpc     `/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/mpmath/tests/test_basic_ops.pytest_type_comparer      s    q6S1Xq6SVq6SG_$$$q6S==q6S==q6Q;;q6U??q6U??r   c                     t        d      t        d      z   dk(  sJ t        d      dz   dk(  sJ t        d      dz   dk(  sJ dt        d      z   dk(  sJ dt        d      z   dk(  sJ dt        d      z   dk(  sJ t        d      t        d      z   dk(  sJ t        d      dz   dk(  sJ t        d      dz   dk(  sJ t        d      dz   dk(  sJ dt        d      z   dk(  sJ dt        d      z   dk(  sJ dt        d      z   dk(  sJ y )N      @   g      @r         @        r   r   r   r   test_addr      -   s8c!f###s8a<3s8c>S   s3x<3S>S   CH###s8c!f###s8a<3s8c>S   s8t###s3x<3S>S   CH###r   c                     t        d      t        d      z
  dk(  sJ t        d      dz
  dk(  sJ t        d      dz
  dk(  sJ dt        d      z
  dk(  sJ dt        d      z
  dk(  sJ dt        d      z
  dk(  sJ t        d      t        d      z
  dk(  sJ t        d      dz
  dk(  sJ t        d      dz
  dk(  sJ t        d      dz
  dk(  sJ dt        d      z
  dk(  sJ dt        d      z
  dk(  sJ dt        d      z
  dk(  sJ y )Nr   r   g      r         ?r   r   r   r   r   test_subr   %   s-   s8c!f$$$s8a<4s8c>T!!!s3x<3S>S   CH###s8c!f$$$s8a<4s8c>T!!!s8t$$$s3x<3S>S   CH###r   c                     t        d      t        d      z  dk(  sJ t        d      dz  dk(  sJ t        d      dz  dk(  sJ dt        d      z  dk(  sJ dt        d      z  dk(  sJ dt        d      z  dk(  sJ t        d      t        d      z  dk(  sJ t        d      dz  dk(  sJ t        d      dz  dk(  sJ t        d      dz  dk(  sJ dt        d      z  dk(  sJ dt        d      z  dk(  sJ dt        d      z  dk(  sJ y )Nr   r   g      @r   r   r   r   r   r   test_mulr   4   r   r   c                     t        d      t        d      z  dk(  sJ t        d      dz  dk(  sJ t        d      dz  dk(  sJ dt        d      z  dk(  sJ dt        d      z  dk(  sJ dt        d      z  dk(  sJ t        d      t        d      z  dk(  sJ t        d      dz  dk(  sJ t        d      dz  dk(  sJ t        d      dz  dk(  sJ dt        d      z  dk(  sJ dt        d      z  dk(  sJ dt        d      z  dk(  sJ y )N   r   r   r         @      @        r   r   r   r   r   test_divr   C   s)   q6CF?c!!!q6A:q6C<3s1v:Q<3CH###q6CF?c!!!q6A:q6C<3q6T?c!!!s1v:Q<3CF?c!!!r   c                     t        d      t        d      z  dk(  sJ t        d      dz  dk(  sJ t        d      dz  dk(  sJ dt        d      z  dk(  sJ dt        d      z  dk(  sJ dt        d      z  dk(  sJ t        d      t        d      z  dk(  sJ t        d      dz  dk(  sJ t        d      dz  dk(  sJ t        d      dz  dk(  sJ dt        d      z  dk(  sJ dt        d      z  dk(  sJ dt        d      z  dk(  sJ y )Nr   r   g      k@r   r   r   r   r   r   r   r   test_powr    R   s-   q6SVu$$$q6Q;%q6S=E!!!A;%#a&=E!!!SX&&&q6SVu$$$q6Q;%q6S=E!!!q6du$$$A;%#a&=E!!!SVu$$$r   c                     dt        d      z   t        d      dz   cxk(  rdk(  sJ  J dt        d      z
  t        d      dz
   cxk(  rdk(  sJ  J dt        d      z  t        d      dz  cxk(  rdk(  sJ  J dt        d      z  t        d      dz  cxk(  rdk(  sJ  J dt        d      z   t        d      dz   cxk(  rdk(  sJ  J dt        d      z
  t        d      dz
   cxk(  rdk(  sJ  J dt        d      z  t        d      dz  cxk(  rdk(  sJ  J d	t        d      z  t        d      d
z  cxk(  rdk(  sJ  J y )N   r      r   r   g      ?r   r   r   )r	   r   r   r   test_mixed_miscr%   a   sN   s1v:Q!(q(((((s1v:3q6A:,",,,,,s1v:Q!(q(((((s1v:Q!(q(((((Q<3q6C<,1,,,,,Q<SVc\?0b00000Q<3q6C<,1,,,,,Q<3q6C<,1,,,,,r   c                     dt         _        t        d      t        d      z   dk(  sJ t        d      t        d      dz  z   dk(  sJ t        d	      t        d
      z   t        d	      k(  sJ t        d
      t        d	      z   t        d	      k(  sJ t        d      t        d
      z   t        d
      k(  sJ t        d
      t        d      z   t        d
      k(  sJ t        d      dz   dk7  sJ t        d      dz   dk(  sJ t        d      dz   t        d      k(  sJ t        d      t        d      z   t        d      k(  sJ y )N   r#   iir"   g?P   gQ8?)r"       d(	 r   )r"    d(	 gV瞯<g#B;g@r\+`;r   )mpdpsr	   r   r   r   test_add_miscr-   k   s1   BFq6CH###q6CHRK:--- 3q6)S1A-BBBBq6C())S1A-BBBB !CF*c!f444q6C)**c!f444q6E>Qq6E>Qx=1H---q6CM!S]222r   c                      dt        d      z   dk(  sJ t        d      j                  d      rJ t        d      j                  d      sJ y )Nr"   r   r   g      @y       @V瞯<)r
   aer   r   r   test_complex_miscr0   x   sD    s1v:??1vyy###x=Ar   c            
          dD ]L  } dD ]E  }dD ]>  }dD ]7  }t        | |      t        ||      z  t        | |      t        ||      z  k(  r7J  @ G N y )N)r   r   )r   r   r   r#   )r      )r
   complex)abcds       r   test_complex_zerosr9   ~   sv     J 	JA J JAq8C!H,!WQq\0IIIIJJ	JJr   c                     t        dd      D ]$  } t        t        |             t        |       k(  r$J  t        t        d            t        d      k(  sJ t        t        dd            t        d      k(  sJ t        t              sJ t        t        d            t        d      k7  sJ t        t        d	d            t        t        d
d            k7  sJ ddlm} t        t        j                  dd            sJ t        t        j                  dd            dk(  sJ t        t        j                  dd            t        d      k(  sJ t        t        j                  dd            t        d      k(  sJ t        t        j                  dd            t        d      k(  sJ t        t        j                  dd            t        d      k(  sJ t        j                  dk\  r^t        t        d      ddz  z        t        ddz        k(  sJ t        t        d      ddz  z        t         |dddz              k(  sJ y y )Ni    r   r   r   y       @      @1e10001e10000d      r   mpqr"   r3   r   r   i  )
rangehashr	   r
   infmpmath.rationalrA   r+   sysversion_info)irA   s     r   	test_hashrK      s   4 'CF|tAw&&&'C>T#Y&&&Aa>T$Z'''99H$y/111C!"d3s8+<&====#qq!!!r!b)))qQ'''qQ'''qS	)))
6!CF1d7N#tAtG}444CF1d7N#tC!T'N';;;; "r   c            	         dt         _        t        d      } t        t	        t
        | dt              t
        dt              t        d      k(  sJ t        t
        | dt              t
        k(  sJ t        t
        t        t
        | dt              dt              t        d      k(  sJ t	        t
        | dt              t
        k(  sJ y )Nr'   gJz55   g      <g      <)r+   r,   
from_floatmpf_submpf_addfoneround_up
round_down)r5   s    r   test_add_roundingrT      s    BF5A74B14XF*UkJllll4B)T1114q"j92zJjYoNpppp4B
+t333r   c                      t        d      j                  t        d      d      sJ t        d      j                  t        d      d      rJ t        d      j                  t        d            rJ y )Ng333333?ge533?gHz>g&.>gKugX͈N)r	   r/   r   r   r   test_almost_equalrV      s]    s8;;s:---3x{{3z?D111&'**3/A+BCCCCr   c            	         dd l } | j                  t        f| j                  t        f| j
                  t        f| j                  t        fg}t        d      }t        d      }t        d      }t        d      }||||fD ]  }||||fD ]  }|D ]  \  }}	|	t        urdt        _         |||      }
dt        _         |||      }dt        _         |||      } |	||d	      |k(  sJ  |	||      |k(  sJ |	t        ur8 |	||t        	      
k(  sJ  |	||t        
      |
k(  sJ  |	||d      |
k(  sJ t        t        |d      t        	      |k(  sJ t        |      | k(  rJ    dt        _        y )Nr   gHzG?gGz?yRQ?HzG@yHzG?Gzr?   <   rM   prec)r,   Texactr'   )operatoraddfaddsubfsubmulfmultruedivfdivr	   r
   r+   rZ   rF   fnegr,   )r]   opsr5   r6   r7   r8   xyopfopz0z1z2s                r   test_arithmetic_functionsro      s   LL$(,,!5d7K			4 "CD	AD	AJAJA!AY *Aa 	*A *Cd?!BGAaB!W!W1ab)R///1ayB&d?q!#."444q!-333q!40B666D40s;rAAABxbS6)))*	**$ BFr   c            
      ~   t        j                  d       dD ]  } dD ]  }| t        _        d| dz
  z  }d| dz  dz
  z  }t	        d      D ]^  }t        j
                  | |      }t        j
                  | |      }t        ||      |k(  sJ t        t        ||            |k(  sJ t        t        t        |      |            |k(  sJ t        |      t        |      z   ||z   k(  sJ t        |      t        |      z
  ||z
  k(  sJ t        |       | k(  sJ t        j
                  | |      }t        j
                  | |      }t        |      t        |      z  ||z  k(  sJ t        t        |      t        |      t        j                  |      t        ||z        k(  r_J    dt        _        y )Nr   )r   
      (   r>      i  )r8   ufr7   nrq   r   )roundingr'   )randomseedr+   r,   rD   randintr	   intstrmpf_mulfrom_intrZ   )rZ   rx   MM2rJ   r5   r6   s          r   test_exact_integer_arithmeticr      s   
KKN. ]1 	]HBFT!VAdAgaiB2Y ]NNA2q)NNA2q)1x0A5553q845:::3s1v9:a???1vA!a%///1vA!a%///Aw1"}$}NNB3+NNB3+1vA!A#---x{HQK(KxXYZ[X[}\\\]		]]$ BFr   c                  @    t        t        d      t              dk(  sJ y )Nr   )to_intr   round_nearestr   r   r   test_odd_int_bugr      s    (1+}-222r   c                      dt         _        t        t        d      dz        dd dd d k(  sJ t        t              dd dd d k(  sJ d	t         _        y )
Ni  r   r   rB   
9518488472	   
2164201989r'   r+   r,   r}   r	   pir   r   r   test_str_1000_digitsr      sX    BFs1vs{C#|BQ'7777r73r?l2A....BFr   c                      dt         _        t        t        d      dz        dd dd d k(  sJ t        t              dd dd d k(  sJ d	t         _        y )
Ni'  r   r   r   rB   
5873258351r   
5256375678r'   r   r   r   r   test_str_10000_digitsr      sX    BFs1vs{C#|BQ'7777r73r?l2A....BFr   c                      d } g }g }t        | |j                  |j                        } |d      dk(  sJ  |d      dk(  sJ |d   di fk(  sJ |d   dk(  sJ y )Nc                     | dz  S )Nr   r   )rh   s    r   <lambda>ztest_monitor.<locals>.<lambda>   s
    !Q$ r   r   r   r#      r   )r   )monitorappend)rv   r5   r6   gs       r   test_monitorr      sm    A
A
A188QXX&AQ4199Q42::Q4D":Q4199r   c                     t        t        d            dt         fk(  sJ t        t        d            dt         f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t         fk(  sJ t        t        d            dk(  sJ t        t        d            dk(  sJ y )Ng)r   r   gGz)r   g5^I)r   ig9m4 )r   ig333333gQgˡEg):y      ?y      {Gz?y?yGz{Gz?y5^IMbP?r   g{Gz?)r   r   z1e-100)r   i)nint_distancer	   rF   r
   r   r   r   test_nint_distancer      s   R!b3$Z///R!b3$Z///T#x///U$000V%111W&)333T#x///U$000V%111W&)333W&(222X'8333Y(H444[)*h666]+,888Q QI---T#w...X'9444r   c                  	   dt         _        t        dd      D ]  } t        |       | k(  sJ t        | dz         | k(  sJ t	        |       | k(  sJ t	        | dz         | dz   k(  sJ t        |       | k(  sJ | dz  dk(  rt        | dz         | dz   k(  ryJ t        | dz         | k(  rJ  t        t              t        k(  sJ t        t              t        k(  sJ t        t        t                    sJ t	        t              t        k(  sJ t	        t              t        k(  sJ t        t	        t                    sJ t        t              t        k(  sJ t        t              t        k(  sJ t        t        t                    sJ t        d      dk(  sJ t        d	      dk(  sJ t        d
      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t	        d      dk(  sJ t	        d	      dk(  sJ t	        d
      dk(  sJ t	        d      dk(  sJ t	        d      dk(  sJ t	        d      dk(  sJ t	        d      dk(  sJ t	        d      dk(  sJ t	        d      dk(  sJ t	        d      dk(  sJ t	        d      dk(  sJ t	        d      dk(  sJ t        d      dk(  sJ t        d	      dk(  sJ t        d
      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t	        d      dk(  sJ t        d      dk(  sJ t        dd      D ]  } t        |       dk(  rJ  t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d       d!k(  sJ t        d"      d!k(  sJ t        d#      d!k(  sJ t        d$      dk(  sJ t        d%      }t        |      |k(  sJ t        |       dk(  sJ t        d&      }t        | d'      t        d|d()      k(  sJ t        d*      d+k(  sJ y ),Nr'   r   rq   r   r"   r   g?r   g?grB   gg  _Br)   g33 _Bg  _ld(	 g33 _g0.++g0.+g}Ô%ITg}Ô%Il   d(	 r*   y	@ffffff@      @      @y      @      @y      @      @g      ?g      ?g      @g      пg      ?g      g      1e100000000000000z1e-100000000000000z1e-400rY   Tr[   y      
@      @y      ?      ?)r+   r,   rD   floorceilnintrF   ninfisnannanfracr	   ra   )rw   ru   s     r   test_floor_ceil_nint_fracr   
  s#   BF3r] 
$Qx1}}QsU|q   Aw!||AcE{ac!!!Aw!||q5A:#;!A#%%%#;!###
$ :;$s9:c9:c:??:??;";";...;... N222 N222=A>R<5   =F"""9>>9>>:??:??-///-///<///<///<1=A;%<6!!!9>>9>>:??:+----///<///>111<1=A;%<6!!!?d""">T!!!>T!!!3r] Aw!||:::;$;$;$#$))) !A7a<<8q==HAtAq5555
z)))r   c                     ddl m}  t        t              dk(  sJ t        d      dk(  sJ t        t	        d            dk(  sJ t        t
              dk(  sJ t        t        dt                    dk(  sJ t        t        dt                    dk(  sJ t        t        t        t                    dk(  sJ t        t        dd            dk(  sJ t        t        t        t
                    dk(  sJ t        t        t
        t
                    dk(  sJ t         | d            dk(  sJ t         | d            dk(  sJ t        t
              dk(  sJ t        t
               dk(  sJ t        d      dk(  sJ t        t              dk(  sJ t        d	      dk(  sJ t        t        t
                    dk(  sJ t        t        dt
                    dk(  sJ t        t        t
        d            dk(  sJ t        t        t
        t
                    dk(  sJ t        t        t        t
                    dk(  sJ t        t        t
        t                    dk(  sJ t        t        t        t                    dk(  sJ t         | d            dk(  sJ t         | d            dk(  sJ t        d      dk(  sJ t        d
      dk(  sJ t        t	        d
            dk(  sJ t        d      dk(  sJ t        t	        d            dk(  sJ t        d      dk(  sJ t        t
              dk(  sJ t        t
               dk(  sJ t        t              dk(  sJ t        t        t
                    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 t        t        dt                    dk(  sJ t        t        dt
                    dk(  sJ t        t        dt                    dk(  sJ t        t        dt
                    dk(  sJ t        t        dt
                     dk(  sJ t        t        t        d            dk(  sJ t        t        t
        d            dk(  sJ t        t        t        d            dk(  sJ t        t        t
        d            dk(  sJ t        t        t
        t                    dk(  sJ t        t        t        t
                    dk(  sJ t        t        t        t                    dk(  sJ t        t        t
        t
                    dk(  sJ t         | d            dk(  sJ t         | d            dk(  sJ t        d      dk(  sJ 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        d      dk(  sJ t        t              dk(  sJ t        t
              dk(  sJ t        t
               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t
                    dk(  sJ t        t        t
                    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      dk(  sJ t        t        dd      d      dk(  sJ t        t        dd      d      dk(  sJ t        d	      dk(  sJ t        d	d      dk(  sJ t        d      dk(  sJ t         | d            dk(  sJ t         | d            dk(  sJ t         | d            dk(  sJ t         | d            dk(  sJ t         | d            dk(  sJ t         | d            dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  t        j                  dd            dk(  sJ t        j                  t        j                  dd            dk(  sJ t        j                  t        j                  dd            dk(  sJ t        j                  t        j                  dd            dk(  sJ t        j                  t        j                  dd            dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ y )Nr   r@   Tr   Fr   rC   )r   r"   r   g      @g        r   g	@)gaussianr   )r   r   )r   r   r2   )r"   r"   )rB   r"   r"   rB   gg      y                y              y        y      𿚙?y        ?)rG   rA   r   r   r	   rF   r
   isinfisnormalfloatisintlongr+   isnpintr@   s    r   test_isnan_etcr   W  s	   #:8uQ=E!!!:Qs$$$Qs$$$S$&&&Qq?e###S$&&&S%'''U%%%U%%%:#;$8u:;%S?d"""Qs$$$S$$$S$&&&S$&&&S$&&&S%'''U%%%U%%%A;$C=D   CH%%%A;%CFu$$$C=E!!!C=E!!!SD>U"""C=E!!!E#J5(((C!H&&&C!H%%%C!H%%%C!H%%%C#J5(((C#J5(((C#J5(((C#J5(((C3$K E)))CAJ5(((CAJ5(((CAJ5(((CAJ5(((CCL!U***CCL!U***CCL!U***CCL!U***CJ4'''CJ5(((8t8ta>T!!!a>T!!!Q=D   Q=D   R>T!!!S?e###:::#;%Q=D   Q=D   S?e###Qs%%%S?e###Qq?e###Qq?e###Qq4(D000Qq4(D000Qq4(D000;%%---;$U%%%U%%%U$$$U$$$U$$$V%%%::a=D   ::a=E!!!::b>T!!!::du$$$::dt###::bffQqk"e+++::bffRl#u,,,::bffRl#t+++::bffQqk"d***::bffQqk"e+++::dt###::e$$$::g%'''::g%'''::f&&&r   c                      t        t              t        d      k(  sJ t        t              t        d      k(  sJ t        t              j                  t        d      j                  k(  sJ y )NrF   z-infr   )r	   finffninffnan_mpf_r   r   r   test_issue_438r     sN    t9E
"""u:V$$$t9??c%j.....r   )mpmathmpmath.libmpry   rH   r   	NameErrorr|   r   r   r   r   r   r    r%   r-   r0   r9   rK   rT   rV   ro   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s        
D$$$"%-3J<,4D
8.35(K*Zf'R/o  Ds   A   A*)A*