o
    *ήc                      @   sx  d dl mZmZ d dlmZmZmZmZ 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mZ d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dl m!Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z' d dl(m)Z) d dl*m+Z+ e+dZ,ed\Z-Z.edZ/edZ0dd Z1dd Z2dd Z3dd Z4dd Z5e&dd Z6d d! Z7d"d# Z8d$d% Z9d&d' Z:d(d) Z;d*d+ Z<d,S )-    )
DerivativeFunction)IRationaloopi)EqGeGtLeLtNe)Symbolsymbols)Abs	conjugate)explog)sqrt)sin)Integral)Matrix)limit)python)raisesXFAILskip)parse_latex)import_moduleantlr4zx,ythetaphic                   C   s  t td d dksJ t td d dksJ t tdks"J t td dks,J t dt d	ks6J t ttd
  dksBJ t ttdd dksOJ t td t d dv s]J t dt dv sgJ t ddt  dv ssJ t dtddt t  dv sJ t tt dksJ t t t dksJ t td t dv sJ t dt t dv sJ t dt td  dksJ t dtddtd   dv sJ d S )N      ze = Rational(-1, 2)      ze = Rational(-13, 22)e = oozx = Symbol('x')
e = x**2zx = Symbol('x')
e = 1/xz*y = Symbol('y')
x = Symbol('x')
e = y/x**2z&x = Symbol('x')
e = x**Rational(-5, 2))z x = Symbol('x')
e = 1 + x + x**2z x = Symbol('x')
e = x + x**2 + 1z x = Symbol('x')
e = x**2 + x + 1)zx = Symbol('x')
e = 1 - xzx = Symbol('x')
e = -x + 1)zx = Symbol('x')
e = 1 - 2*xzx = Symbol('x')
e = -2*x + 1   )z/y = Symbol('y')
x = Symbol('x')
e = 1 - 3/2*y/xz0y = Symbol('y')
x = Symbol('x')
e = -3/2*y/x + 1z1y = Symbol('y')
x = Symbol('x')
e = 1 - 3*y/(2*x)z'x = Symbol('x')
y = Symbol('y')
e = x/yz(x = Symbol('x')
y = Symbol('y')
e = -x/y)z/y = Symbol('y')
x = Symbol('x')
e = 1/y*(2 + x)z/y = Symbol('y')
x = Symbol('x')
e = 1/y*(x + 2)z/x = Symbol('x')
y = Symbol('y')
e = 1/y*(2 + x)z-x = Symbol('x')
y = Symbol('y')
e = (2 + x)/yz-x = Symbol('x')
y = Symbol('y')
e = (x + 2)/y)z-y = Symbol('y')
x = Symbol('x')
e = y*(1 + x)z-y = Symbol('y')
x = Symbol('x')
e = y*(x + 1)
   z!x = Symbol('x')
e = -5*x/(x + 10))z7x = Symbol('x')
e = Rational(-3, 2)*x + Rational(-1, 2),x = Symbol('x')
e = -3*x/2 + Rational(-1, 2)r+   )r   r   r   xy r.   r.   G/tmp/pip-target-vg8gfxp4/lib/python/sympy/printing/tests/test_python.pytest_python_basic   s*   "&r0   c                   C   sd   t dtd dksJ t dtd dtd  dksJ t dtd tdd	 d
ks0J d S )N   lambdaz(lambda_ = Symbol('lambda')
e = 5*lambda_   lambda_zRlambda__ = Symbol('lambda')
lambda_ = Symbol('lambda_')
e = 7*lambda_ + 5*lambda__forfor_   zCfor__ = Symbol('for')
for_ = Function('for_')
e = 5*for__ + for_(8))r   r   r   r.   r.   r.   r/   (test_python_keyword_symbol_name_escapingO   s   
r8   c                   C   s    t dtdd dksJ d S )Nr1   r5   r7   z$for_ = Function('for')
e = 5*for_(8))r   r   r.   r.   r.   r/   *test_python_keyword_function_name_escapingY   s
   r9   c                   C   s   t tttdksJ t tttdksJ t tttdks!J t tttdks,J t tttdks7J t tttd  td dv sHJ d S )	Nz,x = Symbol('x')
y = Symbol('y')
e = Eq(x, y)z*x = Symbol('x')
y = Symbol('y')
e = x >= yz*x = Symbol('x')
y = Symbol('y')
e = x <= yz)x = Symbol('x')
y = Symbol('y')
e = x > yz)x = Symbol('x')
y = Symbol('y')
e = x < yr"   r#   )z7x = Symbol('x')
y = Symbol('y')
e = Ne(x/(1 + y), y**2)z7x = Symbol('x')
y = Symbol('y')
e = Ne(x/(y + 1), y**2))	r   r   r,   r-   r	   r   r
   r   r   r.   r.   r.   r/   test_python_relational^   s   &r:   c                  C   s  t dt tt dv sJ t tddksJ t dtdd dks%J t tdt dks1J t dt tdd dks@J t dtdd	 d
