
    \hS4                     z    S SK JrJrJrJrJrJr  S SKJrJ	r	  S SK
Jr  S SKJrJrJrJrJr  S SKJr  S rS rS rg	)
    )sinFunctionsymbolsDummyLambdacos)parse_mathematicaMathematicaParser)sympify)nwxyz)raisesc                     0 SS_SS_SS_SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_0 S S!_S"S#_S$S%_S&S'_S(S)_S*S+_S,S-_S.S/_S0S1_S2S3_S4S5_S6S7_S8S9_S:S;_S<S;_S=S>_S?S@_E0 SASB_SCSD_SESF_SGSH_SISJ_SKSL_SMSN_SOSP_SQSR_SSST_SUSV_SWSX_SYSZ_S[S\_S]S^_S_S`_SaSb_EScSdSeSfSgShSiSjSkSlSmSn.En U  H  n[        U5      [        X   5      :X  a  M   e   [        So5      [        [        5      Sp-  [	        [        5      Sp-  -   :X  d   e[        Sq[        Sr9u  p#n[        Ss5      R                  [        X#U4[        U5      [	        U5      -   5      5      (       d   e[        St5      R                  [        U[        USp-  5      5      5      (       d   e[        Su5      [        [        [        Sv-  5      :X  d   e[        Sw5      [        [        [        4[        Sp-  [        Sp-  -   5      :X  d   eg )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/auris/envauris/lib/python3.13/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  #wqt}444  78CFAIAPQ	<QQQQU+JBB12;;FBB<QTUWQX[^_a[bQb<cdddd\*33F2s2q5z4JKKKK/0F1adOCCC:;vq!faQRdUVXYUYk?ZZZZ    c            
      @  ^ ^ [        5       mU4S jm T " S5      S:X  d   eT " S5      S:X  d   eT " S5      S:X  d   eT " S5      S:X  d   eT " S5      S:X  d   eT " S5      S:X  d   eT " S	5      S	:X  d   eT " S
5      SS/:X  d   eT " S5      SSSS//:X  d   eT " S5      SS/ SQ/:X  d   eT " S5      S:X  d   eT " S5      S:X  d   eT " S5      / SQ:X  d   eT " S5      / SQ:X  d   eT " S5      / SQ:X  d   eT " S5      / SQ:X  d   eT " S5      / SQ:X  d   eT " S5      SS/ SQ/:X  d   eT " S 5      / S!Q:X  d   eT " S"5      SS/ S#Q/:X  d   eT " S$5      SS/ S%Q/ S&Q/:X  d   eT " S'5      SS/ S(Q/:X  d   eT " S)5      / S*Q:X  d   eT " S+5      / S,Q:X  d   eT " S-5      SSS./S//:X  d   eT " S05      / S*Q:X  d   eT " S15      / S2Q:X  d   eT " S35      / S4Q:X  d   eT " S55      S5:X  d   eT " S65      / S7Q:X  d   eT " S85      / S7Q:X  d   eT " S95      / S:Q:X  d   eT " S;5      / S<Q:X  d   eT " S=5      / S>Q:X  d   eT " S?5      / S@Q:X  d   eT " SA5      / SBQ:X  d   eT " SC5      / SDQ:X  d   eT " SE5      / SFQ:X  d   eT " SG5      / SHQ:X  d   eT " SI5      / SJQ:X  d   eT " SK5      / SLQ:X  d   eT " SM5      / SLQ:X  d   eT " SN5      SSS./ SOQ/:X  d   eT " SP5      SS/ S(QS//:X  d   eT " SQ5      SSS./ SRQ/:X  d   eT " SS5      SS/ SQS//:X  d   eT " ST5      S/ SQS./ SRQ/:X  d   eT " SU5      SS/ S(Q/ SOQSV/:X  d   eT " SW5      SS/ S(Q/ SOQ/:X  d   eT " SX5      SS/ SQ/ SRQ/:X  d   eT " SY5      SSZ/ S[Q/:X  d   eT " S\5      SSZ/ S[Q/ S(Q/:X  d   eT " S]5      SS/ S[QS./:X  d   eT " S^5      S/ S_QS//:X  d   eT " S`5      SS/ SaQSV/:X  d   eT " Sb5      SS/ SaQ/:X  d   eT " Sc5      SSS./ SdQ/:X  d   eT " Se5      / SfQ:X  d   eT " Sg5      ShS/ SiQ/:X  d   eT " Sj5      ShShS//:X  d   eT " Sk5      / SlQ:X  d   eT " Sm5      / SnQ:X  d   eT " So5      SS.S///:X  d   eT " Sp5      SqSS.SqS/SV/ SrQ//:X  d   eT " Ss5      S/ StQ/:X  d   eT " Su5      SqSS.S///:X  d   eT " Sv5      SqS/ SwQ/:X  d   eT " Sx5      SqSS./ SyQ//:X  d   eT " Sz5      SSqS.S/SV///:X  d   eT " S{5      SqS/ SQ/ S|Q/ S}Q/:X  d   eT " S~5      S/ SQ/ S|Q/ S}Q/:X  d   eT " S5      Sh/ SQ/ S|Q/ S}Q/:X  d   eT " S5      / SQ:X  d   eT " S5      / SQ:X  d   eT " S5      / SQ:X  d   eT " S5      SS/ SQ/:X  d   eT " S5      SSSS./ SQ//:X  d   eT " S5      / SQ:X  d   eT " S5      SS/ SQS//SV/:X  d   eT " S5      SS./:X  d   eT " S5      SS./S//:X  d   eT " S5      SS./S//SV/:X  d   eT " S5      / SQ:X  d   eT " S5      / SQ:X  d   eT " S5      / SQ:X  d   eT " S5      S/ SQ/:X  d   eT " S5      SS./ SQS/:X  d   eT " S5      SS./ SQSV/:X  d   eT " S5      / SQ:X  d   eT " S5      SSS./ SdQ/:X  d   eT " S5      / SQ:X  d   eT " S5      / S_Q:X  d   eT " S5      SSS.S/SVS/ SQ/ SQ/:X  d   eT " S5      ShS/ S4QS/SSVS/ SQ// SQ//:X  d   eT " S5      SSS//:X  d   eT " S5      SSSS///:X  d   eT " S5      SSS//:X  d   eT " S5      SSS//:X  d   eT " S5      SSSS.S///SS/S///:X  d   eT " S5      SSSS.S///S//:X  d   eT " S5      SSZ/:X  d   eT " S5      SS/:X  d   eT " S5      SS/:X  d   eT " S5      SSZ/:X  d   eT " S5      SS/:X  d   eT " S5      SS/:X  d   eT " S5      SSSZ//:X  d   eT " S5      SSSSZ/S//:X  d   eT " S5      SSSSZ/SS///:X  d   eT " S5      SSSSZ/SSZ///:X  d   eT " S5      SSSZ//S/:X  d   eT " S5      SSSSZ/SS///SS/:X  d   eT " S5      SSSSSZ/S/SSS/S///:X  d   eT " S5      SS/:X  d   eT " S5      SS/:X  d   eT " S5      SSSSS/S//:X  d   eT " S5      SS/:X  d   eT " S5      SS/:X  d   eT " S5      SS/:X  d   e[        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        [        [        U 4S j5        g )Nc                 D   > TR                  TR                  U 5      5      $ N)_from_tokens_to_fullformlist_from_mathematica_to_tokensexprparsers    r   <lambda>3test_parser_mathematica_tokenizer.<locals>.<lambda>Z   s    <<V=_=_`d=efr    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,   r1   z(-x))r/   r,   r   z(x + y))r0   r   r   z3 + 4)r0   34za - 3)r0   r1   r-   za - br0   r1   )r/   r,   bz7 * 8)r/   78za + b*c)r/   r5   cza + b* c* d + 2 * e)r/   r5   r8   r   )r/   2r   za / b)Powerr5   r,   r   r/   r   r   z3 4)r/   r3   r4   za[b] cr5   r8   z(x) (y)z3 (a))r/   r3   r1   z(a) b)r/   r1   r5   z4.2z4 2)r/   r4   r9   z4  2z3 . 4)Dotr3   r4   z4. 2)r/   4.r9   zx.y)r<   r   r   z4.y)r/   r=   r   z4 .y)r<   r4   r   zx.4)r/   r   z.4zx0.3)r/   x0z.3zx. 4)r<   r   r4   za (* +b *) + c)r0   r1   r8   z a (* + b *) + (**)c (* +d *) + e)r0   r1   r8   r   z,a + (*
    + b
    *) c + (* d
    *) e
    za*b/c)r:   r8   r,   za/b*cza+b-c)r/   r,   r8   za-b+cz
