o
    jgS4                     @   s   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d Zdd	 Zd
d ZdS )    )sinFunctionsymbolsDummyLambdacos)parse_mathematicaMathematicaParser)sympify)nwxyz)raisesc                  C   sD  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sJ qt dottdp ttdp  ksJ tdqtdr\}}}t dst|||ft|t| sJ t dtt|t|dp sJ t dutttdv ksJ t dwttt	ftdp t	dp  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d3 r   \/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/parsing/tests/test_mathematica.pytest_mathematica   s   	
 !"#$%&'()*+,-./01234A$* ,r   c                
      s  t  fdd  ddksJ  ddksJ  ddks!J  ddks)J  ddks1J  dd	ks9J  d
d
ksAJ  dddgksKJ  dddddggksXJ  dddg dgkseJ  ddksmJ  ddksuJ  dg dksJ  dg dksJ  dg dksJ  dg dksJ  dg dksJ  dddg d gksJ  d!g d"ksJ  d#ddg d$gksJ  d%ddg d&g d'gksJ  d(ddg d)gksJ  d*g d+ksJ  d,g d-ksJ  d.ddd/gd0gks
J  d1g d+ksJ  d2g d3ks J  d4g d5ks+J  d6d6ks4J  d7g d8ks?J  d9g d8ksJJ  d:g d;ksUJ  d<g d=ks`J  d>g d?kskJ  d@g dAksvJ  dBg dCksJ  dDg dEksJ  dFg dGksJ  dHg dIksJ  dJg dKksJ  dLg dMksJ  dNg dMksJ  dOddd/g dPgksJ  dQddg d)d0gksJ  dRddd/g dSgksJ  dTddg d d0gksJ  dUdg dd/g dSgksJ  dVddg d)g dPdWgks"J  dXddg d)g dPgks3J  dYddg d g dSgksDJ  dZdd[g d\gksRJ  d]dd[g d\g d)gkscJ  d^ddg d\d/gksrJ  d_dg d`d0gksJ  daddg dbdWgksJ  dcddg dbgksJ  ddddd/g degksJ  dfg dgksJ  dhdidg djgksJ  dkdididggksJ  dlg dmksJ  dng doksJ  dpdd/d0ggksJ  dqdrdd/drd0dWg dsggksJ  dtdg dugksJ  dvdrdd/d0ggks#J  dwdrdg dxgks1J  dydrdd/g dzggksAJ  d{ddrd/d0dWgggksQJ  d|drdg dg d}g d~gkseJ  ddg dg d}g d~gksxJ  ddig dg d}g d~gksJ  dg dksJ  dg dksJ  dg dksJ  dddg dgksJ  ddddd/g dggksJ  dg dksJ  dddg dd0gdWgksJ  ddd/gksJ  ddd/gd0gksJ  ddd/gd0gdWg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sKJ  ddd/g ddWgksZJ  dg dkseJ  dddd/g degkstJ  dg dksJ  dg d`ksJ  dddd/d0dWdg dg dgksJ  ddidg d5d0ddWdg dgg dggksJ  ddddggksJ  dddddgggksJ  ddddggksJ  ddddggksJ  ddddd/dgggdd0dgggksJ  ddddd/dgggd0gksJ  ddd[gks"J  dddgks-J  dddgks8J  ddd[gksCJ  dddgksNJ  dddgksYJ  dddd[ggksfJ  ddddd[gdggksvJ  dÃdddd[gddgggksJ  dŃdddd[gdd[gggksJ  dƃddd[ggdgksJ  dǃdddd[gddgggddgksJ  dȃddddd[gdgdddgdgggksJ  dɃddgksJ  d̃ddgksJ  d΃dddddgdggksJ  dσddgksJ  dуddgksJ  d҃ddgksJ tt fdd tt fdd tt fdd tt fdd tt fdd tt fdd tt fdd d S )Nc                          | S N)_from_tokens_to_fullformlist_from_mathematica_to_tokensexprparserr   r   <lambda>Z       z3test_parser_mathematica_tokenizer.<locals>.<lambda>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*   r/   z(-x))r-   r*   r   z(x + y))r.   r   r   z3 + 4)r.   34za - 3)r.   r/   r+   za - br.   r/   )r-   r*   bz7 * 8)r-   78za + b*c)r-   r3   cza + b* c* d + 2 * e)r-   r3   r6   r   )r-   2r   za / b)Powerr3   r*   r   r-   r   r   z3 4)r-   r1   r2   za[b] cr3   r6   z(x) (y)z3 (a))r-   r1   r/   z(a) b)r-   r/   r3   z4.2z4 2)r-   r2   r7   z4  2z3 . 4)Dotr1   r2   z4. 2)r-   4.r7   zx.y)r:   r   r   z4.y)r-   r;   r   z4 .y)r:   r2   r   zx.4)r-   r   z.4zx0.3)r-   x0z.3zx. 4)r:   r   r2   za (* +b *) + c)r.   r/   r6   z a (* + b *) + (**)c (* +d *) + e)r.   r/   r6   r   z,a + (*
    + b
    *) c + (* d
    *) e
    za*b/c)r8   r6   r*   za/b*cza+b-c)r-   r*   r6   za-b+cz
