
    oVh#n                     n   d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
mZmZmZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZmZ d dlm Z m!Z!m"Z"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z) d dl*m+Z+ d dl,m-Z- d dl.m/Z/ d dl0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z; d dl<m=Z= d dl>m?Z?m@Z@mAZA d dlBmCZC d dlDmEZEmFZF d dlGmHZHmIZI d dl0mJZJmKZKmLZL d dlMmNZOmPZQ d dlRmSZSmTZT d dlUmVZV d d lWZWd d!lXmYZYmZZZ  e=d"      Z[d# Z\d$ Z]d% Z^d& Z_d' Z`eCd(        Zad) Zbd* Zcd+ Zdd, Zed- Zfd. Zge@d/        Zhd0 Zid1 Zjd2 Zkd3 Zld4 Zmd5 Znd6 Zod7 Zpd8 Zqd9 Zrd: Zsd; Ztd< Zud= Zvd> Zwd? Zxd@ ZydA ZzdB Z{dC Z|dD Z}dE Z~dF ZdG ZdH ZdI ZdJ ZdK ZdL ZdM ZdN Ze@dO        ZdP ZdQ ZdR ZdS ZdT ZdU ZdV ZdW ZdX ZdY ZdZ Zy )[    )Add)Tuple)FunctionLambda)Mul)FloatIIntegerRationalpioo)PowSSymbol)Abs)exp)sqrt)cossin)falseOrtrueXor)Matrix)null)Poly)srepr)Range)Intervalxy)sympify_sympifySympifyErrorkernSCantSympify	converter)
_sympifyit)import_module)raisesXFAILskip)conserve_mpmath_dps)PointLine)	factorial
factorial2)_clash_clash1_clash2)gmpyflint)	FiniteSetEmptySet)ImmutableDenseNDimArrayN)defaultdictOrderedDictnumpyc                      t        d      } | t        t              k(  sJ t        |       t        t        t                    k(  sJ t	        t        |             t	        t        t        t                          k(  sJ y )Nzexp(x))r%   r   r#   typestr)vs    M/home/dcms/DCMS/lib/python3.12/site-packages/sympy/core/tests/test_sympify.pytest_issue_3538rE   )   sY    AA;;7d3q6l"""tAw<3tCF|,,,,    c                  0   t        d      t        d      k(  sJ t        d      t        d      k(  sJ t        d      t        d      k(  sJ t        d      dk(  sJ t        d      t        j                   k(  sJ 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d      k(  sJ t        d      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d      k(  sJ t        dd      dt	        dd      z   t	        dd      z   k(  sJ t        dd      t	        dd       k(  sJ t        d!d      t	        d d      k(  sJ t        d"d      t	        d#d$      k(  sJ t        d%d      t	        d#d$      k(  sJ t        d&d      t	        d'd(      k(  sJ t        d)d      t	        d*d      t	        dd+      z   k(  sJ t        d,d      t	        d-d.      k(  sJ t        d/d      d0k(  sJ t        d1d      t	        d-d2      k(  sJ t        d3d      t	        d4d2      k(  sJ t        d5d      t	        d6d$      k(  sJ t        d7d      t	        dd      t
        z   k(  sJ t        d8      t	        d9d:      k(  sJ t        d;      t	        d<d=      k(  sJ t        d>d      t	        d?d@      k(  sJ y )ANr#   z   xz   x   z--.5      ?z-1/2z-+--.5g      z-.[3]   z.[3]   z+.[3]z+0.[3]*10**-2i,  z.[052631578947368421]   z.0[526315789473684210]z.034[56]i  i\  z	1.22[345]Trational   d   iY  i< z2/2.6
      z2.6/2z2.6e2/17i     z	2.6e+2/17z	2.6e-2/17   ihB  z2.1+3/4      z2.234456iC iH z2.234456e23l     .Yu z2.234456e-23l      (rm\x
 z-2.234456e-23iz12345678901/17l   5? z1/.3 + xz222222222222/11111111111l   z l   ,
 z1/.2[123456789012]l   Un86l   gyuA z.1234567890123456l   *)-Fl    ~o8 )r%   r   r   Halfr   r#    rF   rD   test_sympify1rY   0   sC   3<6#;&&&6?fSk)))9,,,6?c!!!6?qvvg%%%8$$$7xA...6?hq!n,,,7x1~---?#x3'7777*+x2>>>+,B???:(4"7777;.	HRe 445 5 57T*hr2.>>>>7T*hr2.>>>>:-#r1BBBB;.(32CCCC;.(2u2EEEE9t,R8Aq>)* * *:-&&1IIII=404LLLL>D1678 8 8?T2789 9 9#d3b!" " ":-"a11DDDD-.{+, , , '(H\;,OOOO&612 2 2rF   c                      	 dd l } t        | j                  dd            }|t        dd      k(  rt	        |      t        u sJ y # t
        $ r Y y w xY w)Nr   e      )	fractionsr%   Fractionr   rA   ImportError)r]   values     rD   test_sympify_Fractionra   \   s[    G 	**345c**tE{h/FFF/F	  s   A 	AAc                  
   t         }dd l} t        | j                  d            }|t	        d      k(  rt        |      t        u sJ t        | j                  dd            }|t        dd      k(  rt        |      t        u sJ y y Nr   iAB r[   r\   )_gmpygmpy2r%   mpzr
   rA   mpqr   )re   r`   s     rD   test_sympify_gmpyrh   f   sy    		'*+((T%[G-CCC		#s+,c**tE{h/FFF/F rF   c                  
   t         }dd l} t        | j                  d            }|t	        d      k(  rt        |      t        u sJ t        | j                  dd            }|t        dd      k(  rt        |      t        u sJ y y rc   )_flintr9   r%   fmpzr
   rA   fmpqr   )r9   r`   s     rD   test_sympify_flintrm   q   sy    