ksMJ t ttdksWJ t tttd d  dv sgJ td} t | tdksuJ t | ttdksJ t | ttd  tdv sJ t tttd d dv sJ t td tdd d tdd dv sJ t t	td dksJ d S )Nr#   z x = Symbol('x')
e = 2*x + exp(x)ze = sqrt(2)r"   r)   ze = 2**Rational(1, 3)ze = sqrt(2 + pi)ze = (2 + pi)**Rational(1, 3)   ze = 2**Rational(1, 4)zx = Symbol('x')
e = Abs(x))z%x = Symbol('x')
e = Abs(x/(1 + x**2))z%x = Symbol('x')
e = Abs(x/(x**2 + 1))fz*x = Symbol('x')
f = Function('f')
e = f(x)z=x = Symbol('x')
y = Symbol('y')
f = Function('f')
e = f(x, y))zEx = Symbol('x')
y = Symbol('y')
f = Function('f')
e = f(x/(1 + y), y)zEx = Symbol('x')
y = Symbol('y')
f = Function('f')
e = f(x/(y + 1), y))z)x = Symbol('x')
e = sqrt(1 + sqrt(1 + x))z)x = Symbol('x')
e = sqrt(sqrt(x + 1) + 1))zAx = Symbol('x')
e = (1 + (1 + x)**Rational(1, 3))**Rational(1, 3)zAx = Symbol('x')
e = ((x + 1)**Rational(1, 3) + 1)**Rational(1, 3)zx = Symbol('x')
e = sin(x)**2)
r   r,   r   r   r   r   r   r   r-   r   )r<   r.   r.   r/   test_python_functionsi   s&    ,r=   c                  C   sN   t td\} }tt| |t  dksJ ttt| |t  dks%J d S )Nabz_     _
a - I*bz _     _
 a - I*b
e       )mapr   r   r   r   r   )abr.   r.   r/    test_python_functions_conjugates   s   $rB   c                  C   s   t tttdd} t| dksJ t tttddt }t|dks$J t tttd  ttdd}t|dks:J t dt t ttddtd  }t|dv sRJ d S )NF)evaluatez)x = Symbol('x')
e = Derivative(log(x), x)z-x = Symbol('x')
e = x + Derivative(log(x), x)r#   zCx = Symbol('x')
y = Symbol('y')
e = Derivative(x**2 + log(x), x, y))zBx = Symbol('x')
y = Symbol('y')
e = x**2 + Derivative(2*x*y, y, x)zBx = Symbol('x')
y = Symbol('y')
e = Derivative(2*x*y, y, x) + x**2)r   r   r,   r   r-   )f_1f_2f_3f_4r.   r.   r/   test_python_derivatives   s    rH   c                  C   s   t ttt} t| dksJ t td t}t|dksJ t tdt  t}t|dks/J t td tddf}t|dksAJ t td ttdddf}t|dksVJ t td td  tt}t|d	ksjJ d S )
Nz'x = Symbol('x')
e = Integral(log(x), x)r#   z%x = Symbol('x')
e = Integral(x**2, x)z*x = Symbol('x')
e = Integral(x**(2**x), x)r"   z-x = Symbol('x')
e = Integral(x**2, (x, 1, 2))r*   z;x = Symbol('x')
e = Integral(x**2, (x, Rational(1, 2), 10))z=x = Symbol('x')
y = Symbol('y')
e = Integral(x**2*y**2, x, y))r   r   r,   r   r   r-   )rD   rE   rF   rG   f_5f_6r.   r.   r/   test_python_integrals   s    rK   c                  C   s8   t ttd d dgttt gg} d}| |ksJ d S )Nr#   r"   zSx = Symbol('x')
y = Symbol('y')
e = MutableDenseMatrix([[x**2 + 1, 1], [y, x + y]]))r   r   r,   r-   )psr.   r.   r/   test_python_matrix   s   $rN   c                   C   s8   t ttttdksJ t ttd tddksJ d S )Nr&   r#   r   ze = 0)r   r   r,   r   r.   r.   r.   r/   test_python_limits   s    rO   c                  C   s(   t std td} t| dksJ d S )Nzantlr not installedza_b \cdot bz/a_b = Symbol('a_{b}')
b = Symbol('b')
e = a_b*b)r   r   r   r   )exprr.   r.   r/   test_issue_20762   s   rQ   c                   C   s   t tdd  d S )Nc                   S   s   t tddS )Ngarbage)method)r   r,   r.   r.   r.   r/   <lambda>   s    ztest_settings.<locals>.<lambda>)r   	TypeErrorr.   r.   r.   r/   test_settings   s   rV   N)=sympy.core.functionr   r   sympy.core.numbersr   r   r   r   sympy.core.relationalr   r	   r
   r   r   r   sympy.core.symbolr   r   $sympy.functions.elementary.complexesr   r   &sympy.functions.elementary.exponentialr   r   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   sympy.integrals.integralsr   sympy.matrices.denser   sympy.series.limitsr   sympy.printing.pythonr   sympy.testing.pytestr   r   r   sympy.parsing.latexr   sympy.externalr   r   r,   r-   thphr0   r8   r9   r:   r=   rB   rH   rK   rN   rO   rQ   rV   r.   r.   r.   r/   <module>   s@     3
#
