
    wgS4                     z    d dl mZmZmZmZmZ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 d dlmZ d Zd Zd Zy	)
    )sinFunctionsymbolsDummyLambdacos)parse_mathematicaMathematicaParser)sympify)nwxyz)raisesc                     i ddddddddd	d
ddddddddddddddddddddddddi d d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d;d=d>d?d@i dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdn} | D ]  }t        |      t        | |         k(  rJ  t        do      t        t              dpz  t	        t              dpz  z   k(  sJ t        dqt        r      \  }}}t        ds      j                  t        |||ft        |      t	        |      z               sJ t        dt      j                  t        |t        |dpz                    sJ t        du      t        t        t        dvz        k(  sJ t        dw      t        t        t        ft        dpz  t        dpz  z         k(  sJ y )xNz- 6xz-6*xzSin[x]^2z	sin(x)**2z2(x-1)z2*(x-1)z3y+8z3*y+8zArcSin[2x+9(4-x)^2]/xzasin(2*x+9*(4-x)**2)/xzx+yz355/113z2.718281828u   Cos(1/2 * π)u	   Cos(π/2)zSin[12]zsin(12)zExp[Log[4]]zexp(log(4))z
(x+1)(x+3)z(x+1)*(x+3)zCos[ArcCos[3.6]]zcos(acos(3.6))zCos[x]==Sin[y]zEq(cos(x), sin(y))z
2*Sin[x+y]z
2*sin(x+y)zSin[x]+Cos[y]zsin(x)+cos(y)zSin[Cos[x]]zsin(cos(x))z2*Sqrt[x+y]z2*sqrt(x+y)z+Sqrt[2]zsqrt(2)z-Sqrt[2]z-sqrt(2)z
-1/Sqrt[2]z
-1/sqrt(2)z-(1/Sqrt[3])z-(1/sqrt(3))z1/(2*Sqrt[5])z1/(2*sqrt(5))zMod[5,3]zMod(5,3)z	-Mod[5,3]z	-Mod(5,3)z(x+1)yz(x+1)*yzx(y+1)zx*(y+1)zSin[x]Cos[y]zsin(x)*cos(y)zSin[x]^2Cos[y]^2zsin(x)**2*cos(y)**2zCos[x]^2(1 - Cos[y]^2)zcos(x)**2*(1-cos(y)**2)x yzx*yzx  yz2 xz2*xzx 8zx*8z2 8z2*8z4.xz4.*xz4. 3z4.*3z4. 3.z4.*3.z1 2 3z1*2*3z( -  2 *  Sqrt[  2 3 *   ( 1   +  5 ) ]  z-2*sqrt(2*3*(1+5))zLog[2,4]zlog(4,2)zLog[Log[2,4],4]zlog(4,log(4,2))zExp[Sqrt[2]^2Log[2, 8]]zexp(sqrt(2)**2*log(8,2))zArcSin[Cos[0]]zasin(cos(0))zLog2[16]z	log(16,2)zMax[1,-2,3,-4]zMax(1,-2,3,-4)zMin[1,-2,3]zMin(1,-2,3)zExp[I Pi/2]zexp(I*pi/2)zArcTan[x,y]z
atan2(y,x)zPochhammer[x,y]zrf(x,y)zExpIntegralEi[x]zEi(x)zSi(x)zCi(x)z	airyai(x)zairyaiprime(5)z	airybi(x)zairybiprime(7)z li(4)z
primepi(7)zprime(5)z
isprime(5)zRational(2,19))zSinIntegral[x]zCosIntegral[x]z	AiryAi[x]zAiryAiPrime[5]z	AiryBi[x]zAiryBiPrime[7]zLogIntegral[4]z
PrimePi[7]zPrime[5]z	PrimeQ[5]zRational[2,19]zSin[#]^2 + Cos[#]^2 &[x]   zd1:4clszSin[#] + Cos[#3] &z
Sin[#^2] &zFunction[x, x^3]   zFunction[{x, y}, x^2 + y^2])
r	   r   r   r   r   r   r   dummy_eqr   r   )ded1d2d3s        i/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/sympy/parsing/tests/test_mathematica.pytest_mathematicar      s   ?	
?	
K?	
 	)?	
 		?	

 	 !9?	
 	u?	
 	9?	
 	}?	
 	?	
 	9?	
 	}?	
 	m?	
 	,?	
 	.?	
 	l?	
  	!?	