7+,((T%[G-CCC

3,-c**tE{h/FFF/F rF   c                  ~   t        t        j                  d            } | t        d      k(  rt	        |       t        u sJ dt        j
                  _        t        t        j                        j                  t        d      t        d            dk(  sJ t        t        j                        j                  t        d      t        d            dk(  sJ dt        j
                  _        t        t        j                        j                  t        d	      t        d
            dk(  sJ t        t        j                        j                  t        d	      t        d            dk(  sJ dt        j
                  _        t        t        j                  d            t        d      t        d      t        z  z   k(  sJ y )N      ?   z3.14159265359z1e-12Tz1e-13F   z3.14159z1e-5z1e-6         ?       @       @)r%   mpmathmpfr   rA   mpdpsr   
epsilon_eqmpcr	   )r`   s    rD   test_sympify_mpmathr{   |   sc   FJJsO$EE#J4;%#777FIIM		:eO4eGnEN N N		:eO4eGnEO O O FIIM		:eI.f>$G G G		:eI.f>%H H H FIIM6::j)*eCj5:a<.GGGGrF   c                       G d d      }  |        }t        |      t        dz  k(  sJ t        |      t        dz  k(  sJ |t        dz  k(  sJ y )Nc                       e Zd Zd Zy)test_sympify2.<locals>.Ac                     t        d      dz  S )Nr#   rJ   r   selfs    rD   _sympy_z test_sympify2.<locals>.A._sympy_   s    #;>!rF   N__name__
__module____qualname__r   rX   rF   rD   Ar~      s    	"rF   r   rJ   r&   r#   r%   r   as     rD   test_sympify2r      sQ    " " 	
AA;!Q$1:A199rF   c                      t        d      t        dz  k(  sJ t        d      t        dz  k(  sJ t        d      t        d      dz  k(  sJ t        t        d        t        t        d        y )	Nx**3rJ   zx^31/2rK      c                      t        d      S )Nr   r&   rX   rF   rD   <lambda>ztest_sympify3.<locals>.<lambda>   s    &!1 rF   c                      t        d      S )Nr   r   rX   rF   rD   r   ztest_sympify3.<locals>.<lambda>   s
    % rF   )r%   r#   r
   r-   r'   rX   rF   rD   test_sympify3r      s^    6?ad"""5>QT!!!5>WQZ\)))
<12
<01rF   c                      t        t        d        t        t        d        t        t        d        t        t        d        y )Nc                      t        d      S )Nifr%   rX   rF   rD   r   z'test_sympify_keywords.<locals>.<lambda>   s
     rF   c                      t        d      S )Nforr   rX   rF   rD   r   z'test_sympify_keywords.<locals>.<lambda>   
     rF   c                      t        d      S )Nwhiler   rX   rF   rD   r   z'test_sympify_keywords.<locals>.<lambda>   s    !1 rF   c                      t        d      S )Nlambdar   rX   rF   rD   r   z'test_sympify_keywords.<locals>.<lambda>   s    !2 rF   r-   r'   rX   rF   rD   test_sympify_keywordsr      s.    
<./
</0
<12
<23rF   c                  D    t        d      dk7  sJ t        d      dk7  sJ y )Nz1e-64r   z1e-20000r   rX   rF   rD   test_sympify_floatr      s(    7q   :!###rF   c                  P    t        d      t        u sJ t        d      t        u sJ y )NTF)r%   r   r   rX   rF   rD   test_sympify_boolr      s&    4=D   5>U"""rF   c                     t        dd      t        dd      g} t        ddgd      | k(  sJ t        d	dd
      t        d	t        dik(  sJ t        ddddgg      t	        d      t	        d      t	        d      t	        d      ggk(  sJ y )NrJ   rQ   rK      .3.2TrM   r   r"   1234r   rV   )r   r%   r#   r$   r   anss    rD   test_sympify_iterablesr      s    Ar?HQN
+CD$<$/3666#$Aq!444CsCj)*qtQqTAaD!A$<.HHHHrF   c                  d    t        dd      t        dd      g} t        dd      t        |  k(  sJ y )NrJ   rQ   rK   r   )r   r   TrM   )r   r%   r   r   s    rD   test_issue_16772r      s3     Ar?HQN
+C<$/5#;>>>rF   c                  T      G d dt         t               t        t         fd       y )Nc                       e Zd Zy)test_issue_16859.<locals>.noNr   r   r   rX   rF   rD   nor          rF   r   c                  &    t          d            S )Ng333333?r   r   s   rD   r   z"test_issue_16859.<locals>.<lambda>   s    C!1 rF   )floatr)   r-   r'   r   s   @rD   test_issue_16859r      s    UK 
<12rF   c                       G d d      }  |        }t        |      dz  t        dz  k(  sJ t        |      dz  t        dz  k(  sJ |t        k(  sJ y )Nc                       e Zd Zd Zy)test_sympify4.<locals>.Ac                     t        d      S Nr#   r   r   s    rD   r   z test_sympify4.<locals>.A._sympy_   s    #;rF   Nr   rX   rF   rD   r   r      s    	rF   r   rJ   r   r   s     rD   test_sympify4r      sT      	
AA;>QT!!!1:q=AqD   6M6rF   c                      t        d      t        d      k(  sJ t        d      t        d      k(  sJ t        d      du sJ t        d      du sJ t        d      t        k(  sJ t        d      t        k(  sJ y )	NsomecoreTrueTFalseFr   r   )r%   r   r   r   rX   rF   rD   test_sympify_textr      sw    6?fVn,,,6?fVn,,,6?d"""7u$$$6?d"""5>S   rF   c                  |    t        d      dt        z
   t        dz   z  k(  sJ t        d      t        d       k(  sJ y )Nzfactor(x**2-1, x)rK   zsin(pi/2)*cos(pi))r%   r#   r
   rX   rF   rD   test_sympify_functionr      s?    &'QU8QU+;;;;&'GAJ;666rF   c                      t        t        dz  t        z   dz   t              } t        |       | u sJ t        |       | u sJ y )Nr   rK   )r   r#   r&   r%   )ps    rD   test_sympify_polyr      s<    QTAX\1AA;!1:??rF   c                     t        d      t        t              k(  sJ t        d      t        t        dz         k(  sJ t        d      t        dt        t        dz   z  z         k(  sJ t        d      dt        t        t        dz         z  z   dz  k(  sJ t        d      t        t        t              z  k(  sJ t        d      t	        t              k(  sJ t        d	      t	        t        dz         k(  sJ t        d
      t	        dt        t        dz   z  z         k(  sJ t        d      dt        t	        t        dz         z  z   dz  k(  sJ t        d      t        t	        t              z  k(  sJ t        d      t        t	        t                    k(  sJ t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        y )Nzx!z(x+1)!rK   z(1 + y*(x + 1))!z(1 + y*(x + 1)!)^2r   zy*x!zx!!z(x+1)!!z(1 + y*(x + 1))!!z(1 + y*(x + 1)!!)^2zy*x!!zfactorial2(x)!c                      t        d      S )Nz+!!r   rX   rF   rD   r   z(test_sympify_factorial.<locals>.<lambda>   r   rF   c                      t        d      S )Nz)!!r   rX   rF   rD   r   z(test_sympify_factorial.<locals>.<lambda>   r   rF   c                      t        d      S )N!r   rX   rF   rD   r   z(test_sympify_factorial.<locals>.<lambda>   s
     rF   c                      t        d      S )Nz(!)r   rX   rF   rD   r   z(test_sympify_factorial.<locals>.<lambda>  r   rF   c                      t        d      S )Nzx!!!r   rX   rF   rD   r   z(test_sympify_factorial.<locals>.<lambda>  s
     rF   )r%   r3   r#   r$   r4   r-   r'   rX   rF   rD   test_sympify_factorialr      s   4=IaL(((8	!a% 0000%&)A1q5	M*BBBB'(Q9QU3C1C-Ca,GGGG6?a	!n,,,5>Z]***9AE!2222&':a!QU)m+DDDD()a!Jq1u4E2E.E-IIII7qA...#$	*Q-(@@@@
</0
</0
<-.
</0
<01rF   c                  h    t        d      t        d      k(  sJ t        d      t        d      k(  sJ y )Na__a)r%   r   rX   rF   rD   test_issue_3595r     s.    4=F4L(((4=F4L(((rF   c                     t        d      } t        d      t        dd      k(  sJ t        d      t        | |       k(  sJ t        d      t        | d| z        k(  sJ t        d      t        | t        fd| z  t        z         k(  sJ y )	Nr#   	lambda: 1rX   rK   zlambda x: xzlambda x: 2*xr   zlambda x, y: 2*x+y)r   r%   r   r$   r#   s    rD   test_lambdar   
  s    sA;6"a=000=!VAq\111?#va1~555'(FAq61Q37,CCCCrF   c                      t        t        d        t        t        d        t        t        d        t        t              5  t        d       d d d        y # 1 sw Y   y xY w)Nc                      t        d      S )Nzlambda *args: argsr   rX   rF   rD   r   z$test_lambda_raises.<locals>.<lambda>  s    )=!> rF   c                      t        d      S )Nzlambda **kwargs: kwargs[0]r   rX   rF   rD   r   z$test_lambda_raises.<locals>.<lambda>  s    )E!F rF   c                      t        d      S )Nzlambda x = 1: xr   rX   rF   rD   r   z$test_lambda_raises.<locals>.<lambda>  s    ):!; rF   r   )r-   r'   r&   rX   rF   rD   test_lambda_raisesr     sH    
<>?
<FG
<;<		   s   AA!c                  b     t        t        d         G d d       t        t         fd       y )Nc                      t        d      S )Nzfx)r   rX   rF   rD   r   z%test_sympify_raises.<locals>.<lambda>  r   rF   c                       e Zd Zd Zy)test_sympify_raises.<locals>.Ac                      yr   rX   r   s    rD   __str__z&test_sympify_raises.<locals>.A.__str__      rF   N)r   r   r   r   rX   rF   rD   r   r         	rF   r   c                  $    t                       S Nr   r   s   rD   r   z%test_sympify_raises.<locals>.<lambda>!  s     rF   r   r   s   @rD   test_sympify_raisesr     s%    
</0  <-.rF   c                     t        d      } t        d      t        |       | u sJ t        d      t        d      k(  sJ t        d      t	        d      k(  sJ t        d      dt
        dz  z   k(  sJ t              u sJ t        t        fd        G d	 d
      } |       }t        |      t        d      k(  sJ t        t        d        t        t        d        y )Nr#   frK   rH   0.5y      ?      ?ro   c                      t               S r   r   )r   s   rD   r   ztest__sympify.<locals>.<lambda>2  s    ! rF   c                       e Zd Zd Zy)test__sympify.<locals>.Ac                     t        d      S Nr   r
   r   s    rD   r   z test__sympify.<locals>.A._sympy_5      1:rF   Nr   rX   rF   rD   r   r   4      	rF   r   r   c                      t        d      S Nr   r   rX   rF   rD   r   ztest__sympify.<locals>.<lambda><  s
    # rF   c                      t        g d      S )NrK   r   rJ   r   rX   rF   rD   r   ztest__sympify.<locals>.<lambda>=  s    )!4 rF   )	r   r   r&   r
   r   r	   r%   r-   r'   )r#   r   r   r   s      @rD   test__sympifyr   $  s    sAA A;!A;'!*$$$C=E%L(((FsQsU{***
 1:??
<,-  	
AA;'!*$$$ <./
<45rF   c                     t        d      t        d      } t        dt              d        } |d      dz   k(  sJ  |d      t        d      z   k(  sJ  ||       | z   k(  sJ  |d      t        k(  sJ t        d      d	         d      dz   k(  sJ  d      t        d      z   k(  sJ  |       | z   k(  sJ t	        t
        fd
       y )Nr#   r$   bc                     | |z   S r   rX   r   r   s     rD   addztest_sympifyit.<locals>.addD      1urF   rK   rH   r   r   c                     | |z   S r   rX   r  s     rD   
add_raisesz"test_sympifyit.<locals>.add_raisesN  r  rF   c                        d      S r   rX   )r  r#   s   rD   r   z test_sympifyit.<locals>.<lambda>V  s    As!3 rF   )r   r+   NotImplementedr   r-   r'   )r$   r  r  r#   s     @@rD   test_sympifyitr	  @  s   sAsA^$ % q!9Aq#;!eEl****q!9Aq#;.(((_  aq1u$$$aU5\!1111aq1u$$$
<34rF   c                  $    G d d      }  G d d      } G d d      } G d d      } G d	 d
      } G d d      } |       } |       } |       } |        }	 |       }
 |       }t        |      dk(  sJ t        t        |      t              sJ t        |      dk(  sJ t        t        |      t              sJ t        |      dk(  sJ t        t        |      t              sJ t	        t        |	      dz
        dk  sJ t	        t        |
      dz
        dk  sJ t	        t        |      dz
        dk  sJ t        |      dk(  sJ t        t        |      t              sJ t        |      dk(  sJ t        t        |      t              sJ t        |      dk(  sJ t        t        |      t              sJ t	        t        |	      dz
        dk  sJ t	        t        |
      dz
        dk  sJ t	        t        |      dz
        dk  sJ y )Nc                       e Zd Zd Zy)test_int_float.<locals>.F1_1c                      yN皙?rX   r   s    rD   	__float__z&test_int_float.<locals>.F1_1.__float__[  r   rF   N)r   r   r   r  rX   rF   rD   F1_1r  Z  r   rF   r  c                       e Zd ZdZd Zd Zy)test_int_float.<locals>.F1_1bzX
        This class is still a float, even though it also implements __int__().
        c                      yr  rX   r   s    rD   r  z'test_int_float.<locals>.F1_1b.__float__b  r   rF   c                      yNrK   rX   r   s    rD   __int__z%test_int_float.<locals>.F1_1b.__int__e      rF   Nr   r   r   __doc__r  r  rX   rF   rD   F1_1br  ^  s    			rF   r  c                   "    e Zd ZdZd Zd Zd Zy)test_int_float.<locals>.F1_1czN
        This class is still a float, because it implements _sympy_()
        c                      yr  rX   r   s    rD   r  z'test_int_float.<locals>.F1_1c.__float__l  r   rF   c                      yr  rX   r   s    rD   r  z%test_int_float.<locals>.F1_1c.__int__o  r  rF   c                     t        d      S r  )r   r   s    rD   r   z%test_int_float.<locals>.F1_1c._sympy_r  s    :rF   Nr   r   r   r  r  r  r   rX   rF   rD   F1_1cr  h  s    				rF   r"  c                       e Zd Zd Zy)test_int_float.<locals>.I5c                      yr   rX   r   s    rD   r  z"test_int_float.<locals>.I5.__int__v  r  rF   N)r   r   r   r  rX   rF   rD   I5r$  u  s    	rF   r&  c                       e Zd ZdZd Zd Zy)test_int_float.<locals>.I5ba  
        This class implements both __int__() and __float__(), so it will be
        treated as Float in SymPy. One could change this behavior, by using
        float(a) == int(a), but deciding that integer-valued floats represent
        exact numbers is arbitrary and often not correct, so we do not do it.
        If, in the future, we decide to do it anyway, the tests for I5b need to
        be changed.
        c                      yN      @rX   r   s    rD   r  z%test_int_float.<locals>.I5b.__float__  r   rF   c                      yr   rX   r   s    rD   r  z#test_int_float.<locals>.I5b.__int__  r  rF   Nr  rX   rF   rD   I5br(  y  s    			rF   r-  c                   "    e Zd ZdZd Zd Zd Zy)test_int_float.<locals>.I5cz
        This class implements both __int__() and __float__(), but also
        a _sympy_() method, so it will be Integer.
        c                      yr*  rX   r   s    rD   r  z%test_int_float.<locals>.I5c.__float__  r   rF   c                      yr   rX   r   s    rD   r  z#test_int_float.<locals>.I5c.__int__  r  rF   c                     t        d      S r   r   r   s    rD   r   z#test_int_float.<locals>.I5c._sympy_  r   rF   Nr!  rX   rF   rD   I5cr/    s    				rF   r3  r   r+  r  gh㈵>)r%   
isinstancer
   r   absr&   )r  r  r"  r&  r-  r3  i5i5bi5cf1_1f1_1bf1_1cs               rD   test_int_floatr<  Y  s          
B
%C
%C6DGEGE2;!gbk7+++3<3gclE***3<1gclG,,,wt}s"#d***wu~#$t+++wu~#$t+++B<1hrlG,,,C=ChsmU+++C=AhsmW---x~#$t+++x$%,,,x$%,,,rF   c                     t        ddd      t        t        ddd      t        ddd      d      t        dt        ddd      d      t        dt        dt        ddd      d      d      t        dt        ddd      d      t        ddd      t        dddt        ddd      t        dz  dz  d      t        t        dd	d
d      dd      t        dt        dt        dt        d	dd      d      d      d      t        dt        dt        ddd      d      d      d
} | j                         D ]  \  }}t        |d      |k(  rJ  y )Nr   rJ   FevaluaterI   r   rK   TrV   rq      )
z2 + 3z2**2 / 3z	2 + 3 * 5z	2 - 3 * 5z1 / 3zTrue | Falsez1 + 2 + 3 + 5*3 + integrate(x)z2 * 4 * 6 + 8z	2 - 8 / 4z2 - 2**2)r   r   r   r   r#   itemsr%   )casescaseresults      rD   test_evaluate_falserE    sB   QE*Aq513q"u3MX]^C1u5FCC1e$<uMX]^QArE2UC47*-aAs1a%7PRSUVRVWXRXch*iSAq591uMCC3q"u+EPU$Vafgrwx3r3q!e#<uMX]^E  7fte,6667rF   c                  V    t        d      } | t        d      k(  sJ | j                  sJ y )Nz
Integer(4)rV   )r%   r
   
is_Integerr   s    rD   test_issue_4133rI    s(    A
??<<<rF   c                  (   ddg} t        |       t        d      t        d      gk(  sJ t        t        |             t	        t        d      t        d            k(  sJ t        t        |             t        t        d      t        d            k(  sJ y )NrJ   rt   )r%   r
   r   tupler   setr:   rH  s    rD   test_issue_3982rM    su    	
CA1:'!*eCj111158gaj%* ====3q6?i
E#J????rF   c                      t        d      dz  t        d      dz  cxk(  rt         j                  k(  sJ  J dt        d      dz  z  t        d      t        z  k(  sJ y )NrK   r   )r   r%   rW   r   r	   rX   rF   rD   test_S_sympifyrP    sQ    Q46WQZ\+QVV+++++!A$q&>T!WQY&&&rF   c                      t        t        d            t        t        d            cxk(  rt        t        d            k(  sJ  J y )Ny      ?        ro   )r   r   r   rX   rF   rD   test_issue_4788rR    s5    8qvC%c
2CCCCCCrF   c                      t        d       J y r   r   rX   rF   rD   test_issue_4798_NonerT    s    T7??rF   c                  :    t        d      t        t        z   k(  sJ y )Nzx+
y)r%   r#   r$   rX   rF   rD   test_issue_3218rV    s    7q1u$$$rF   c                      t         st        d       t         j                  t        dd            } t        dd      }| |z  t	        | |z        f|| z  t	        || z        fk(  sJ y )Nnumpy not installed.rK   r   rJ   )r?   r/   arrayr   rA   r  s     rD   test_issue_19399rZ    s]    #$HQN#AAAE4A;AE4A;#7777rF   c                  l    t        d      } d| i}t        d      }|| k(  sJ t        d|      }|| k(  sJ y )NCr   r%   )r\  varsexp1exp2s       rD   test_issue_4988_builtinsra    sA    sA8D3<D1993D199rF   c                      t        t        dd            } | t        dd      k(  rt        | t              sJ t        t        | d            }|t        dd      k(  rt        |t              sJ y )Nr   rK   )rK   r   )r   rK   )r%   r1   r4  r2   )r   Ls     rD   test_geometryrd    s`    aAa
1e 444Q AVV$$At)<<<)<rF   c                     d} ddt          dt         z  z    t         t         dt         z  z
  dz  z  z  dt         t         dt         z  z
  z  z  z
  z  z
  dk(  sJ t        |       }|dk7  r|j                         dk(  sJ dj                  dd      } t        |       }|dk7  r|j                         dk(  sJ t        d      t	        dt        dt        d	dd
      d
            k(  sJ t        d      t        d      k(  sJ t        d      t        t                k(  sJ dt         t        z   z  t        z  }t        ddg      ||fgk(  sJ t        d      t         dt        t               dz  z  dt        t               z  t        t               z  z   z  dz  k(  sJ t        d      t        d      k(  sJ t        d      dt         dt        z
  z  dz  z
  k(  sJ t        d      ddt         z  dt        z
  z  z
  k(  sJ t        d      ddt         z  dt        z
  z  z
  k(  sJ t        d      }|dk7  r|j                         dk(  sJ t        d      dt         z  t         dz
  z  k(  sJ y )Nz7-1 - 2*(-(-x + 1/x)/(x*(x - 1/x)**2) - 1/(x*(x - 1/x)))rI   r   rK   r#   _kernzInterval(-1,-2 - 4*(-3))rO  rp   Fr>  zE**-(x)2*(x + y)*y)rg  z$-(2*sin(x)**2 + 2*sin(x)*cos(x))*y/2z(1 - x)/(1 - x*(1-y))z(1-x)/(1-(1-y)*x)z(1-2**-(4+1)*(1-y)*x)    z(1-2**(4+1)*(1-y)*x)z(1-2.*(1-y)*x)rt   zx - (x - 1)z(2*x)/(x-1))r#   r(   simplifyreplacer!   r   r   r   r   r$   r   r   expand)ssseones       rD   
test_kernSrp    s`   
CA aR!A#X;1qs7Q,/!QAaC[/ABBbHHH 
qB8+++AIIW	A	qB8+++,-BBBE :UKLM N M>VG_,,,sA2w&&&	1q5	!A-!123A4y@@@78	
Ac!faiK!CF(3q6/)*1,- - - ()U3F-GGGG()a!QU)B,.>???'(QAq1u-=>>>!"a"Q$A,&6666

C!8

)))1Q3!9,,,rF   c                  
   t        d      t        dd      dgt        dd      fgk(  sJ t        d      t        dd      dgt         j                  fgk(  sJ t        d      dgggk(  sJ t        d      t        dg      k(  sJ y )	Nz[[1/3,2], (2/5,)]rK   rJ   r   r   z[[2/6,2], (2/4,)]z[[[2*(1)]]]zMatrix([2*(1)]))r   r   rW   r   rX   rF   rD   test_issue_6540_6552rr    s     !x1~q&9HQN;L%MMMM !x1~q&9AFF9%EEEE]!w&&&61#;...rF   c                     t        t        dt                    dk(  sJ t        t        dt                    dk(  sJ i } t	        d|        t        t        d|             dk(  sJ t        t        dt
                    dk(  sJ t        t        dt              j                        d	k(  sJ t        t        d
        t        d t
        t        t        fD              sJ y )NzQ & ClocalszC & Qzpi(x)zfrom sympy.abc import Q, CzC&Qzpi(C, Q)zpi + xr   c                  $    t        dt              S )Nz
pi + pi(x)rt  )r   r7   rX   rF   rD   r   z!test_issue_6046.<locals>.<lambda>+  s    aW= rF   c              3   ^   K   | ]%  }t        |j                               t        hk(   ' y wr   )rL  valuesr   ).0is     rD   	<genexpr>z"test_issue_6046.<locals>.<genexpr>,  s%      #Qs188:4&( #s   +-)rB   r   r6   r7   execr5   lenfree_symbolsr-   	TypeErrorallrt  s    rD   test_issue_6046r  !  s    q)*g555q)*g555F	%v.q G+++qF+,
:::q'*778A===
9=> #3" # # # #rF   c                      t        t        j                  d            } t        |       }t	        t        |            dk  sJ y )N   g޷ET%)rB   r   evalfr%   r   r   )rl  r   s     rD   !test_issue_8821_highprec_from_strr  0  s3    BHHSMA
As1v;rF   c                     t         st        d       t         j                  g dg dg      } t        |       }|j                  dk(  sJ t         j                  |       D ]  \  \  }}}|||f   |k(  rJ  t         j                  dt        dt        dz  z  g      }t        |      }|j                  dk(  sJ |d	   |d	   cxk(  rdk(  sJ  J |d
   |d
   cxk(  r
t        k(  sJ  J |d   |d   cxk(  rdt        dz  z  k(  sJ  J t         j                  d	d      }|j                  ddd       t        |      }|d   j                  sJ |d   d	k(  sJ t         j                  g d      }	t         j                  t        t        d                  }
|
j                  ddd       t        |	      t        g d      k(  sJ t        |
      t        t        t        d            d      k(  sJ y )NrX  )rK   rJ   rI   )r   rK      )r   rJ   irJ   r   )rJ   r   rK      rV   )r   r   r   r   )r   rV   rJ   )r?   r/   rY  r   shapendenumerater#   r$   arangeresize
is_integerlistranger%   r<   )r   sAricivalBsBr\  sCa1a2s              rD   test_issue_10295r  6  s   #$Z  	!A	
1B88v**1- !R#"b&zS   ! 	RAadFO$A	
1B88tQ42a5BQ42a5AQ42a5"AadF"""""QAHHQqO	
1Bg;!!!!g;!	Y	B	T%)_	%BIIaA2;1)<<<<2;1$uRy/9MMMMrF   c                      t        t        d            t        d      k(  sJ t        t        d            t        d      k(  sJ y )NrQ   )r%   r  r    r&   rX   rF   rD   
test_Ranger  U  s8    59r***E"I%)+++rF   c                      t        d      } t        | h      t        |       k(  sJ t        t                     t        k(  sJ y )Nn)r   r%   r:   rL  r;   )r  s    rD   test_sympify_setr  [  s7    sAA3<9Q<'''35>X%%%rF   c                  6	   t         st        d       t         } d }t        | j                  d            t	        d      u sJ 	  |t        | j                  d            t	        d            sJ  |t        | j                  d            t	        d            sJ 	  |t        | j                  d            t	        d            sJ  |t        | j                  d            t	        d            sJ  |t        | j                  d            t	        d            sJ  |t        | j                  d	            t	        d	            sJ  |t        | j                  d
            t	        d
            sJ  |t        | j                  d            t	        d            sJ  |t        | j                  d            t	        d            sJ  |t        | j                  d            t	        d            sJ  |t        | j!                  d            t	        d            sJ  |t        | j#                  d            t%        dd            sJ  |t        | j'                  d            t%        dd            sJ | j)                  | j+                  d            j,                  dz   } |t        | j+                  d            t%        d|            sJ  |t        | j/                  d            t	        ddt0        z  z               sJ  |t        | j3                  d            t	        ddt0        z  z               sJ | j)                  | j5                  d            j,                  dz   } |t        | j5                  d            t%        d|      t%        d|      t0        z  z         sJ t7        | d      r[| j)                  | j9                  d            j,                  dz   } |t        | j9                  d            t%        d|            sJ t7        | d      r\| j)                  | j;                  d            j,                  dz   } |t        | j;                  d            t%        d|            sJ y y # t        $ r Y w xY w)Nz'numpy not installed. Abort numpy tests.c                 >    | |k(  xr t        |       t        |      k(  S r   )rA   r"   s     rD   equalz!test_sympify_numpy.<locals>.equalf  s    Av,$q'T!W,,rF   rK   Tl   6G C	 iIiii-il6G C	 {   i90  gl?r  )	precisiong|ӭ?5   g6sӭ?rs   ro   rt   float96float128g
|ӭ?)r?   r/   r%   bool_r   int_intpOverflowErrorintcint8int16int32int64uint8uint16uint32uint64float32r   float64finfo
longdoublenmant	complex64r	   
complex128clongdoublehasattrr  r  )npr  ldpreclcprecf96precf128precs         rD   test_sympify_numpyr  a  s   67	B- 288A;1T7***BGG/0115H3IK 	K KBGG/0115H3IK 	K K
 ,-q}==='4111&)*AfI666+./;@@@-./3G1HJ J J#'30005)*AeH555:./:???		-./3F1GI I IH-.h"0MNNNO45o46 6 6
 XXbmmA&'--1F{34{f57 7 7 f-.#A+???v./3Q;@@@XXbnnQ'(..2F/0cV,uSF/KA/MMO O O r9((2::a=)//!3WRZZ45+9; 	; ; r:88BKKN+11A5WR[[89.H=? 	? ? M  s   AR 	RRc                  h    t        dd      t        dd      g} t        ddhd      t        |  k(  sJ y )	NrJ   rQ   rK   r   r   r   TrM   )r   r%   r:   r   s    rD   !test_sympify_rational_numbers_setr    s5    Ar?HQN
+CD$<$/9c?BBBrF   c                       G d d      }  G d d|       } G d d|       }t         |              t        d      k(  sJ t         |             t        d      k(  sJ t         |             t        d      k(  sJ y	)
z=Tests the resolution order for classes that implement _sympy_c                       e Zd Zd Zy)test_sympify_mro.<locals>.ac                     t        d      S r  r   r   s    rD   r   z#test_sympify_mro.<locals>.a._sympy_  r   rF   Nr   rX   rF   rD   r   r    r   rF   r   c                       e Zd Zd Zy)test_sympify_mro.<locals>.bc                     t        d      S Nr   r   r   s    rD   r   z#test_sympify_mro.<locals>.b._sympy_  r   rF   Nr   rX   rF   rD   r   r    r   rF   r   c                       e Zd Zy)test_sympify_mro.<locals>.cNr   rX   rF   rD   cr    r   rF   r  rK   r   N)r%   r
   )r   r   r  s      rD   test_sympify_mror    sn     A A  13<71:%%%13<71:%%%13<71:%%%rF   c                  6    G d d      }  G d d|       } G d d|       }d t         | <   d t         |<   t         |              t        d	      k(  sJ t         |             t        d
      k(  sJ t         |             t        d	      k(  sJ  G d dt              }t        t         v rt         t           }nd}	 |t         t        <   t        d	       |d	      k(  sJ 	 |t         t        = y|t         t        <   y# |t         t        = w |t         t        <   w xY w)z3Tests the resolution order for classes in converterc                       e Zd Zy)!test_sympify_converter.<locals>.aNr   rX   rF   rD   r   r    r   rF   r   c                       e Zd Zy)!test_sympify_converter.<locals>.bNr   rX   rF   rD   r   r    r   rF   r   c                       e Zd Zy)!test_sympify_converter.<locals>.cNr   rX   rF   rD   r  r    r   rF   r  c                     t        d      S r  r   r   s    rD   r   z(test_sympify_converter.<locals>.<lambda>  
    WQZ rF   c                     t        d      S r  r   r   s    rD   r   z(test_sympify_converter.<locals>.<lambda>  r  rF   rK   r   c                       e Zd Zy))test_sympify_converter.<locals>.MyIntegerNr   rX   rF   rD   	MyIntegerr    r   rF   r  N)r*   r%   r
   int)r   r   r  r  int_converters        rD   test_sympify_converterr    s     A A  (IaL'IaL13<71:%%%13<71:%%%13<71:%%%G  i!#+"	#qzYq\))) #*IcN  #*IcNs   ;#C; ;Dc                      t         st        d       t        t         j                  dg            } t	        | t
              sJ | d   dk(  sJ y )NrX  rK   r   )r?   r/   r%   rY  r4  r<   rH  s    rD   test_issue_13924r    sD    #$QC !Aa0111Q4199rF   c                  "   t         st        d       t        t         j                  d            } t	        |       t
        u sJ | t        d      k(  sJ  G d dt
              }t        t         j                  d      d|i      } t        | |      sJ t        t         j                  d            } | t        t        z  k(  sJ t        t         j                  d      d      } | t        t        t              k(  sJ t        t        d	        t        t         j                  d
            } t        | t              sJ | dk(  sJ t        t         j                  d
      d      } t        | t              sJ | t        dd      k(  sJ t        t         j                  d            } t        | t              sJ | dt        z  k(  sJ t        t         j                  d      d      } t        | t              sJ | t        t        t        d      k(  sJ y )NrX  r   c                       e Zd Zy)-test_numpy_sympify_args.<locals>.CustomSymbolNr   rX   rF   rD   CustomSymbolr    r   rF   r  r   zx^yF)convert_xorc                  B    t        t        j                  d      d      S )Nr#   Tstrict)r%   r?   str_rX   rF   rD   r   z)test_numpy_sympify_args.<locals>.<lambda>  s    C!F rF   z1.1r  TrM      rQ   zx + xr   r>  )r?   r/   r%   r  rA   r   r4  r#   r$   r   r-   r'   r   r   r   r   )r   r  s     rD   test_numpy_sympify_argsr    s   #$

3 A7fsv  	

3(L!9:Aa&&&

5!"A199

5!u5AAq	>>
<FG

5!"Aa8O8

5!D1Aa"""R    

7#$Aa!8O8

7#e4AaAq5))))rF   c                  V    t        d      } t        d      }t        d      | |z   k(  sJ y )Nr   r   za+
br]  r  s     rD   test_issue_5939r    s+    sAsA;1q5(((rF   c                     t        ddi      } t        j                  | vsJ t        d      | v sJ | d   t        j                  u sJ t        t        ddi            } t        j                  | vsJ t        d      | v sJ | d   t        j                  u sJ t        t        t        ddi            } t        j                  | vsJ t        d      | v sJ | d   t        j                  u sJ y )NrH   rK   )r%   r   rW   r   Oner>   r=   r  )ds    rD   test_issue_16759r  	  s    QA66??9>>R5AEE>>RG$%A66??9>>R5AEE>>C"a)*A66??9>>R5AEE>>rF   c                  j    t        d      } t        dd      t         | t              dd      k(  sJ y )Nr   za(x)*5Fr>  r   )r   r%   r   r#   rH  s    rD   test_issue_17811r    s-    A8e,AaD!e0LLLLrF   c                      t        t        d            t        k(  sJ t        t        d      z   t        t        z   k(  sJ t	        t        d            t        k(  sJ y )Ninf)r%   r   r   r#   r   rX   rF   rD   test_issue_8439r    sJ    5< B&&&uU|q2v%%%U5\?b   rF   c                  
   t         st        d       t         j                  dt         j                        t         j                  dt         j                        t         j                  dt         j                        } t         j	                  dt         j                        }t         j	                  dt         j                        }t         j	                  dt         j                        }t         j                  t        z   t         j                  dt              k(        sJ t         j                  t        z   t         j                  dt              k(        sJ t         j                  t        z   t         j                  dt              k(        sJ t         j                  t        z   t         j                  dt              k(        sJ | t         j                  d      t         j                  d      t         j                  d      fD ]X  }t        |z   t        k(  sJ |t        z   t        k(  sJ t        t        |z   t              sJ t        |t        z   t              rXJ  t         j                  t        |z   t         j                  dt        dz         k(        sJ t         j                  t        |z   t         j                  dt        dz         k(        sJ t         j                  |t        z   t         j                  dt        dz         k(        sJ t         j                  |t        z   t         j                  dt        dz         k(        sJ |t         j                  d      t         j                  d      t         j                  d      fD ]I  }t        |z   |t        z   k(  sJ t        t        |z   t              sJ t        |t        z   t              rIJ  t        t         j                  t              z   d	t        z  k(  sJ t        t         j                  t        g      z   t         j                  d	t        z  gt              k(  sJ t        t         j                  dg            t!        dgd      k(  sJ t        t         j                  dggg            t!        dgd
      k(  sJ t              t!        dgd      k(  sJ t              t!        g dd      k(  sJ t        |       t!        dgd      k(  sJ t        | d      dk(  sJ t#        t$        d        t#        t$        fd       t#        t$        fd       y )NrX  )rK   rK   )dtype)r   r   rX   r   ro   rK   r   )rK   rK   rK           )r  r  r  r  Tr  c                  D    t        t        j                  dg      d      S )NrK   Tr  )r%   r?   rY  rX   rF   rD   r   z"test_issue_14706.<locals>.<lambda>Y  s    aS)9$!G rF   c                      t         d      S NTr  r   )z1s   rD   r   z"test_issue_14706.<locals>.<lambda>Z      D!9 rF   c                      t         d      S r  r   )z2s   rD   r   z"test_issue_14706.<locals>.<lambda>[  r   rF   )r?   r/   zerosr  onesr  r#   fullr  r  r4  r   r   rY  objectr%   r<   r-   r'   )z3y1y2y3zy_r  r  s         @@rD   test_issue_14706r  #  s   #$	V5==	1B	V5==	1B	Ru}}	-B	F%--	0B	F%--	0B	Bemm	,B99QVuzz&!4455599QVuzz&!4455599R!Vuzz&!4455599R!Vuzz&!44555kk!nmmAooa " ) 1uzz1uzz!a%(((!a%((()  99QVuzz&!c'::;;;99QVuzz&!c'::;;;99R!Vuzz&!c'::;;;99R!Vuzz&!c'::;;;kk!nmmAooa " ' 2va!b&#&&&"q&#&&&' u{{1~Q&&&u{{A35;;!uF;#CCCC5;;s#$(?Q(GGGG5;;!w'(,CQC,SSSS2;13%@@@@2;12FOOOO2;13%<<<<2d#s***
<GH
<9:
<9:rF   c                  h   t        dd      } t        dd      }| j                  r&t        | j                        t        dt        z  dhk(  sJ |j                  r*t        |j                        dt        z  dt        z  ddhk(  sJ t        ddgd      | |gk(  sJ t        dd      } t        dd      }| j                  r!t        | j                        dt        z  dhk(  sJ |j                  r!t        |j                        d	t        z  d	hk(  sJ t        ddgd      | |gk(  sJ t        d      } t        d      }| j                  r!t        | j                        dt        z  dhk(  sJ |j                  r!t        |j                        d	t        z  d	hk(  sJ t        ddg      | |gk(  sJ y )
Nzx+3*x+2Fr>  z2*x+4*x+2+4rJ   r   rV   Trq   )r%   is_AddrL  argsr#   )urC   s     rD   test_issue_21536r  ^  s   	E*A.A88AFF1Q3{22288AFF!QqS!Q'7777I}->1a&HHH 		D)A-A88AFF!Qx///88AFF!Qx///I}-=!QGGG 		AA88AFF!Qx///88AFF!Qx///I}-.1a&888rF   c                     t         st        d       t        t         j                  t	        d                  t
        j                  k(  sJ t        t         j                  t	        d                  t
        j                  k(  sJ y )NrX  r  z-inf)r?   r/   r   r  r   r   InfinityNegativeInfinityrX   rF   rD   test_issue_27284r  w  sX    #$uU|,-;;;uV}-.!2D2DDDDrF   )sympy.core.addr   sympy.core.containersr   sympy.core.functionr   r   sympy.core.mulr   sympy.core.numbersr   r	   r
   r   r   r   sympy.core.powerr   sympy.core.singletonr   sympy.core.symbolr   $sympy.functions.elementary.complexesr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   sympy.logic.boolalgr   r   r   r   sympy.matrices.denser   sympy.parsing.sympy_parserr   sympy.polys.polytoolsr   sympy.printing.reprr   sympy.sets.fancysetsr    sympy.sets.setsr!   	sympy.abcr#   r$   sympy.core.sympifyr%   r&   r'   r(   r)   r*   sympy.core.decoratorsr+   sympy.externalr,   sympy.testing.pytestr-   r.   r/   sympy.utilities.decoratorr0   sympy.geometryr1   r2   (sympy.functions.combinatorial.factorialsr3   r4   r5   r6   r7   sympy.external.gmpyr8   rd   r9   rj   
sympy.setsr:   r;   #sympy.tensor.array.dense_ndim_arrayr<   ru   collectionsr=   r>   r?   rE   rY   ra   rh   rm   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	  r<  rE  rI  rM  rP  rR  rT  rV  rZ  ra  rd  rp  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rX   rF   rD   <module>r6     s    ' 2  D D   " $ 4 6 9 ? 6 6 ' + & % & $   , ( 4 4 9 & J . . > * G  0 	g-)2XGGG H H(	24$
#
I ? ?3	!7
2()
D/6852U-p7"@'
D%8=-@/# N>,&7?t C C
& +D$*N)M
!8;v92ErF   