
    sg                     l    d dl Z d dlmZmZmZmZmZmZmZm	Z	m
Z
mZ d dlmZ d Zd Zd Zd Zd Zd	 Zy)
    N)

parse_exprstandard_transformationsconvert_xor#implicit_multiplication_applicationimplicit_multiplicationimplicit_applicationfunction_exponentiationsplit_symbolssplit_symbols_custom_token_splittable)raisesc                     ddddddddd	d
ddddd} t         t        fz   }|t        t        fz   | D ]&  t	              }t	        |    |      }||k(  r&J  g d}|D ]  t        t        fd        t        t        fd       y )Nz5*xza*b*cz3*sin(x)z(x+1)*(x+2)z(5*x**2)*sin(x)z2*sin(x)*cos(x)zpi*xzx*piE*xzEulerGamma*yzE*pizpi*(x+2)z(x+2)*pi	pi*sin(x))5xabcz3sin(x)z
(x+1)(x+2)z(5 x**2)sin(x)z2 sin(x) cos(x)zpi xzx pizE xzEulerGamma yzE piz
pi (x + 2)z
(x + 2) piz	pi sin(x)transformations)sin xcos 2*x	sin cos xc                      t               S Nr   r   casetransformations2s   o/var/www/html/venv/lib/python3.12/site-packages/sympy/parsing/tests/test_implicit_multiplication_application.py<lambda>z.test_implicit_multiplication.<locals>.<lambda>-       z$8HI     c                      t        d       S N	sin**2(x)r   r   r   s   r   r   z.test_implicit_multiplication.<locals>.<lambda>/       :k;KL r!   )r   r   r
   r   r   r   SyntaxError	TypeError)casesr   implicitnormalapplicationr   r   s        @@r   test_implicit_multiplicationr-      s    #+,&   E  /+?O&-*A*C C #d4DEE$KI6!"!#
 4K K{I	KK 9LNr!   c                     ddddddd} t         t        fz   }|t        fz   | D ]-  t              }t        |    |      }||k(  r&J ||f        g d	}|D ]  t	        t
        fd
        t	        t        fd       y )N	factorialsin(x)z	tan(y**3)zcos(2*x)cotzsin(cos(tan(x))))r/   r   ztan y**3r   z(cot)zsin cos tan xr   )x yx sin x2xc                      t               S r   r   r   s   r   r   z+test_implicit_application.<locals>.<lambda>E   r    r!   c                      t        d       S r#   r   r%   s   r   r   z+test_implicit_application.<locals>.<lambda>G   r&   r!   )r   r   r   r   r   r'   r(   )r)   r   r*   r+   multiplicationr   r   s        @@r   test_implicit_applicationr8   2   s     +E /+?O&*>)@@ 7d4DEE$KI6!6Xv$66!7
 .N K{I	KK 9LNr!   c                  :   dddd} t         t        fz   }|t        fz   | D ]&  t              }t        |    |      }||k(  r&J  g d}|D ]  t	        t
        fd        t        dd	t        j                  d	      i
      t        d      k(  sJ y )Nz	sin(x)**2zexp(z)^yzsin(E^(x))**2)r$   zexp^y(z)zsin**2(E^(x))r   )r2   r3   r4   r   r   r   c                      t               S r   r   r   s   r   r   z.test_function_exponentiation.<locals>.<lambda>[   r    r!   zx**2x
local_dictr   )r   r   r	   r   r   r'   sympySymbol)r)   r   r*   r+   other_implicitr   r   s        @@r   test_function_exponentiationrA   J   s     (E
 /+?O&*A)CC #d4DEE$KI6!"!#
.N K{I	KK f3S0A)C&68;Ef;MN N Nr!   c                  4   t         t        fz   } d}|D ]  }t        ||       t        |      k(  rJ  | t        fz  } dt        j
                  i}dddd}|j                         D ]!  \  }}t        |||       t        |      k(  r!J  d	 }t         } | t        |      t        fz  } t        d
|       t        d
      k(  sJ t        d|       t        d      k(  sJ t        d|       t        d      k(  sJ |D ]  }t        ||       t        |      k(  rJ  y )N)alphabetagammadeltaepsilonzetaetathetaiotakappamunuxiomicronpirhosigmatauupsilonphichipsiomegar   er   zI*yzE*E)xeIyeer<   c                 "    | dvrt        |       S y)N)unsplittablenamesF)r   )symbols    r   	can_splitz(test_symbol_splitting.<locals>.can_split|   s    22$V,,r!   r_   r`   xyx*y)r   r
   r   r   r>   Eitemsr   )r   greek_lettersletterr=   r)   r   expectedrb   s           r   test_symbol_splittingrj   a   st    /-1AAO3M
   #&/B&!" 	# "#
 /11O!JE
  ++- %h$:*9;(#$ 	% $% /O,Y7/1 1O noFn%& ' &g?g   dO<e   #&/B&!" 	# "#r!   c                  X   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+d,d-d.d/d0dd1d2d3d4d5d6d7d8d9d:} t         t        fz   }|t        fz   }| D ]&  }t        ||;      }t        | |   |;      }||k(  r&J  y )<Nr4   z2*xr2   rd   rc   r   r0   z2sin xz2*sin(x)zx y zzx*y*zzsin(2 * 3x)zsin(2 * 3 * x)zsin(x) (1 + cos(x))zsin(x) * (1 + cos(x))z(x + 2) sin(x)z(x + 2) * sin(x)z(x + 2) sin xz
sin(sin x)zsin(sin(x))zsin x!zsin(factorial(x))zsin x!!zsin(factorial2(x))r/   r3   z
x * sin(x)zxy sin xzx * y * sin(x)z
(x+2)(x+3)z(x + 2) * (x+3)zx**2 + 2xy + y**2zx**2 + 2 * x * y + y**2rQ   Nonezln sin xz
ln(sin(x))zsin x**2z	sin(x**2)rC   zSymbol("alpha")x_2zSymbol("x_2")z
sin^2 x**2zsin(x**2)**2z	sin**3(x)z	sin(x)**3z(factorial)ztan 3xztan(3*x)zsin^2(3*E^(x))zsin(3*E**(x))**2zsin**2(E^(3x))zsin(E**(3*x))**2zsin^2 (3x*E^(x))zsin(3*x*E^x)**2zpi sin xr   r   )r   r   r   r   )r)   r   r   r   r*   r+   s         r   test_all_implicit_stepsrn      s   "e"u" 	e" 		"
 	*" 	" 	'" 	6" 	," 	+" 	m" 	%" 	'" 	[" 	<"  	$!"" 	'#"$ 	6%"& 	d'"( 	)"* 	L+", 	[-". 	K/"0 	"1"2 	3"4 	n5"6 	[7"8 	{9": 	*;"< 	,="> 	,?"@ 	-A"B 	KC"EF /+?O&*M)OO #d4DEE$KI6!"!#r!   c                      t        j                  d      } t        t        fz   }t	        d|      }|dk(  sJ t	        d|      }|| | dz  dz   z  k(  sJ y )Nuzx.is_polynomial(x)r   Tz((exp(x) / (1 + exp(2x))).subs(exp(x), u)      )r>   r?   r   r   r   )rp   r   exprs      r   'test_no_methods_implicit_multiplicationrt      sc    SA..01O*OLD4<<@&57D1adQh<r!   )r>   sympy.parsing.sympy_parserr   r   r   r   r   r   r	   r
   r   r   sympy.testing.pytestr   r-   r8   rA   rj   rn   rt    r!   r   <module>rx      s@       (NBN0N.+#\)#X	 r!   