-a + b -c za/b/c*dr   za/b/cza-b-cz1/ar0   )r8   r/   r*   z1/a/bz-1/a*bz(a + b) + c)r.   r/   r3   z a + (b + c) + d )r.   r3   r6   za * (b + c)z	a b (c d))r-   r6   r   z{a, b, 2, c})Listr/   r3   r7   r6   z{a, {b, c}}r=   )r=   r3   r6   z{{a}}za[b, c])r/   r3   r6   z	a[[b, c]])Partr/   r3   r6   za[b[c]]za[[b, c[[d, {e,f}]]]]r>   )r=   r   fza[b[[c,d]]])r>   r3   r6   r   z	a[[b[c]]]za[[b[[c]]]])r>   r3   r6   za[[b[c[[d]]]]])r>   r6   r   za[b[[c[d]]]]zx[[a+1, b+2, c+3]])r.   r3   r7   )r.   r6   r1   zx[a+1, b+2, c+3]z{a+1, b+2, c+3}z	a*b*c*d*e)r-   r/   r3   r6   r   r   za +b + c+ d+e)r.   r/   r3   r6   r   r   za^b)r8   r/   r3   za^b^cr8   )r8   r3   r6   za^b^c^d)r8   r6   r   za/.b)
ReplaceAllr/   r3   z
a/.b/.c/.dr@   za//bza//b//cz
a//b//c//dza;b)CompoundExpressionr/   r3   za;)rA   r/   Nullza;b;)rA   r/   r3   rB   za[b;c])rA   r3   r6   z
a[b,c;d,e])rA   r6   r   r   z	a[b,c;,d])rA   r6   rB   za
b
za

b
 (c 
d)  
rA   z
a; b
c)rA   r/   r3   r6   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#3r1   z#nr   z##SlotSequencez##azx&r   z#&z#+3&z#1 + #2&r7   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"r   r   chainr   r   r'          c                      rS   )Nz"\"r   r   rU   r   r   r'      rW   c                      rS   )Nz"abcr   r   rU   r   r   r'      rW   c                      rS   )Nz	"abc\"defr   r   rU   r   r   r'      rW   c                      rS   )Nz(,r   r   rU   r   r   r'      rW   c                      rS   )Nz()r   r   rU   r   r   r'      rW   c                      rS   )Nza (* br   r   rU   r   r   r'      rW   )r	   r   SyntaxErrorr   r   )rV   r&   r   !test_parser_mathematica_tokenizerW   s   
"$"""&  (&&""*4,$ $$*0"rY   c            	         sr  t  fdd  fdd} tdtd\}}}}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sPJ |dg ddgks^J  |||ttkskJ  |||tttksyJ  |||t|tt|ttksJ | |t	tt ksJ | |tt t ksJ | |t	ttt  tt  ksJ d S )Nc                    r   r    )#_from_fullformlist_to_fullformsympy_from_fullform_to_fullformlistr#   r%   r   r   r'     r(   z1test_parser_mathematica_exp_alt.<locals>.<lambda>c                    s     | S r    )_from_fullformsympy_to_sympyr#   convert_chain2r&   r   r   r'     s    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,   r9   r.   r   r-   r   )r.   r   r   )r8   r   r   Rational)r_   r   r   )
r	   r   r   r[   r   r   r   r   r   r   )	convert_chain3r,   r-   r.   r8   
full_form1
full_form2
full_form3
full_form4r   r]   r   test_parser_mathematica_exp_alt   s$   &((re   N)sympyr   r   r   r   r   r   sympy.parsing.mathematicar   r	   sympy.core.sympifyr
   	sympy.abcr   r   r   r   r   sympy.testing.pytestr   r   rY   re   r   r   r   r   <module>   s     O *