
    MZdl                     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@mAZAmBZB d dlCmDZD d dlEmFZFmGZG d dlHmIZImJZJ d dl0mKZKmLZLmMZM d dlNmOZO d dlPmQZQmRZR d dlSmTZT d d lUZUd d!lVmWZWmXZX d d"lYmZZZ  e=d#      Z[d$ Z\d% Z]d& Z^d' Z_eDd(        Z`d) Zad* Zbd+ Zcd, Zdd- Zed. Zfe@d/        Zgd0 Zhd1 Zid2 Zjd3 Zkd4 Zld5 Zmd6 Znd7 Zod8 Zpd9 Zqd: Zrd; Zsd< Ztd= Zud> Zvd? Zwd@ ZxdA ZydB ZzdC Z{dD Z|dE Z}dF Z~dG ZdH ZdI ZdJ ZdK ZdL ZdM ZdN Ze@dO        ZdP ZdQ ZdR ZdS ZdT ZdU ZdV ZdW ZdX ZdY Zy )Z    )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warns_deprecated_sympy)conserve_mpmath_dps)PointLine)	factorial
factorial2)_clash_clash1_clash2)HAS_GMPY)	FiniteSetEmptySet)ImmutableDenseNDimArrayN)defaultdictOrderedDict)mpq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    ?/usr/lib/python3/dist-packages/sympy/core/tests/test_sympify.pytest_issue_3538rF   *   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#    rG   rE   test_sympify1rZ   1   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 2rG   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   rB   ImportError)r^   values     rE   test_sympify_Fractionrb   ]   s[    G 	**345c**tE{h/FFF/F	  s   A 	AAc                  8   t         rt         dk(  rdd l} nt         dk(  r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 )N   r   rL   iAB r\   r]   )	r9   gmpy2gmpyr%   mpzr
   rB   r?   r   )rf   ra   s     rE   test_sympify_gmpyrh   g   s    q= ])*((T%[G-CCCc*+c**tE{h/FFF/F rG   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 t        t        dd            t        j                  k(  sJ y )N      ?   z3.14159265359z1e-12Tz1e-13F   z3.14159z1e-5z1e-6         ?       @       @rL   rd   )r%   mpmathmpfr   rB   mpdpsr   
epsilon_eqmpcr	   r?   r   rX   )ra   s    rE   test_sympify_mpmathrv   u   s   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G3q!9'''rG   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#   rK   r   selfs    rE   _sympy_z test_sympify2.<locals>.A._sympy_   s    #;>!rG   N__name__
__module____qualname__r}   rY   rG   rE   Ary      s    	"rG   r   rK   r&   r#   r%   r   as     rE   test_sympify2r      sQ    " " 	
AA;!Q$1:A199rG   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**3rK   zx^31/2rL   rd   c                      t        d      S )Nr   r&   rY   rG   rE   <lambda>ztest_sympify3.<locals>.<lambda>   s    &!1 rG   c                      t        d      S )Nr   r   rY   rG   rE   r   ztest_sympify3.<locals>.<lambda>   s
    % rG   )r%   r#   r
   r-   r'   rY   rG   rE   test_sympify3r      s^    6?ad"""5>QT!!!5>WQZ\)))
<12
<01rG   c                      t        t        d        t        t        d        t        t        d        t        t        d        y )Nc                      t        d      S )Nifr%   rY   rG   rE   r   z'test_sympify_keywords.<locals>.<lambda>   s
     rG   c                      t        d      S )Nforr   rY   rG   rE   r   z'test_sympify_keywords.<locals>.<lambda>   
     rG   c                      t        d      S )Nwhiler   rY   rG   rE   r   z'test_sympify_keywords.<locals>.<lambda>   s    !1 rG   c                      t        d      S )Nlambdar   rY   rG   rE   r   z'test_sympify_keywords.<locals>.<lambda>   s    !2 rG   )r-   r'   rY   rG   rE   test_sympify_keywordsr      s.    
<./
</0
<12
<23rG   c                  D    t        d      dk7  sJ t        d      dk7  sJ y )Nz1e-64r   z1e-20000r   rY   rG   rE   test_sympify_floatr      s(    7q   :!###rG   c                  P    t        d      t        u sJ t        d      t        u sJ y )NTF)r%   r   r   rY   rG   rE   test_sympify_boolr      s&    4=D   5>U"""rG   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 )NrK   rR   rL      .3.2TrN   r   r"   1234rd   rW   )r   r%   r#   r$   r   anss    rE   test_sympyify_iterablesr      s    Ar?HQN
+CD$<$/3666#$Aq!444CsCj)*qtQqTAaD!A$<.HHHHrG   c                  d    t        dd      t        dd      g} t        dd      t        |  k(  sJ y )NrK   rR   rL   r   )r   r   TrN   )r   r%   r   r   s    rE   test_issue_16772r      s3     Ar?HQN
+C<$/5#;>>>rG   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   rY   rG   rE   nor          rG   r   c                  &    t          d            S )Ng333333?r   r   s   rE   r   z"test_issue_16859.<locals>.<lambda>   s    C!1 rG   )floatr)   r-   r'   r   s   @rE   test_issue_16859r      s    UK 
<12rG   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    rE   r}   z test_sympify4.<locals>.A._sympy_   s    #;rG   Nr~   rY   rG   rE   r   r      s    	rG   r   rK   r   r   s     rE   test_sympify4r      sT      	
AA;>QT!!!1:q=AqD   6M6rG   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   rY   rG   rE   test_sympify_textr      sw    6?fVn,,,6?fVn,,,6?d"""7u$$$6?d"""5>S   rG   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)rL   zsin(pi/2)*cos(pi))r%   r#   r
   rY   rG   rE   test_sympify_functionr      s?    &'QU8QU+;;;;&'GAJ;666rG   c                      t        t        dz  t        z   dz   t              } t        |       | u sJ t        |       | u sJ y )Nrd   rL   )r   r#   r&   r%   )ps    rE   test_sympify_polyr      s<    QTAX\1AA;!1:??rG   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)!rL   z(1 + y*(x + 1))!z(1 + y*(x + 1)!)^2rd   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   rY   rG   rE   r   z(test_sympify_factorial.<locals>.<lambda>   r   rG   c                      t        d      S )Nz)!!r   rY   rG   rE   r   z(test_sympify_factorial.<locals>.<lambda>   r   rG   c                      t        d      S )N!r   rY   rG   rE   r   z(test_sympify_factorial.<locals>.<lambda>   s
     rG   c                      t        d      S )Nz(!)r   rY   rG   rE   r   z(test_sympify_factorial.<locals>.<lambda>   r   rG   c                      t        d      S )Nzx!!!r   rY   rG   rE   r   z(test_sympify_factorial.<locals>.<lambda>   s
     rG   )r%   r4   r#   r$   r5   r-   r'   rY   rG   rE   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1rG   c                  h    t        d      t        d      k(  sJ t        d      t        d      k(  sJ y )Na__a)r%   r   rY   rG   rE   test_issue_3595r      s.    4=F4L(((4=F4L(((rG   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: 1rY   rL   zlambda x: xzlambda x: 2*xrd   zlambda x, y: 2*x+y)r   r%   r   r$   r#   s    rE   test_lambdar     s    sA;6"a=000=!VAq\111?#va1~555'(FAq61Q37,CCCCrG   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   rY   rG   rE   r   z$test_lambda_raises.<locals>.<lambda>  s    )=!> rG   c                      t        d      S )Nzlambda **kwargs: kwargs[0]r   rY   rG   rE   r   z$test_lambda_raises.<locals>.<lambda>  s    )E!F rG   c                      t        d      S )Nzlambda x = 1: xr   rY   rG   rE   r   z$test_lambda_raises.<locals>.<lambda>  s    ):!; rG   r   )r-   r'   r&   rY   rG   rE   test_lambda_raisesr     sH    
<>?
<FG
<;<		   s   AA!c                      t        t        d         G d d      } t               5  t         |              t	        d      k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nc                      t        d      S )Nzfx)r   rY   rG   rE   r   z%test_sympify_raises.<locals>.<lambda>  r   rG   c                       e Zd Zd Zy)test_sympify_raises.<locals>.Ac                      yr   rY   r{   s    rE   __str__z&test_sympify_raises.<locals>.A.__str__      rG   N)r   r   r   r   rY   rG   rE   r   r         	rG   r   r#   )r-   r'   r0   r%   r   )r   s    rE   test_sympify_raisesr     sL    
</0  
 	! +qs|vc{***+ + +s   AA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#   frL   rI   0.5y      ?      ?rj   c                      t               S Nr   )r   s   rE   r   ztest__sympify.<locals>.<lambda>.  s    ! rG   c                       e Zd Zd Zy)test__sympify.<locals>.Ac                     t        d      S Nr   r
   r{   s    rE   r}   z test__sympify.<locals>.A._sympy_1      1:rG   Nr~   rY   rG   rE   r   r   0      	rG   r   r   c                      t        d      S Nr   r   rY   rG   rE   r   ztest__sympify.<locals>.<lambda>8  s
    # rG   c                      t        g d      S )NrL   rd   rK   r   rY   rG   rE   r   ztest__sympify.<locals>.<lambda>9  s    )!4 rG   )	r   r   r&   r
   r   r	   r%   r-   r'   )r#   r   r   r   s      @rE   test__sympifyr      s    sAA A;!A;'!*$$$C=E%L(((FsQsU{***
 1:??
<,-  	
AA;'!*$$$ <./
<45rG   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   rY   r   r   s     rE   addztest_sympifyit.<locals>.add@      1urG   rL   rI   r   r   c                     | |z   S r   rY   r   s     rE   
add_raisesz"test_sympifyit.<locals>.add_raisesJ  r   rG   c                        d      S r   rY   )r   r#   s   rE   r   z test_sympifyit.<locals>.<lambda>R  s    As!3 rG   )r   r+   NotImplementedr   r-   r'   )r$   r   r   r#   s     @@rE   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4rG   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皙?rY   r{   s    rE   	__float__z&test_int_float.<locals>.F1_1.__float__W  r   rG   N)r   r   r   r  rY   rG   rE   F1_1r  V  r   rG   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  rY   r{   s    rE   r  z'test_int_float.<locals>.F1_1b.__float__^  r   rG   c                      yNrL   rY   r{   s    rE   __int__z%test_int_float.<locals>.F1_1b.__int__a      rG   Nr   r   r   __doc__r  r  rY   rG   rE   F1_1br
  Z  s    			rG   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  rY   r{   s    rE   r  z'test_int_float.<locals>.F1_1c.__float__h  r   rG   c                      yr  rY   r{   s    rE   r  z%test_int_float.<locals>.F1_1c.__int__k  r  rG   c                     t        d      S r  )r   r{   s    rE   r}   z%test_int_float.<locals>.F1_1c._sympy_n  s    :rG   Nr   r   r   r  r  r  r}   rY   rG   rE   F1_1cr  d  s    				rG   r  c                       e Zd Zd Zy)test_int_float.<locals>.I5c                      yr   rY   r{   s    rE   r  z"test_int_float.<locals>.I5.__int__r  r  rG   N)r   r   r   r  rY   rG   rE   I5r  q  s    	rG   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      @rY   r{   s    rE   r  z%test_int_float.<locals>.I5b.__float__~  r   rG   c                      yr   rY   r{   s    rE   r  z#test_int_float.<locals>.I5b.__int__  r  rG   Nr  rY   rG   rE   I5br  u  s    			rG   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!  rY   r{   s    rE   r  z%test_int_float.<locals>.I5c.__float__  r   rG   c                      yr   rY   r{   s    rE   r  z#test_int_float.<locals>.I5c.__int__  r  rG   c                     t        d      S r   r   r{   s    rE   r}   z#test_int_float.<locals>.I5c._sympy_  r   rG   Nr  rY   rG   rE   I5cr&    s    				rG   r*  r   r"  r  gh㈵>)r%   
isinstancer
   r   absr&   )r  r  r  r  r$  r*  i5i5bi5cf1_1f1_1bf1_1cs               rE   test_int_floatr3  U  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$%,,,rG   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 )Nrd   rK   FevaluaterJ   r   rL   TrW   rl      )
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      rE   test_evaluate_falser<    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7rG   c                  V    t        d      } | t        d      k(  sJ | j                  sJ y )Nz
Integer(4)rW   )r%   r
   
is_Integerr   s    rE   test_issue_4133r@    s(    A
??<<<rG   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 )NrK   ro   )r%   r
   r   tupler   setr:   r?  s    rE   test_issue_3982rD    su    	
CA1:'!*eCj111158gaj%* ====3q6?i
E#J????rG   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 )NrL   rd   )r   r%   rX   r   r	   rY   rG   rE   test_S_sympifyrG    sQ    Q46WQZ\+QVV+++++!A$q&>T!WQY&&&rG   c                      t        t        d            t        t        d            cxk(  rt        t        d            k(  sJ  J y )Ny      ?        rj   )r   r   r   rY   rG   rE   test_issue_4788rI    s5    8qvC%c
2CCCCCCrG   c                      t        d       J y r   r   rY   rG   rE   test_issue_4798_NonerK    s    T7??rG   c                  :    t        d      t        t        z   k(  sJ y )Nzx+
y)r%   r#   r$   rY   rG   rE   test_issue_3218rM    s    7q1u$$$rG   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.rL   rd   rK   )r@   r/   arrayr   rB   r   s     rE   test_issue_19399rQ    s]    #$HQN#AAAE4A;AE4A;#7777rG   c                  l    t        d      } d| i}t        d      }|| k(  sJ t        d|      }|| k(  sJ y )NCr   r%   )rS  varsexp1exp2s       rE   test_issue_4988_builtinsrX    sA    sA8D3<D1993D199rG   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   rL   )rL   r   )r   rL   )r%   r2   r+  r3   )r   Ls     rE   test_geometryr[    s`    aAa
1e 444Q AVV$$At)<<<)<rG   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)))rJ   rd   rL   r#   _kernzInterval(-1,-2 - 4*(-3))rF  rk   Fr5  zE**-(x)2*(x + y)*y)r^  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)ro   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       rE   
test_kernSrg    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,,,rG   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,)]rL   rK   rd   r   z[[2/6,2], (2/4,)]z[[[2*(1)]]]zMatrix([2*(1)]))r   r   rX   r   rY   rG   rE   test_issue_6540_6552ri    s     !x1~q&9HQN;L%MMMM !x1~q&9AFF9%EEEE]!w&&&61#;...rG   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 + xrd   c                  $    t        dt              S )Nz
pi + pi(x)rk  )r   r8   rY   rG   rE   r   z!test_issue_6046.<locals>.<lambda>'  s    aW= rG   c              3   ^   K   | ]%  }t        |j                               t        hk(   ' y wr   )rC  valuesr   ).0is     rE   	<genexpr>z"test_issue_6046.<locals>.<genexpr>(  s%      #Qs188:4&( #s   +-)rC   r   r7   r8   execr6   lenfree_symbolsr-   	TypeErrorallrk  s    rE   test_issue_6046rx    s    q)*g555q)*g555F	%v.q G+++qF+,
:::q'*778A===
9=> #3" # # # #rG   c                      t        t        j                  d            } t        |       }t	        t        |            dk  sJ y )N   g޷ET%)rC   r   evalfr%   r   r   )rc  r   s     rE   !test_issue_8821_highprec_from_strr|  ,  s3    BHHSMA
As1v;rG   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 )NrO  )rL   rK   rJ   )r   rL      )rd   rK   irK   rd   )rK   r   rL      rW   )r   r   r   r   )rd   rW   rK   )r@   r/   rP  r   shapendenumerater#   r$   arangeresize
is_integerlistranger%   r<   )r   sAricivalBsBrS  sCa1a2s              rE   test_issue_10295r  2  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MrG   c                      t        t        d            t        d      k(  sJ t        t        d            t        d      k(  sJ y )NrR   )r%   r  r    r&   rY   rG   rE   
test_Ranger  Q  s8    59r***E"I%)+++rG   c                      t        d      } t        | h      t        |       k(  sJ t        t                     t        k(  sJ y )Nn)r   r%   r:   rC  r;   )r  s    rE   test_sympify_setr  W  s7    sAA3<9Q<'''35>X%%%rG   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   )rB   r"   s     rE   equalz!test_sympify_numpy.<locals>.equalb  s    Av,$q'T!W,,rG   rL   Tl   6G C	 iIiii-il6G C	 {   i90  gl?r  )	precisiong|ӭ?5   g6sӭ?rn   rj   ro   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longcomplexhasattrr  r  )npr  ldpreclcprecf96precf128precs         rE   test_sympify_numpyr  ]  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 )	NrK   rR   rL   r   r   r   TrN   )r   r%   r:   r   s    rE   !test_sympify_rational_numbers_setr    s5    Ar?HQN
+CD$<$/9c?BBBrG   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    rE   r}   z#test_sympify_mro.<locals>.a._sympy_  r   rG   Nr~   rY   rG   rE   r   r    r   rG   r   c                       e Zd Zd Zy)test_sympify_mro.<locals>.bc                     t        d      S Nrd   r   r{   s    rE   r}   z#test_sympify_mro.<locals>.b._sympy_  r   rG   Nr~   rY   rG   rE   r   r    r   rG   r   c                       e Zd Zy)test_sympify_mro.<locals>.cNr   rY   rG   rE   cr    r   rG   r  rL   rd   N)r%   r
   )r   r   r  s      rE   test_sympify_mror    sn     A A  13<71:%%%13<71:%%%13<71:%%%rG   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   rY   rG   rE   r   r    r   rG   r   c                       e Zd Zy)!test_sympify_converter.<locals>.bNr   rY   rG   rE   r   r    r   rG   r   c                       e Zd Zy)!test_sympify_converter.<locals>.cNr   rY   rG   rE   r  r    r   rG   r  c                     t        d      S r  r   r   s    rE   r   z(test_sympify_converter.<locals>.<lambda>  
    WQZ rG   c                     t        d      S r  r   r   s    rE   r   z(test_sympify_converter.<locals>.<lambda>  r  rG   rL   rd   c                       e Zd Zy))test_sympify_converter.<locals>.MyIntegerNr   rY   rG   rE   	MyIntegerr    r   rG   r  N)r*   r%   r
   int)r   r   r  r  int_converters        rE   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 )NrO  rL   r   )r@   r/   r%   rP  r+  r<   r?  s    rE   test_issue_13924r    sD    #$QC !Aa0111Q4199rG   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 )NrO  r   c                       e Zd Zy)-test_numpy_sympify_args.<locals>.CustomSymbolNr   rY   rG   rE   CustomSymbolr    r   rG   r  r   zx^yF)convert_xorc                  B    t        t        j                  d      d      S )Nr#   Tstrict)r%   r@   str_rY   rG   rE   r   z)test_numpy_sympify_args.<locals>.<lambda>  s    C!F rG   z1.1r  TrN      rR   zx + xrd   r5  )r@   r/   r%   r  rB   r   r+  r#   r$   r   r-   r'   r   r   r   r   )r   r  s     rE   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))))rG   c                  V    t        d      } t        d      }t        d      | |z   k(  sJ y )Nr   r   za+
