
    \h2                        S SK r S SKrS SKJr  S SKJrJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJr  S SKJrJrJrJrJrJr  S SKJr  S SKJr  S SKJr  S SK J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2  S	 r3S
 r4S r5S r6S r7S r8S r9S r:S r;S r<S r=S r>S r?S r@S rAS rBS rCS rDS rES rFS rGS rHS rIS  rJS! rKS" rLS# rMS$ rNS% rOg)&    N)Q)SymbolFunctionFloatRationalIntegerIMulPowEqLtLeGtGeNe)exp	factorial
factorial2sinMinMax)And)Limit)raises)
parse_exprstandard_transformationsrationalize
TokenErrorsplit_symbolsimplicit_multiplicationconvert_equals_signsconvert_xorfunction_exponentiationlambda_notationauto_symbolrepeated_decimals#implicit_multiplication_applicationauto_numberfactorial_notationimplicit_application_transformationTc                  6   [        S5      n 0 SSU -  _S[        S5      _S[        SS5      _S	SS[        -  -   _S
[	        U 5      _S[        U 5      _S[        U 5      _S[        U S-   5      S-
  _S[        SS5      _S[        SS5      _S[        SS5      _S[        SS5      _S[        SS5      _S[        SS5      _S[        SS5      _S[        SS5      _S [        S!S"5      _[        S#S$5      S%[        S5      * [        S&5      [        S'5      [        S5      /U R                  [        SS5      [        [        SSS(S)9[        SSS(S)9S(S)9[        [        U 5      U S*S+S,9[        R                  " U 5      S-.	EnUR                  5        H  u  p#[!        U5      U:X  a  M   e   [#        [$        S. 5        [#        [$        S/ 5        [#        [$        S0 5        [#        [$        S1 5        [#        [$        S2 5        [#        [$        S3 5        [#        [$        S4 5        g )5Nxz2*x   z3.00   z22/7      z2+3jzexp(x)zx!zx!!z(x + 1)! - 1   z3.[3]
   z.0[3]   z3.2[3]a   z1.3[12]i  iJ  z	1 + 3.[3]   z	1 + .0[3]   z
1 + 3.2[3]   z.[0011]i  z0.1[00102] + 1ii i i'  i'  i _7 Fevaluater   -)dir)	z1.[0191]z10!z-(2)z[-1, -2, 3]zSymbol("x").free_symbolszS('S(3).n(n=3)')zfactorint(12, visual=True)zLimit(sin(x), x, 0, dir="-")z	Q.even(x)c                  "    [        S[        5      $ Nr.   )r   r        ]/var/www/auris/envauris/lib/python3.13/site-packages/sympy/parsing/tests/test_sympy_parser.py<lambda>#test_sympy_parser.<locals>.<lambda>>   s    301rC   c                      [        SS S9$ )Nr.   c                     gNr3   rB   r.   ys     rD   rE   5test_sympy_parser.<locals>.<lambda>.<locals>.<lambda>A   s    ArC   transformationsr   rB   rC   rD   rE   rF   @   s    36rC   c                      [        SS 4S9$ )Nr.   c                     grI   rB   rJ   s     rD   rE   rL   C   s    QrC   rM   rO   rB   rC   rD   rE   rF   B   s    3(89rC   c                      [        SSS9$ )Nr.   )rB   rM   rO   rB   rC   rD   rE   rF   D   s    jeDrC   c                      [        S0 / / 5      $ rA   rO   rB   rC   rD   rE   rF   E       jb"b9rC   c                      [        S/ / 0 5      $ rA   rO   rB   rC   rD   rE   rF   F   rT   rC   c                      [        S/ / 0 5      $ rA   rO   rB   rC   rD   rE   rF   G   rT   rC   )r   r   r   r	   r   r   r   r   free_symbolsr
   r   r   r   r   evenitemsr   r   	TypeError)r.   inputstextresults       rD   test_sympy_parserr^      sN   sA q1u a  	Q  	AaC	 
 	#a&  	il  	z!}  		!a%(1,  	"a  	!R  	(2r"  	8C%  	Xb!_  	Xb"%  	hsB'   	8As#! " 	(662# $ UD)WR['!*=$%NN!!QK&)1u%1u%' ).c!fa(DVVAY; FB $6))) ' 9 2 3
9 7 8
9 : ;
9DE
99:
99:
99:rC   c                      S[        SS5      0n [        [        4-   nU R                  5        H  u  p#[	        X!S9U:X  a  M   e   g )Nz0.123{   i  rM   )r   r   r   rY   r   )r[   rN   r\   r]   s       rD   test_rationalizera   J   sH    #t$F /+?O$@FJJJ 'rC   c                  X    / SQn U  H  n [        U5         e   g ! [         a     M!  f = f)N)zx!!!zx!!!!z(!))r   r   r[   r\   s     rD   test_factorial_failrd   S   s9    %F 	t5   		s   
))c                     ^ / SQn U  H  m[        [        U4S j5        M     / SQn U  H  m[        [        [        4U4S j5        M     g )N)z1[1]z.1e1[1]z0x1[1]z1.1j[1]z
1.1[1 + 1]z0.1[[1]]z0x1.1[1]c                     > [        T 5      $ NrO   r\   s   rD   rE   $test_repeated_fail.<locals>.<lambda>f   s
    *T"2rC   )z0.1[z0.1[1z0.1[]c                     > [        T 5      $ rg   rO   rh   s   rD   rE   ri   k   s
    *T2BrC   )r   rZ   r   SyntaxErrorrc   s    @rD   test_repeated_failrl   _   sB     F
 y23  (F
K(*BC rC   c                  p    [        S5      [        SS5      :X  d   e[        S5      [        SS5      :X  d   eg )Nz.[1]r3   	   z1 + .[1]r4   r   r   rB   rC   rD   test_repeated_dot_onlyrp   n   s4    f!Q///j!Xb!_444rC   c                  x    SS 0n S[        S5      0nUR                  5        H  u  p#[        X S9U:X  a  M   e   g )Nmy_functionc                     U S-   $ )Nr/   rB   r.   s    rD   rE   !test_local_dict.<locals>.<lambda>u   s    QrC   zmy_function(2)   
local_dict)r   rY   r   )rx   r[   r\   r]   s       rD   test_local_dictry   s   sG    J 	'!*F $6&@@@ 'rC   c                  ~    [         [        [        4-   n [        SSS9n[        S5      n[	        SSU0U S9X!-  :X  d   eg )NwT)realrK   yxr.   rx   rN   r   r   r    r   r   )tr{   rK   s      rD   test_local_dict_split_implmultr   ~   sD     M3J#LLAsAsAdAwBacIIIrC   c                     ^ [        S5      n S[        S5      0m[        STS9TS   " U 5      :X  d   eS[        S5      0m[        [        U4S j5        g )Nr.   foobarfoo(x)rw   bazc                     > [        ST S9$ )Nr   rw   rO   )ds   rD   rE   /test_local_dict_symbol_to_fcn.<locals>.<lambda>   s    ja@rC   )r   r   r   r   rZ   )r.   r   s    @rD   test_local_dict_symbol_to_fcnr      sP    sA	 Ah1-5!<<<	uA
9@ArC   c                      S[         0n S[        [        S5      [        S5      5      0nUR                  5        H  u  p#[        X S9U:X  a  M   e   g )Nr   zQ & Sr   Sglobal_dict)r   r   rY   r   )r   r[   r\   r]   s       rD   test_global_dictr      sR    &K 	VC[&+.F $8FBBB 'rC   c                  V   0 n [        SU 5        [        [        5      nUR                  5        H*  u  p#[	        U[
        R                  5      (       d  M&  X0U'   M,     [        U S'   [        U S'   U R                  S5        S[        0nU  H  n[        X$S9nU[        U5      :X  a  M   e   g )Nzfrom sympy import *maxminr   r   )execvarsbuiltinsrY   
isinstancetypesBuiltinFunctionTyper   r   popr   r   )default_globalsbuiltins_dictnameobjr   s        rD   test_no_globalsr      s     O	0NM"((*	c54455$'D! + !OE OE !F#K7fTl"""  rC   c                  H    [        [        S 5        [        [        S 5        g )Nc                      [        S5      $ )Nz(()rO   rB   rC   rD   rE   !test_issue_2515.<locals>.<lambda>   	    z%0rC   c                      [        S5      $ )Nz"""rO   rB   rC   rD   rE   r      r   rC   )r   r   rB   rC   rD   test_issue_2515r      s    
:01
:01rC   c                      [        S5      n Sn[        USS9[        USS9:X  d   e[        USS9R                  SU S-   -  5      (       d   eg )Nr.   z2*(x+1)Fr<   r/   r3   )r   r   equals)r.   es     rD   test_issue_7663r      sR    sAAa%(Jq5,IIIIa%(//1Q38888rC   c                  t    SSSSS.n U R                  5        H  u  p[        USS9[        USS9:X  a  M   e   g )N4*-3z(-4)*3z(-2)*x*yzx*(-4)*x)r   z-4*3z-2*x*yzx*-4*xFr<   rY   r   r[   r\   r]   s      rD   #test_recursive_evaluate_false_10560r      sE    	F $/:fu3UUUU 'rC   c                      / SQn U  H?  n[        USS9nU[        U5      s=:X  a   [        UR                  5       5      :w  a  M<   e   e   [        [        SSS95      S:X  d   e[        [        SSS95      S:X  d   eg )N)!zAbs(0)zim(0)zre(0)zsign(0)zarg(0)zconjugate(0)zacos(0)zacot(0)zacsc(0)zasec(0)zasin(0)zatan(0)zacosh(0)zacoth(0)zacsch(0)zasech(0)zasinh(0)zatanh(0)zcos(0)zcot(0)zcsc(0)zsec(0)zsin(0)ztan(0)zcosh(0)zcoth(0)zcsch(0)zsech(0)zsinh(0)ztanh(0)zexp(0)log(0)zsqrt(0)Fr<   zln(0)r   zcbrt(0)z0**(1/3))r   strdoit)r[   caseexprs      rD   test_function_evaluate_falser      s    F $/s4y4C		$444444  z'E23x???z)e45CCCrC   c                  p    SSS.n U R                  5        H  u  p[        USS9[        USS9:X  a  M   e   g )Nz(-10)/5z
(-10)/(-5))z-10/5z-10/-5Fr<   r   r   s      rD   test_issue_10773r      s?    F $/:fu3UUUU 'rC   c                      [         [        [        4-   n [        S5      n[        S5      n[        S5      n[	        S5      U:X  d   e[	        SU S9X-  :X  d   eg )Nr.   rK   xyrM   r   )rN   r.   rK   r   s       rD   test_split_symbolsr      s]    .$&=?@OsAsA	B dr!!!dO<CCCrC   c                      [         [        [        4-   n [        S5      n[        S5      n[        S5      n[	        S5      n[        SU S9X2-  US-   -  :X  d   e[        SU SU0S	9X4" US-   5      -  :X  d   eg )
Nr.   rK   afzay(x+1)rM   r3   zaf(x+1))rN   rx   )r   r   r    r   r   r   )rN   r.   rK   r   r   s        rD   test_split_symbols_functionr      s    .$&=?@OsAsAsAA iAQS!A#YNNNi"%a*-.q1vX6 6 6rC   c                     [         [        [        4-   n [        S5      n[        S5      n[        S5      n[	        S5      n[        SU S9[        U5      S-  :X  d   e[        SU S9[        U5      U-  :X  d   e[        SU S9[        U5      U-  :X  d   e[        S	U S9[        U" U5      5      :X  d   e[        S
U S9X4" U5      -  :X  d   eg )Nr.   rK   r   zsin^2(x)rM   r/   zsin^y(x)zexp^y(x)zE^y(x)za^y(x))r   r"   r#   r   r   r   r   r   )r   r.   rK   r   yfcns        rD   test_functional_exponentr      s     K1H#IIAsAsAsAC=Dj!4Q!CCCj!4Q!CCCj!4Q!CCCh2c$q'lBBBh2a$q'lBBBrC   c                  J   ^  [         [        4-   m [        [        U 4S j5        g )Nc                     > [        ST S9$ )Nz(1,2),(3,4]rM   rO   rM   s   rD   rE   @test_match_parentheses_implicit_multiplication.<locals>.<lambda>  s    z-XrC   )r   r    r   r   rM   s   @rD   .test_match_parentheses_implicit_multiplicationr     s    ..01O
:XYrC   c                      [         [        4-   n [        S5      n[        S5      n[        SU S9[	        SU5      :X  d   e[        SU S9[	        X!5      :X  d   e[        SU S9[	        [	        SU-  U5      S5      :X  d   eg )	Nr.   rK   z1*2=xrM   r/   zy = xz(2*y = x) = FalseF)r   r!   r   r   r   )rN   r.   rK   s      rD   test_convert_equals_signsr   	  s    .-01OsAsAg?2a8KKKg?2a8KKK)'),.r!A#qz5,AB B BrC   c                  ^    [        S5      n [        S5      n[        S5      U" U 5      :X  d   eg )Nr.   r   zf(x))r   r   r   )r.   r   s     rD   test_parse_function_issue_3539r     s+    sAAf1%%%rC   c                     [        SSS9[        SSSS9:X  d   e[        SSS9[        SSSS9:X  d   e[        SSS9[        SSSS9:X  d   e[        SSS9[	        SSSS9:X  d   e[        S	SS9[        SSSS9:X  d   e[        S
SS9[        SSSS9:X  d   e[        SSS9[        [        SSSS9[        SSSS9SS9:X  d   e[        SSS9[        [        SSSS9[        SSSS9SS9:X  d   e[        SSS9[        [        SSSS9[        SSSS9[        SSSS9SS9:X  d   e[        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        g )Nz1 < 2Fr<   r3   r/   z1 <= 2z1 > 2z1 >= 2z1 != 2z1 == 2z	1 < 2 < 3r0   z1 <= 2 <= 3z1 < 2 <= 3 < 4rv   c                      [        SSS9$ )Nz1 in 2Fr<   rO   rB   rC   rD   rE   "test_issue_24288.<locals>.<lambda>%      z(UCrC   c                      [        SSS9$ )Nz1 is 2Fr<   rO   rB   rC   rD   rE   r   &  r   rC   c                      [        SSS9$ )Nz
1 not in 2Fr<   rO   rB   rC   rD   rE   r   '      z,GrC   c                      [        SSS9$ )Nz
1 is not 2Fr<   rO   rB   rC   rD   rE   r   (  r   rC   )
r   r   r   r   r   r   r   r   r   
ValueErrorrB   rC   rD   test_issue_24288r     s   g."QE2JJJJh/2aU3KKKKg."QE2JJJJh/2aU3KKKKh/2aU3KKKKh/2aU3KKKKkE2c"QE:RTVWXZ[fkTlw|6}}}}me4Bq!e<TVXYZ\]hmVny~8&7Bq!e$bA&>1aRW@Xchij j j :CD
:CD
:GH
:GHrC   c                      [         [        4-   n [        S5      n[        S5      n[        SU S9nX#s=:X  a  SU-  SU-  -  :X  d   e   e[        SU S9nX!S-  U-  S	-  :X  d   eg )
Nnz2**n * 3**nz2**n3**nrM   r/   r0   n12n34   "   )r   r'   r   r   )rN   r   expr1expr2s       rD   test_split_symbols_numericr   *  s}     	,.	/  	sA}%Ez?CE&QT!Q$Y&&&&&xAEbDF2IrC   c                  8    [        S5      [        S5      :X  d   eg )Nu   α)r   r   rB   rC   rD   test_unicode_namesr   8  s    dvd|+++rC   c                     [        S5      S:X  d   e[        S5      [        S5      s=:X  a  [        SS5      :X  d   e   e[        S5      [        S5      s=:X  a  [        S	S
5      :X  d   e   e[        S5      [        S5      s=:X  a  [        SS5      :X  d   e   e[        S5      [        S5      s=:X  a  [        SS5      :X  d   e   e[        S5      [        S5      s=:X  a  [        SS5      :X  d   e   eg )N123_456i@ z1.2[3_4]z1.2[34]ic  i  z1.2[012_012]z1.2[012012]i  iM  z.[3_4]z.[34]r   c   z.1[3_4]z.1[34]   i  z123_123.123_123[3_4]z123123.123123[34]l   [.X,iro   rB   rC   rD   test_python3_featuresr   <  s    i F***j!Z	%:PhsC>PPPPPPn%M)BXhsTWFXXXXXXh:g#6J(2r:JJJJJJi Jx$8NHS#<NNNNNN,-<O1PvT\]kmuTvvvvvvrC   c                  r    [        S5      n [        SSU 0[        [        4-   S9nUR                  U 1:X  d   eg )Nr.   z	E**x(1+x)r~   )r   r   r   r'   rW   )r.   eqs     rD   test_issue_19501r   E  sA    sA	KS!H 	,.	/
1B ??qc!!!rC   c                  B   SSK Jn   [        [        5      S:X  d   e[        S   [        :X  d   e[        S   [
        :X  d   e[        S   [        :X  d   e[        S   [        :X  d   e[        S   [        :X  d   e[        S   [        :X  d   e[        S	   [        :X  d   e[        S
   [        :X  d   e[        S   [        :X  d   e[        S   [        :X  d   e[        S   [        :X  d   e[        S   [        :X  d   e[         S S [         S   s=:X  a  ["        :X  d   e   e[        n[         S   U[        U5      S-
     US   4:X  d   e[         S S2S4   ["        US   4-   :X  d   e[%        SSS9SU S-  -  S-  :X  d   e[%        SSS9['        SU -  5      :X  d   eg )Nr   rt   r   r3   r/   r0   rv         r2      rn   r4      )r   r3   r/   r0   rv   )r:   r   z0.3x^2allrM   zsin 3ximplicit)	sympy.abcr.   lenr+   r$   r%   r&   r(   r)   r'   r"   r*   r    r!   r#   r   r,   r   r   r   )r.   r   s     rD   test_parsing_definitionsr   M  s   2%%%10001,,,1!22221,,,1!33331!DDDD1,,,1!55551!88881!55552"99992+---Ra5AiL<$<<<<<<AU8#a&1*qt,,,,RaRU8/1Q4'9999h6!AqD&)CCCh
;s1Q3xGGGrC   c                      / SQn U  H  u  p[        U5      [        U5      :X  a  M   e   [        [        S5      5      S:X  d   eg )N))zabs(x)zAbs(x))z	max(x, y)z	Max(x, y))z	min(x, y)z	Min(x, y))z	pow(x, y)z	Pow(x, y)zpow(38, -1, 97)23)r   r   )casesbuilt_in_func_callsympy_func_calls      rD   test_builtinsr   d  sK    E 05+,-O1LLLL 05z+,-555rC   c                  P    [        [        S 5        SS 0n [        SU 5      SL d   eg )Nc                      [        SSS05      $ )Nr.    r3   rO   rB   rC   rD   rE   "test_issue_22822.<locals>.<lambda>q  s    z#Aw7rC   some_parameterzsome_parameter is NoneT)r   r   r   )datas    rD   test_issue_22822r   p  s-    
:78d#D.5===rC   )Pr   r   sympy.assumptionsr   
sympy.corer   r   r   r   r   r	   r
   r   r   r   r   r   r   r   sympy.functionsr   r   r   r   r   r   sympy.logicr   sympy.seriesr   sympy.testing.pytestr   sympy.parsing.sympy_parserr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r^   ra   rd   rl   rp   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rB   rC   rD   <module>r     s       f f f f E E   '    /;dK	D5
AJBC#*2
9VD V	D6
CZB&
I",w"H.	6>rC   