-a + b -c za/b/c*dr   za/b/cza-b-cz1/ar2   )r:   r1   r,   z1/a/bz-1/a*bz(a + b) + c)r0   r1   r5   z a + (b + c) + d )r0   r5   r8   za * (b + c)z	a b (c d))r/   r8   r   z{a, b, 2, c})Listr1   r5   r9   r8   z{a, {b, c}}r?   )r?   r5   r8   z{{a}}za[b, c])r1   r5   r8   z	a[[b, c]])Partr1   r5   r8   za[b[c]]za[[b, c[[d, {e,f}]]]]r@   )r?   r   fza[b[[c,d]]])r@   r5   r8   r   z	a[[b[c]]]za[[b[[c]]]])r@   r5   r8   za[[b[c[[d]]]]])r@   r8   r   za[b[[c[d]]]]zx[[a+1, b+2, c+3]])r0   r5   r9   )r0   r8   r3   zx[a+1, b+2, c+3]z{a+1, b+2, c+3}z	a*b*c*d*e)r/   r1   r5   r8   r   r   za +b + c+ d+e)r0   r1   r5   r8   r   r   za^b)r:   r1   r5   za^b^cr:   )r:   r5   r8   za^b^c^d)r:   r8   r   za/.b)
ReplaceAllr1   r5   z
a/.b/.c/.drB   za//bza//b//cz
a//b//c//dza;b)CompoundExpressionr1   r5   za;)rC   r1   Nullza;b;)rC   r1   r5   rD   za[b;c])rC   r5   r8   z
a[b,c;d,e])rC   r8   r   r   z	a[b,c;,d])rC   r8   rD   za
b
za