" 	}#?	
$ 	}%?	
& 	I'?	
( 	J)?	
* 	l+?	
, 	-?	
. 	/?	
0 	J1?	
2 	[3?	
4 	)5?	
6 	)7?	
8 	9?	
: 	1;?	
< 	!";=?	
> 	u??	
@ 	A?	
B 	uC?	
D 	uE?	
F 	uG?	
H 	vI?	
J 	K?	
L 	M?	
N 	O?	
P 	34HQ?	
R 	JS?	
T 	,U?	
V 	"#=W?	
X 	.Y?	
Z 	K[?	
\ 	*]?	
^ 	}_?	
` 	}a?	
b 	|c?	
d 	9e?	
f 	Gg?	
h "! * *""!*}?	
AB  5 #wqt}4445 78CFAIAPQ	<QQQQU+JBB12;;FBB<QTUWQX[^_a[bQb<cddd\*33F2s2q5z4JKKK/0F1adOCCC:;vq!faQRdUVXYUYk?ZZZZ    c            
      B    t               fd   d      dk(  sJ   d      dk(  sJ   d      dk(  sJ   d      dk(  sJ   d      dk(  sJ   d      dk(  sJ   d	      d	k(  sJ   d
      ddgk(  sJ   d      ddddggk(  sJ   d      ddg dgk(  sJ   d      dk(  sJ   d      dk(  sJ   d      g dk(  sJ   d      g dk(  sJ   d      g dk(  sJ   d      g dk(  sJ   d      g dk(  sJ   d      ddg dgk(  sJ   d       g d!k(  sJ   d"      ddg d#gk(  sJ   d$      ddg d%g d&gk(  sJ   d'      ddg d(gk(  sJ   d)      g d*k(  sJ   d+      g d,k(  sJ   d-      ddd.gd/gk(  sJ   d0      g d*k(  sJ   d1      g d2k(  sJ   d3      g d4k(  sJ   d5      d5k(  sJ   d6      g d7k(  sJ   d8      g d7k(  sJ   d9      g d:k(  sJ   d;      g d<k(  sJ   d=      g d>k(  sJ   d?      g d@k(  sJ   dA      g dBk(  sJ   dC      g dDk(  sJ   dE      g dFk(  sJ   dG      g dHk(  sJ   dI      g dJk(  sJ   dK      g dLk(  sJ   dM      g dLk(  sJ   dN      ddd.g dOgk(  sJ   dP      ddg d(d/gk(  sJ   dQ      ddd.g dRgk(  sJ   dS      ddg dd/gk(  sJ   dT      dg dd.g dRgk(  sJ   dU      ddg d(g dOdVgk(  sJ   dW      ddg d(g dOgk(  sJ   dX      ddg dg dRgk(  sJ   dY      ddZg d[gk(  sJ   d\      ddZg d[g d(gk(  sJ   d]      ddg d[d.gk(  sJ   d^      dg d_d/gk(  sJ   d`      ddg dadVgk(  sJ   db      ddg dagk(  sJ   dc      ddd.g ddgk(  sJ   de      g dfk(  sJ   dg      dhdg digk(  sJ   dj      dhdhdggk(  sJ   dk      g dlk(  sJ   dm      g dnk(  sJ   do      dd.d/ggk(  sJ   dp      dqdd.dqd/dVg drggk(  sJ   ds      dg dtgk(  sJ   du      dqdd.d/ggk(  sJ   dv      dqdg dwgk(  sJ   dx      dqdd.g dyggk(  sJ   dz      ddqd.d/dVgggk(  sJ   d{      dqdg dg d|g d}gk(  sJ   d~      dg dg d|g d}gk(  sJ   d      dhg dg d|g d}gk(  sJ   d      g dk(  sJ   d      g dk(  sJ   d      g dk(  sJ   d      ddg dgk(  sJ   d      dddd.g dggk(  sJ   d      g dk(  sJ   d      ddg dd/gdVgk(  sJ   d      dd.gk(  sJ   d      dd.gd/gk(  sJ   d      dd.gd/gdVgk(  sJ   d      g dk(  sJ   d      g dk(  sJ   d      g dk(  sJ   d      dg dgk(  sJ   d      dd.g ddgk(  sJ   d      dd.g ddVgk(  sJ   d      g dk(  sJ   d      ddd.g ddgk(  sJ   d      g dk(  sJ   d      g d_k(  sJ   d      ddd.d/dVdg dg dgk(  sJ   d      dhdg d4d/ddVdg dgg dggk(  sJ   d      dddggk(  sJ   d      ddddgggk(  sJ   d      dddggk(  sJ   d      dddggk(  sJ   d      dddd.dgggdd/dgggk(  sJ   d      dddd.dgggd/gk(  sJ   d      ddZgk(  sJ   d      ddgk(  sJ   d      ddgk(  sJ   d      ddZgk(  sJ   d      ddgk(  sJ   d      ddgk(  sJ   d      dddZggk(  sJ   d      ddddZgdggk(  sJ   d«      ddddZgddgggk(  sJ   dī      ddddZgddZgggk(  sJ   dū      dddZggdgk(  sJ   dƫ      ddddZgddgggddgk(  sJ   dǫ      dddddZgdgdddgdgggk(  sJ   dȫ      ddgk(  sJ   d˫      ddgk(  sJ   dͫ      dddddgdggk(  sJ   dΫ      ddgk(  sJ   dЫ      ddgk(  sJ   dѫ      ddgk(  sJ t        t         fdӄ       t        t         fdԄ       t        t         fdՄ       t        t         fdք       t        t         fdׄ       t        t         fd؄       t        t         fdل       y )Nc                 D    j                  j                  |             S N)_from_tokens_to_fullformlist_from_mathematica_to_tokensexprparsers    r   <lambda>z3test_parser_mathematica_tokenizer.<locals>.<lambda>Z   s    <<V=_=_`d=ef r    r   42z.2z+x-1z- 3-3u   αz+Sin[x]Sinz-Sin[x]Timeszx(a+1))Plusa1z(x)z(+x)z-a)r.   r+   r0   z(-x))r.   r+   r   z(x + y))r/   r   r   z3 + 4)r/   34za - 3)r/   r0   r,   za - br/   r0   )r.   r+   bz7 * 8)r.   78za + b*c)r.   r4   cza + b* c* d + 2 * e)r.   r4   r7   r   )r.   2r   za / b)Powerr4   r+   r   r.   r   r   z3 4)r.   r2   r3   za[b] cr4   r7   z(x) (y)z3 (a))r.   r2   r0   z(a) b)r.   r0   r4   z4.2z4 2)r.   r3   r8   z4  2z3 . 4)Dotr2   r3   z4. 2)r.   4.r8   zx.y)r;   r   r   z4.y)r.   r<   r   z4 .y)r;   r3   r   zx.4)r.   r   z.4zx0.3)r.   x0z.3zx. 4)r;   r   r3   za (* +b *) + c)r/   r0   r7   z a (* + b *) + (**)c (* +d *) + e)r/   r0   r7   r   z,a + (*
    + b
    *) c + (* d
    *) e
    za*b/c)r9   r7   r+   za/b*cza+b-c)r.   r+   r7   za-b+cz
-a + b -c za/b/c*dr   za/b/cza-b-cz1/ar1   )r9   r0   r+   z1/a/bz-1/a*bz(a + b) + c)r/   r0   r4   z a + (b + c) + d )r/   r4   r7   za * (b + c)z	a b (c d))r.   r7   r   z{a, b, 2, c})Listr0   r4   r8   r7   z{a, {b, c}}r>   )r>   r4   r7   z{{a}}za[b, c])r0   r4   r7   z	a[[b, c]])Partr0   r4   r7   za[b[c]]za[[b, c[[d, {e,f}]]]]r?   )r>   r   fza[b[[c,d]]])r?   r4   r7   r   z	a[[b[c]]]za[[b[[c]]]])r?   r4   r7   za[[b[c[[d]]]]])r?   r7   r   za[b[[c[d]]]]zx[[a+1, b+2, c+3]])r/   r4   r8   )r/   r7   r2   zx[a+1, b+2, c+3]z{a+1, b+2, c+3}z	a*b*c*d*e)r.   r0   r4   r7   r   r   za +b + c+ d+e)r/   r0   r4   r7   r   r   za^b)r9   r0   r4   za^b^cr9   )r9   r4   r7   za^b^c^d)r9   r7   r   za/.b)
ReplaceAllr0   r4   z
a/.b/.c/.drA   za//bza//b//cz
a//b//c//dza;b)CompoundExpressionr0   r4   za;)rB   r0   Nullza;b;)rB   r0   r4   rC   za[b;c])rB   r4   r7   z
a[b,c;d,e])rB   r7   r   r   z	a[b,c;,d])rB   r7   rC   za
b
za

b
 (c 
d)  
rB   z
a; b
c)rB   r0   r4   r7   za + 
b
za
b; c; d
 e; (f 
 g); h + 
 i)r.   r@   g)r/   hiz$
{
a
b; c; d
 e (f 
 g); h + 
 i

}
y_Patternr   Blankzy_.Optionaly__BlankSequencey___BlankNullSequencez	a[b_.,c_]zb_. c#Slotz#3r2   z#nr   z##SlotSequencez##azx&r   z#&z#+3&z#1 + #2&r8   z# + #&z#&[x]z#1 + #2 & [x, y]z	#1^2#2^3&z"abc"_Strabcz"a\"b"za"bzx + "abc" ^ 3z"a (* b *) c"za (* b *) cz"a" (* b *) z	"a [ b] "za [ b] c                        d      S )N" chains   r   r)   z3test_parser_mathematica_tokenizer.<locals>.<lambda>   s    c
 r    c                        d      S )Nz"\"rV   rW   s   r   r)   z3test_parser_mathematica_tokenizer.<locals>.<lambda>       f r    c                        d      S )Nz"abcrV   rW   s   r   r)   z3test_parser_mathematica_tokenizer.<locals>.<lambda>   rZ   r    c                        d      S )Nz	"abc\"defrV   rW   s   r   r)   z3test_parser_mathematica_tokenizer.<locals>.<lambda>   s    l 3 r    c                        d      S )Nz(,rV   rW   s   r   r)   z3test_parser_mathematica_tokenizer.<locals>.<lambda>       d r    c                        d      S )Nz()rV   rW   s   r   r)   z3test_parser_mathematica_tokenizer.<locals>.<lambda>   r^   r    c                        d      S )Nza (* brV   rW   s   r   r)   z3test_parser_mathematica_tokenizer.<locals>.<lambda>   s    h r    )r
   r   SyntaxError)rX   r(   s   @@r   !test_parser_mathematica_tokenizerrb   W   s    FfE :;$;$;#;$<4;$s|+++s|<<<<?w-?@@@@<3=C;....=00001111>////>0000>fc+?@@@@>0000-@AAAA&'FC9QSf+gggg>gs,@AAAA <....<....?wc
C88882222>0000>0000<5   <....=////>....=0000<,,,,<////=----<////=1111=---- !"&8888348OOOO  	 $	$ $ $ >gsC1EFFFF>gs,@#FFFF>fc30DEEEE>fc+?EEEE6+?FZ"[[[[.BDXZ]^^^^>gs,@BVWWWW>fc+?AUVVVV<GS*>????>gs,@BVWWWW?w.BCHHHH F,>#DDDD$%&#7I3)OOOOGS2D#EEEE'35H!IIII $@@@@FC1C#DDDD>fvsm4444...!8888c3Z0000()fc3cSe@f-ggggC)@#AAAA&#Sz!::::FC1C#DDDD!"vsS:L4M&NNNN S63c
*C$DDDD%&638JL^`r*ssss#$.@BTVh(iiii"#0BDVXj'kkkk !CCCC!%FFFF <....>gs,?@@@@w=P.QRRRR =4444<,@XZ]1^`c"dddd=S#J&&&c
C0000S#J#4c":::: <;;;;;=====DDDD?s$DEEEE3-Ms"SSSS#s,OQT!UUUU ?>>>>'(-A3M`,aaaa!FFFF!333356;OQTVY[^`cehj}  @R  ;S  S  S  S@AfOcexz}  AH  JM  OR  Tg  @h  j|  O}  F~  ~  ~  ~ ;9cG95555<JC'(CDDDD<Is_,=>>>>=Y.A-BCCCC#
YgY4O'PS\^adkclRm!nnnn>g
YgY4O'PRUVVVV :&#&&&;63-''';63-''';>3////<NC0000 ;:s++++;:}5555=Z&63-)EFFFFfvsmfc]-S TTTT?zFVSMFC=+QRRRR>zFC=93????#$*v}vWZm6\)]_bdg(hhhh*w63-QT8UX_bhjmanpsWt.u!vvvv >fe_,,,...!fcGfe_c3R%SSSS!fm%<<<< VSM111&)!4444
;*+
;-.
;-.
;34 ;+,
;+,
;/0r    c                  F  	
 t               

fd		
fd} t        dt              \  }}}}d}d}d}d}
j                  |      d	g d
gk(  sJ 
j                  |      dg d
dgk(  sJ 
j                  |      d	ddg dg dggk(  sJ 
j                  |      dg ddgk(  sJ  	|       | |t        t
                    k(  sJ  	|       | |t        t
              t              k(  sJ  	|       | |t         |t
        t               |t        t                          k(  sJ  | |      t        t        t
        z        k(  sJ  | |      t        t
        z  t        z   k(  sJ  | |      t        t        t
        t        z   z  t        t        z  z        k(  sJ y )Nc                 D    j                  j                  |             S r#   )#_from_fullformlist_to_fullformsympy_from_fullform_to_fullformlistr&   s    r   r)   z1test_parser_mathematica_exp_alt.<locals>.<lambda>  s    &"L"LVMrMrswMx"y r    c                 2    j                   |             S r#   )_from_fullformsympy_to_sympy)r'   convert_chain2r(   s    r   r)   z1test_parser_mathematica_exp_alt.<locals>.<lambda>  s    &"E"EnUYFZ"[ r    zSin Times Plus Powerr   zSin[Times[x, y]]zPlus[Times[x, y], z]z'Sin[Times[x, Plus[y, z], Power[w, n]]]]zRational[Rational[x, y], z]r-   r:   r/   r   r.   r   )r/   r   r   )r9   r   r   Rational)rj   r   r   )
r
   r   r   rf   r   r   r   r   r   r   )convert_chain3r-   r.   r/   r9   
full_form1
full_form2
full_form3
full_form4ri   r(   s            @@r   test_parser_mathematica_exp_altrp      s    FyN[N%&<(KCe#J'J:J.J00<H[@\\\\00<I\^a@bbbb00<RUWik~H  AA  A  A  A00<Mceh@iiii*%U1a[)9999*%eAqk1)====*%U1d1aj%1+-N)OOOO*%QqS111*%1q000*%QAYq!t^)<<<<r    N)sympyr   r   r   r   r   r   sympy.parsing.mathematicar	   r
   sympy.core.sympifyr   	sympy.abcr   r   r   r   r   sympy.testing.pytestr   r   rb   rp   rV   r    r   <module>rv      s.    < < J & # # 'L[^f1R=r    