
    gS4                     |    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d	S )
    )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    sJ +t          do          t          t                    dpz  t	          t                    dpz  z   k    sJ t          dqt          r          \  }}}t          ds                              t          |||ft          |          t	          |          z                       sJ t          dt                              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 d S )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        `/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/parsing/tests/test_mathematica.pytest_mathematicar      sN   ?	
?	
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 5 ##wqt}}44444 788CFFAIAPQ	<QQQQQU+++JBB122;;FBB<QTUWQXQX[^_a[b[bQb<c<cddddd\**33F2s2q5zz4J4JKKKKK/00F1adOOCCCC:;;vq!faQRdUVXYUYk?Z?ZZZZZZZ    c            
      J    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ل           d S )Nc                 T                                             |                     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=ef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 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ffffE 5::5;;$5;;$5;;#5;;$5<<45;;$5s|++++5s|<<<<<5??w-?-?-?@@@@@5<<35==C5;;.......5==0000000511111115>>///////5>>00000005>>fc+?+?+?@@@@@5>>00000005-@-@-@AAAAA5&''FC9Q9Q9QSfSfSf+ggggg5>>gs,@,@,@AAAAA 5<<.......5<<.......5??wc
C88888522222225>>00000005>>00000005<<5    5<<.......5==///////5>>.......5==00000005<<,,,,,,,5<<///////5==-------5<<///////5==11111115==------- 5!""&8&8&8888853448O8O8OOOOO5  	 	 $##	$ $ $ $ 5>>gsC1E1E1EFFFFF5>>gs,@,@,@#FFFFF5>>fc30D0D0DEEEEE5>>fc+?+?+?EEEEE56+?+?+?FZFZFZ"[[[[[5.B.B.BDXDXDXZ]^^^^^5>>gs,@,@,@BVBVBVWWWWW5>>fc+?+?+?AUAUAUVVVVV5<<GS*>*>*>?????5>>gs,@,@,@BVBVBVWWWWW5??w.B.B.BCHHHHH 5F,>,>,>#DDDDD5$%%&#7I7I7I3)OOOOO5GS2D2D2D#EEEEE5'35H5H5H!IIIII5  $@$@$@@@@@5FC1C1C1C#DDDDD5>>fvsm444445....5!8!8!888885c3Z000005())fc3cSeSeSe@f-ggggg5C)@)@)@#AAAAA5&#Sz!:::::5FC1C1C1C#DDDDD5!""vsS:L:L:L4M&NNNNN5  S63c
*C$DDDDD5%&&638J8J8JL^L^L^`r`r`r*sssss5#$$.@.@.@BTBTBTVhVhVh(iiiii5"##0B0B0BDVDVDVXjXjXj'kkkkk 5!C!C!CCCCC5!!%F%F%FFFFF 5<<.......5>>gs,?,?,?@@@@@5w=P=P=P.QRRRRR 5==44444445<,@X@X@XZ]1^`c"ddddd5==S#J&&&&5c
C000005S#J#4c"::::: 5<<;;;;;;;5;;=======5==DDDDDDD5??s$D$D$DEEEEE53-M-M-Ms"SSSSS5#s,O,O,OQT!UUUUU 5??>>>>>>>5'((-A3M`M`M`,aaaaa5!F!F!FFFFF5!3!3!333335566;OQTVY[^`cehj}j}j}  @R  @R  @R  ;S  S  S  S  S5@AAfOcexexexz}  AH  JM  OR  Tg  Tg  Tg  @h  j|  j|  j|  O}  F~  ~  ~  ~  ~ 5;;9cG9555555<<JC'(CDDDDD5<<Is_,=>>>>>5==Y.A-BCCCCC5#
YgY4O'PS\^adkclRm!nnnnn5>>g
YgY4O'PRUVVVVV 5::&#&&&&5;;63-''''5;;63-''''5;;>3/////5<<NC00000 5;;:s+++++5;;:}555555==Z&63-)EFFFFF5fvsmfc]-S TTTTT5??zFVSMFC=+QRRRRR5>>zFC=93?????5#$$*v}vWZm6\)]_bdg(hhhhh5*w63-QT8UX_bhjmanpsWt.u!vvvvv 5>>fe_,,,,5....5!!fcGfe_c3R%SSSSS5!!fm%<<<<<5  VSM11115&)!44444
;****+++
;----...
;----...
;3333444 ;++++,,,
;++++,,,
;////00000r    c                    	
 t                      

fd		
fd} t          dt                    \  }}}}d}d}d}d}
                    |          d	g d
gk    sJ 
                    |          dg d
dgk    sJ 
                    |          d	ddg dg dggk    s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 d S )Nc                 T                                             |                     S r#   )#_from_fullformlist_to_fullformsympy_from_fullform_to_fullformlistr&   s    r   r)   z1test_parser_mathematica_exp_alt.<locals>.<lambda>  s$    &"L"LVMrMrswMxMx"y"y r    c                 @                          |                     S r#   )_from_fullformsympy_to_sympy)r'   convert_chain2r(   s    r   r)   z1test_parser_mathematica_exp_alt.<locals>.<lambda>  s     &"E"EnnUYFZFZ"["[ 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      sY     FyyyyN[[[[[N%&<(KKKCe#J'J:J.J00<<H[H[H[@\\\\\00<<I\I\I\^a@bbbbb00<<RUWiWiWik~k~k~H  AA  A  A  A  A00<<McMcMceh@iiiii>*%%UU1a[[)9)99999>*%%eeAqkk1)=)=====>*%%UU1dd1ajj%%1++-N-N)O)OOOOO>*%%QqS1111>*%%1q0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 J J J J J J J & & & & & & # # # # # # # # # # # # # # ' ' ' ' ' 'L[ L[ L[^f1 f1 f1R= = = = =r    