b
 (c 
d)  
rC   z
a; b
c)rC   r1   r5   r8   za + 
b
za
b; c; d
 e; (f 
 g); h + 
 i)r/   rA   g)r0   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#3r3   z#nr   z##SlotSequencez##azx&r   z#&z#+3&z#1 + #2&r9   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                     > T " S5      $ )N" chains   r   r)   r*      s	    c
r    c                     > T " S5      $ )Nz"\"rW   rX   s   r   r)   r*      	    fr    c                     > T " S5      $ )Nz"abcrW   rX   s   r   r)   r*      r[   r    c                     > T " S5      $ )Nz	"abc\"defrW   rX   s   r   r)   r*      s
    l 3r    c                     > T " S5      $ )Nz(,rW   rX   s   r   r)   r*      	    dr    c                     > T " S5      $ )Nz()rW   rX   s   r   r)   r*      r_   r    c                     > T " S5      $ )Nza (* brW   rX   s   r   r)   r*      s	    hr    )r
   r   SyntaxError)rY   r(   s   @@r   !test_parser_mathematica_tokenizerrc   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                  T  ^	^
 [        5       m
U
4S jm	U	U
4S jn [        S[        S9u  pp4SnSnSnSnT
R                  U5      S	/ S
Q/:X  d   eT
R                  U5      S/ S
QS/:X  d   eT
R                  U5      S	SS/ SQ/ SQ//:X  d   eT
R                  U5      S/ SQS/:X  d   eT	" U5      U" U" [        [
        5      5      :X  d   eT	" U5      U" U" [        [
        5      [        5      :X  d   eT	" U5      U" U" [        U" [
        [        5      U" [        [        5      5      5      :X  d   eU " U5      [        [        [
        -  5      :X  d   eU " U5      [        [
        -  [        -   :X  d   eU " U5      [        [        [
        [        -   -  [        [        -  -  5      :X  d   eg )Nc                 D   > TR                  TR                  U 5      5      $ r#   )#_from_fullformlist_to_fullformsympy_from_fullform_to_fullformlistr&   s    r   r)   1test_parser_mathematica_exp_alt.<locals>.<lambda>  s    &"L"LVMrMrswMx"yr    c                 2   > TR                  T" U 5      5      $ r#   )_from_fullformsympy_to_sympy)r'   convert_chain2r(   s    r   r)   rh     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;   r0   r   r/   r   )r0   r   r   )r:   r   r   Rational)rl   r   r   )
r
   r   r   rg   r   r   r   r   r   r   )convert_chain3r.   r/   r0   r:   
full_form1
full_form2
full_form3
full_form4rk   r(   s            @@r   test_parser_mathematica_exp_altrr      s    FyN[N%&<(KC#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   rc   rr   rW   r    r   <module>rx      s.    < < J & # # 'L[^f1R=r    