brT  r   s     rE   test_issue_5939r    s+    	Q	QK AE)))rG   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 )NrI   rL   )r%   r   rX   r   Oner>   r=   r  )ds    rE   test_issue_16759r    s    QA66??9>>R5AEE>>RG$%A66??9>>R5AEE>>C"a)*A66??9>>R5AEE>>rG   c                  j    t        d      } t        dd      t         | t              dd      k(  sJ y )Nr   za(x)*5Fr5  r   )r   r%   r   r#   r?  s    rE   test_issue_17811r    s-    A8e,AaD!e0LLLLrG   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   rY   rG   rE   test_issue_8439r    sJ    5< B&&&uU|q2v%%%U5\?b   rG   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 )NrO  )rL   rL   )dtype)rd   rd   rY   r   rj   rL   rd   )rL   rL   rL           )r  r  r  r  Tr  c                  D    t        t        j                  dg      d      S )NrL   Tr  )r%   r@   rP  rY   rG   rE   r   z"test_issue_14706.<locals>.<lambda>U  s    aS)9$!G rG   c                      t         d      S NTr  r   )z1s   rE   r   z"test_issue_14706.<locals>.<lambda>V      D!9 rG   c                      t         d      S r  r   )z2s   rE   r   z"test_issue_14706.<locals>.<lambda>W  r  rG   )r@   r/   zerosr  onesrw  r#   fullr  r  r+  r   r   rP  objectr%   r<   r-   r'   )z3y1y2y3zy_r  r  s         @@rE   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:rG   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+2Fr5  z2*x+4*x+2+4rK   rd   rW   Trl   )r%   is_AddrC  argsr#   )urD   s     rE   test_issue_21536r	  Z  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8rG   )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/   r0   sympy.utilities.decoratorr1   sympy.geometryr2   r3   (sympy.functions.combinatorial.factorialsr4   r5   r6   r7   r8   sympy.external.gmpyr9   
sympy.setsr:   r;   #sympy.tensor.array.dense_ndim_arrayr<   rp   collectionsr=   r>   mpmath.rationalr?   r@   rF   rZ   rb   rh   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r3  r<  r@  rD  rG  rI  rK  rM  rQ  rX  r[  rg  ri  rx  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  rY   rG   rE   <module>r*     s    ' 2  D D   " $ 4 6 9 ? 6 6 ' + & % & $   , ( L L 9 & J . . ( * G  0  	g-)2XGG ( (,	24$
#
I ? ?3	!7
2()
D+6852U-p7"@'
D%8=-@/# N>,&7?t C C
& +D$*N*M
!8;v9rG   