a
    kh                     @   s
  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 d dlmZ d dlmZmZ d d	lmZmZ d d
lmZmZmZmZmZ d dl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(m)Z)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/ d dl0m1Z1m2Z2m3Z3 d dl4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z: d dl;m<Z<m=Z=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZD d dlEmFZFmGZG d dlHmIZI d dlJmKZK d dlLmMZM d dlNmOZOmPZPmQZQmRZR d dlSmTZT d dlUmVZV d dlWmXZX d dlYmZZZ d d l[m\Z\ d d!l]m^Z^ d d"l_m`Z` d d#lambZb d d$lcmdZdmeZemfZfmgZg d d%lhmiZimjZjmkZkmlZl d d&lmmnZn d d'lompZp d d(lqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZy d d)lzm{Z{m|Z| d d*l}m~Z~mZmZmZmZmZmZmZmZmZmZmZ d d+lmZmZmZmZmZ d d,lmZ d d-lmZmZ d d.lmZmZ d d/lmZmZmZ d d0lmZ e:d1\ZZZZZe7d2Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdCdD ZdEdF ZdGdH ZdIdJ ZdKdL ZdMdN ZdOdP ZdQdR ZdSdT ZdUdV ZdWdX ZdYdZ Zd[d\ Zd]d^ Zd_d` Zdadb Zdcdd Zdedf Zdgdh Zdidj Zdkdl Zdmdn Zdodp Zdqdr Zdsdt Zdudv Zdwdx Zdydz Zd{d| Zd}d~ Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZddĄ ZddƄ ZddȄ Zddʄ Zdd̄ Zdd΄ ZddЄ Zdd҄ ZddԄ Zddք Zdd؄ Zddڄ Zdd܄ Zddބ Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z	dd  Z
dd Zdd Zdd Zdd Zd	d
 Zdd Zdd ZdS (      )MatAdd)
Quaternion)Q)AccumBounds)	Partition)Sum	summation)Add)DictTuple)UnevaluatedExprExpr)
DerivativeFunctionLambdaSubsWildFunction)Mul)Catalan
EulerGammaGoldenRatioTribonacciConstant)	EFloatIIntegerRationalnanoopizoo)_exp_is_pow)Pow)EqRelNe)S)DummySymbolWildsymbols)	factorial
factorial2subfactorial)Abs)exp)sqrt)cossin)	Heaviside)zeta)Integral)
EquivalentfalsetrueXor)Matrix)MatrixSymbol)Identity)MatrixSlice)SparseMatrix)factor)Limit)O)
Complement	FiniteSetIntervalSymmetricDifference)
CovarianceExpectationProbabilityVariance)RandomSymbol)import_module)TransferFunctionSeriesParallelFeedbackTransferFunctionMatrix
MIMOSeriesMIMOParallelMIMOFeedback)secondjoule)PolyrootofRootSumgroebnerringfieldZZQQZZ_IQQ_Ilexgrlex)PointCirclePolygonEllipseTriangle)	NDimArray)ArraySymbolArrayElement)raiseswarns_deprecated_sympy)sstrsstrrepr
StrPrinter)Trz	x,y,z,w,tdc                  C   sL   G dd dt } t| tdks$J G dd dt } t| tdksHJ d S )Nc                   @   s   e Zd Zdd ZdS )test_printmethod.<locals>.Rc                 S   s   d| | jd  S )Nzfoo(%s)r   )Z_printargsselfprinter rv   K/var/www/auris/lib/python3.9/site-packages/sympy/printing/tests/test_str.py	_sympystr<   s    %test_printmethod.<locals>.R._sympystrN__name__
__module____qualname__rx   rv   rv   rv   rw   R;   s   r~   zfoo(x)c                   @   s   e Zd Zdd ZdS )rq   c                 S   s   dS )Nfoorv   rs   rv   rv   rw   rx   A   s    ry   Nrz   rv   rv   rv   rw   r~   @   s   r   )r.   rl   x)r~   rv   rv   rw   test_printmethod:   s    r   c                   C   sL   t ttdksJ t ttdddks.J t ttdddksHJ d S )NzAbs(x)      1/6)strr.   r   r   rv   rv   rv   rw   test_AbsF   s    r   c                   C   sx  t tt dksJ t td dks(J t ttd  dks@J t tddddd	ksZJ t tdddddd
ksvJ t dt dksJ t dt t tt  td  td  dksJ t dt td d  td d  dksJ t dt dtd   d dt  dksJ t tt dks*J t dt dks@J t td dksVJ t tt t t dkstJ t tttd  t t  dksJ t tdt t t  dksJ t tttdddksJ t ttt tddtt tdddddksJ t ttt t ddt dddks<J t tttt t ddt ddt dddkstJ d S )Nzx + yr   x + 1   zx**2 + xr   Fevaluatez0 + 1z	0 + 0 + 1      ?1.0*x   zx**2 + x*y + x + y**2 + y + 5   zx**3/3 + x**2/2 + x + 1   z-7*x**2 + 2*x + 3*y + 2zx - yz2 - xzx - 2z-w + x - y - zz-w*y**2*z**2 + xz-x*y**2 + x   z^x - x**3/6 + x**5/120 - x**7/5040 + x**9/362880 - x**11/39916800 + x**13/6227020800 + O(x**15)z(-w + x) + (-y + z)z-z + (-x - y)z-t + (-z + (-x - y)))	r   r   yr	   zwr2   Zseriestrv   rv   rv   rw   test_AddL   s&    0,.&" 4,r   c                   C   s   t tdksJ d S )Nr   )r   r   rv   rv   rv   rw   test_Catalanb   s    r   c                   C   s   t tdksJ d S )Nr    )r   r    rv   rv   rv   rw   test_ComplexInfinityf   s    r   c                   C   s\   t tttdksJ t ttd tdddks4J t ttd t ttdddksXJ d S )NzDerivative(x, y)r   Fr   zDerivative(x**2, x)zDerivative(x**2/y, x, y))r   r   r   r   rv   rv   rv   rw   test_Derivativej   s    r   c                   C   sr   t ddt itddt i  kr,dks2n J t td tt ddv sPJ ttd tt ddksnJ d S Nr   z
{1: x + 1}r   r   r   ){1: x**2, 2: x*y}z{2: x*y, 1: x**2}r   r   r   rl   r   rv   rv   rv   rw   	test_dictq   s    2r   c                   C   s~   t tddt itddt i  kr0dks6n J t ttd tt ddv sXJ tttd tt ddkszJ d S r   )r   r
   r   rl   r   rv   rv   rv   rw   	test_Dictw   s    6"r   c                   C   s(   t tdksJ t tt dks$J d S )NZ_dz_d + x)r   rp   r   rv   rv   rv   rw   
test_Dummy~   s    r   c                   C   s   t tdksJ d S )Nr   )r   r   rv   rv   rv   rw   test_EulerGamma   s    r   c                   C   sP   t tdksJ td$ t ttdks.J W d    n1 sB0    Y  d S )Nr   TzE**x)r   r   r!   r/   r   rv   rv   rv   rw   test_Exp   s    
r   c                  C   s  t ddd} ttddks J ttddks4J ttdd	ksHJ tt| d
ks\J ttd|  dkstJ ttt| dksJ ttt| dksJ ttt| dksJ ttt| dksJ ttddksJ tt| dksJ ttd|  dksJ d S )NnTintegerr    r   1r   Z5040zfactorial(n)r   zfactorial(2*n)zfactorial(factorial(n))zfactorial(factorial2(n))zfactorial2(factorial(n))zfactorial2(factorial2(n))r   2zsubfactorial(n)zsubfactorial(2*n))r(   r   r+   r,   r-   )r   rv   rv   rw   test_factorial   s    r   c                  C   sL   t d} | t}td}t| dks(J t|dks8J t|dksHJ d S )Nfr   zf(x)w_)r   r   r   r   )r   Zfxr   rv   rv   rw   test_Function   s    r   c                   C   s   t tdddksJ t ttddddks2J t ttdddddksPJ t ttddtd	d
tdddkszJ t ttddtddtddtdd	dksJ t ttddtddtdddddksJ t ttdddddddksJ d S )Nr   zPoint2D(0, 0)r   zCircle(Point2D(0, 0), 3)r   r      zEllipse(Point2D(1, 2), 3, 4)r      r   z6Triangle(Point2D(1, 1), Point2D(7, 8), Point2D(0, -1))r   r   r   zEPolygon(Point2D(5, 6), Point2D(-2, -3), Point2D(0, 0), Point2D(4, 7))TZsympy_integerszGTriangle(Point2D(S(0), S(0)), Point2D(S(1), S(0)), Point2D(S(0), S(1)))z(Ellipse(Point2D(S(1), S(2)), S(3), S(4)))rl   rb   rc   re   rf   rd   rv   rv   rv   rw   test_Geometry   s     ($r   c                   C   s   t tdksJ d S )Nr   )r   r   rv   rv   rv   rw   test_GoldenRatio   s    r   c                   C   sH   t ttt tttj  kr(dks.n J t ttddksDJ d S )NzHeaviside(x)r   zHeaviside(x, 1))r   r3   r   r&   Halfrv   rv   rv   rw   test_Heaviside   s    .r   c                   C   s   t tdksJ d S )Nr   )r   r   rv   rv   rv   rw   test_TribonacciConstant   s    r   c                   C   s   t tdksJ d S )Nr   )r   r   rv   rv   rv   rw   test_ImaginaryUnit   s    r   c                   C   s(   t tdksJ t tt dks$J d S )Nr   oo*I)r   r   r   rv   rv   rv   rw   test_Infinity   s    r   c                   C   sh   t tddksJ t tddks(J t tddks<J t tddksPJ t td	d
ksdJ d S )Nr   -1r   r   r   z-3r   0   Z25)r   r   rv   rv   rv   rw   test_Integer   s
    r   c                   C   s>   t ttttdksJ t ttttddfdks:J d S )NzIntegral(sin(x), y)r   r   zIntegral(sin(x), (y, 0, 1)))r   r5   r2   r   r   rv   rv   rv   rw   test_Integral   s    r   c               	   C   s|   t jddt jf} tt| D ]Z}t|d t| D ]B}dD ]8}dD ].}t| | | | ||}t t||ksBJ qBq:q2qd S )Nr   r   )TF)r&   NegativeInfinityInfinityrangelenrD   r   )r   ijlrZivalrv   rv   rw   test_Interval   s    r   c                  C   s<   t ddd} ttd| dks"J ttdddks8J d S )NaTrealr   zAccumBounds(0, a)r   zAccumBounds(0, 1))r(   r   r   )r   rv   rv   rw   test_AccumBounds   s    r   c                   C   s   t tttd dksJ t tdddks0J t tdtdksFJ t tttftt dksdJ t tttfftt dksJ d S )	Nr   zLambda(_d, _d**2)rv   r   zLambda((), 1)zLambda((), x)zLambda((x, y), x + y)zLambda(((x, y),), x + y))r   r   rp   r   r   rv   rv   rv   rw   test_Lambda   s
    r   c                   C   sd   t tttt ttdks J t tdt tddks<J t tttt ttdddks`J d S )NzLimit(sin(x)/x, x, y, dir='+')r   r   zLimit(1/x, x, 0, dir='+')-)dirzLimit(sin(x)/x, x, y, dir='-'))r   r@   r2   r   r   rv   rv   rv   rw   
test_Limit   s     r   c                   C   s   t tgttg  kr dks&n J t td tt d gttd tt d g  krbdkshn J t td tt ggttd tt gg  krdksn J d S )Nz[x]r   r   z[x**2, x*y + 1]z[x**2, [x + y]]r   rv   rv   rv   rw   	test_list   s    &Br   c                  C   s   t td dgttt gg} t| dks,J t| dks<J t dgg} t| t|   krddksjn J t ddgg} t| t|   krdksn J t  } t| t|   krdksn J t ddd	d
 } t| t|   krdksn J d S )Nr   Matrix([[x, 1], [y, x + y]])!Matrix([
[x,     1],
[y, x + y]])zMatrix([[1]])r   zMatrix([[1, 2]])zMatrix(0, 0, [])r   c                 S   s   dS )Nr   rv   )r   r   rv   rv   rw   <lambda>      z!test_Matrix_str.<locals>.<lambda>zMatrix(0, 1, []))r:   r   r   r   rl   Mrv   rv   rw   test_Matrix_str   s    """r   c                  C   s  t tt dksJ t tt dks(J t tt t dks@J t td td  dks\J t dt d dkstJ t d	t d d
ksJ t dt dksJ t dt dksJ t tdddddksJ t tdddddksJ t tdddddksJ t tddddddks"J t tdddddks>J t tdtjdddks\J t tddtjdddks|J t tddddtdddksJ t tdddddksJ t tdddddksJ t tdddddttdddksJ t tddddt dttdddks&J t ttddtd d!ddd"ksNJ t td	tttttdddddddd#ksJ t tttdt dddddd$ksJ ddl	m
}  | dN t tttdtdttdttdtdd%ksJ W d    n1 s0    Y  G d&d' d't}G d(d) d)t}| }| }t td| d*ksdJ t |td d*ks~J t |td+ d,ksJ t |td d-ksJ t |td | d.ksJ t |td | d.ksJ d S )/Nzx/yzy/xzx/(y*z)r   r   z(x + 1)/(y + 2)r   z2*x/3r   z-2*x/3      z-1.0*xr   r   r   Fr   z0*1z1*0z1*1z1*1*1z1*2z1*(1/2)z	1*1*(1/2)z	1*1*2*3*xr   z1*(-1)z-1*1r   z4*3*2*1*0*y*xz4*3*2*(z + 1)*0*y*xr   r   z(2/3)*(5/7)z
-2*x/(y*y)zx/(1/y)z(-1 - 1*1)/2c                   @   s   e Zd ZdZdS )ztest_Mul.<locals>.CustomClass1TNr{   r|   r}   is_commutativerv   rv   rv   rw   CustomClass1,  s   r   c                   @   s   e Zd ZdZdS )ztest_Mul.<locals>.CustomClass2TNr   rv   rv   rv   rw   CustomClass2/  s   r   z2*CustomClass1()z1.5z1.5*CustomClass1()z2*CustomClass2()z2*CustomClass1()*CustomClass2())r   r   r   r   r   r&   r   r   r"   sympy.core.parametersr   r   r	   r   r   )r   r   r   Zcc1Zcc2rv   rv   rw   test_Mul  sP     "&*(
*
^r   c                   C   s   t tdksJ d S )Nr   )r   r   rv   rv   rv   rw   test_NaN;  s    r   c                   C   s   t t dksJ d S )Nz-oo)r   r   rv   rv   rv   rw   test_NegativeInfinity?  s    r   c                   C   s   t ttdksJ t ttd dks,J t ttt dksDJ t tttdksZJ t tttdfdkstJ t ttttfdksJ t ttttdksJ t ttttdksJ t ttttfttfdksJ d S )	NzO(x)r   zO(x**2)zO(x*y, x, y)r   zO(x, (x, oo))z
O(x, x, y)zO(x, (x, oo), (y, oo)))r   rA   r   r   r   rv   rv   rv   rw   
test_OrderB  s    r   c                  C   s  ddl m} m} | df|ddf|dddf|dddd	d
ddf|dddddddffD ]\}}t||ksdJ qd| g df| g dddf| g dddf| g dddf| g ddf| g ddf| g ddddffD ]\}}t|dd|ksJ q| g df| g dddf| g dddf| g dddf| g ddf| g dd f| g dddd!f| g d"ddd#ffD ]\}}t||kszJ qzt < | j}d| _t| g ddksJ || _W d    n1 s0    Y  d S )$Nr   )PermutationCyclez()r   z(2)r   z(1 2)r   r   r   
   z(1 2)(6 7)(10)r   r   z(1 2)(4)zPermutation([]))sizezPermutation([0])zPermutation([0, 1])zPermutation([], size=10))r   r   r   zPermutation([1, 0, 2]))r   r   r   r   r   r   zPermutation([1, 0], size=6)zPermutation([1, 0], size=10)F)Zperm_cyclicz(0)z(1)z(9)z(2)(0 1)z(5)(0 1)z(9)(0 1))r   r   r   r   r   r   z(9)(2 3))Zsympy.combinatoricsr   r   rl   rk   Zprint_cyclic)r   r   psZold_print_cyclicrv   rv   rw   test_Permutation_CycleN  s    









r   c                   C   s   t tdksJ d S )Nr   )r   r   rv   rv   rv   rw   test_Pi  s    r   c                   C   s&  t tdtdksJ t tdtdks,J t tttdksBJ t tdt d tdks`J t tdt d tdks~J t td	td
ksJ t tt tdksJ t tdt d tdksJ t tdt d tdksJ t ttd tdksJ t tdt td  tdks(J t tddt  dt dksLJ t ttd t dksjJ t ttt d tt dddksJ t ttd d td dddksJ t ttd d t tdksJ t ttd d t tdksJ t ttd tt  tdks&J t ttd tt  tdksJJ t tt t t tt  d tttdks|J t tt td  td  t dt td   dt t  d tttd ksJ t ttd d tdd!d"ksJ t tdtd  dt  d# td$d!d%ks"J d S )&Nr   zPoly(0, x, domain='ZZ')r   zPoly(1, x, domain='ZZ')zPoly(x, x, domain='ZZ')r   zPoly(2*x + 1, x, domain='ZZ')zPoly(2*x - 1, x, domain='ZZ')r   zPoly(-1, x, domain='ZZ')zPoly(-x, x, domain='ZZ')r   zPoly(-2*x + 1, x, domain='ZZ')zPoly(-2*x - 1, x, domain='ZZ')zPoly(x - 1, x, domain='ZZ')r   z Poly(x**5 + 2*x, x, domain='ZZ')r   z"Poly((3**x)**2, 3**x, domain='ZZ')z)Poly(((x**2)**x), (x**2)**x, domain='ZZ')F)expandz$Poly((x + y)**3, x + y, domain='ZZ')z$Poly((x - 1)**2, x - 1, domain='ZZ')z%Poly(x**2 + y + 1, x, domain='ZZ[y]')z%Poly(x**2 + y - 1, x, domain='ZZ[y]')z"Poly(x**2 + I*x, x, domain='ZZ_I')z"Poly(x**2 - I*x, x, domain='ZZ_I')z,Poly(-x*y*z + x*y - 1, x, y, z, domain='ZZ')   r   zIPoly(-w*x**21*y**7*z - 2*x*z + (w + 1)*z**3 + 1, x, y, z, domain='ZZ[w]'))moduluszPoly(x**2 + 1, x, modulus=2)r      z%Poly(2*x**2 + 3*x + 4, x, modulus=17))r   rV   r   r   r   r   r   rv   rv   rv   rw   	test_Poly  sN    $$



$$&
F
$r   c                   C   s\   t tdttd dksJ t tdttd dks8J t tdtd td dksXJ d S )	Nr   r   z+Polynomial ring in x over ZZ with lex orderx,yz0Polynomial ring in x, y over QQ with grlex orderx,y,zr   z4Polynomial ring in x, y, z over ZZ[t] with lex order)r   rZ   r\   r`   r]   ra   rv   rv   rv   rw   test_PolyRing  s    r   c                   C   s\   t tdttd dksJ t tdttd dks8J t tdtd td dksXJ d S )	Nr   r   z3Rational function field in x over ZZ with lex orderr   z8Rational function field in x, y over QQ with grlex orderr   r   z<Rational function field in x, y, z over ZZ[t] with lex order)r   r[   r\   r`   r]   ra   rv   rv   rv   rw   test_FracField  s    r   c            	      C   s  t dt\} }}t d| \}}}}t dt\}}t|| dksDJ t|d dksXJ t|d dkslJ t|d d	ksJ t|d d
| |  d |d  | | d dksJ t|d d
| |  d |d  | |d |  dksJ t|d d
| |  d |d  | |d |  d dks6J t|d  d
| |  d |d  | |d |  d dkszJ t|d | d  | d
| |  d dksJ t|d | d  | d
| |  d dksJ tdt | d dks J d S )Nu,vr   r   r   r   x - 1r   r   x**2r   z!(u**2 + 3*u*v + 1)*x**2*y + u + 1z%(u**2 + 3*u*v + 1)*x**2*y + (u + 1)*xz)(u**2 + 3*u*v + 1)*x**2*y + (u + 1)*x + 1z*-(u**2 - 3*u*v + 1)*x**2*y - (u + 1)*x - 1z-(v**2 + v + 1)*x + 3*u*v + 1z-(v**2 + v + 1)*x - 3*u*v + 1z(1 + 1*I)*x + (2 + 0*I))rZ   r\   r^   r   r   )	ZRuvuvZRxyzr   r   r   Rx_zzixzrv   rv   rw   test_PolyElement  s    8<BD44r   c                  C   sD  t dt\} }}t d| \}}}}}t dt\}}	tdd}
t|| dksPJ t|d dksdJ t|d dksxJ t|d	 d
ksJ t|| dksJ t|| | dksJ t|||  dksJ t|| ||  dksJ t|d | dksJ t|d | dks J t| d | dks<J t|d ||  dksZJ t| |d  dksvJ t|| |d  dksJ t|d | | d |d | d  dksJ t|d | | d |d | || |  d  dksJ td|
 |	 dksJ td|
 |	 |
 |	 dks@J d S )Nr   zx,y,z,tr   r   r   r   r   r   r   zx/3zx/zzx*y/zzx/(z*t)z	x*y/(z*t)z	(x - 1)/yz	(x + 1)/yz
(-x - 1)/yz(x + 1)/(y*z)z
-y/(x + 1)zy*z/(x + 1)z!((u + 1)*x*y + 1)/((v - 1)*z - 1)z)((u + 1)*x*y + 1)/((v - 1)*z - u*v*t - 1)z(1 + 1*I)/xz((1 + 1*I)*x + (0 + -1*I))/x)r[   r\   r_   r   )ZFuvr   r   ZFxyztr   r   r   r   r   r   r   rv   rv   rw   test_FracElement  s,    
2>r   c                   C   s   t tdddksJ t tdddks,J t tdddksBJ t tdddksXJ t tddd	ksnJ t tdd
dksJ t tdddksJ t tdddksJ t tdd
dksJ d S )Nr   r   r   r   r   r   z-Ir   z2*Ir   z-2*Iz1 + Iz-1 - Iz-1 - 2*I)r   r^   rv   rv   rv   rw   test_GaussianInteger  s    r   c                   C   st   t tdddksJ t ttddddks2J t tdtdddksNJ t ttddtddd	kspJ d S )
Nr   r   r   r   r   z2/3z2*I/3r   z1/2 - 2*I/3)r   r_   r]   rv   rv   rv   rw   test_GaussianRational  s    r   c                   C   s*  t td dksJ t td dks(J t td dks<J t tt d dksTJ t tt d dkslJ t tt d d	ksJ t tt d
t  dksJ t ttd
d dksJ t d
ttd
d  dksJ t tttdksJ t td dksJ t ttdddddks&J d S )Nr   z1/xr   zx**(-2)r   r   z	1/(x + y)z(x + y)**(-2)z
(x + y)**2r   z(x + y)**(x + 1)r   zx**(1/3)z	x**(-1/3)zx**(1/4)r   z	x**(-1.0)Fr   z	2**(-1.0))r   r   r   r   r0   r"   r&   rv   rv   rv   rw   test_Pow  s    r   c                   C   s   t ttdksJ t ttd dks,J t dtt dksDJ t dttd  dks`J t ttt dksxJ t td d	ksJ t dtd  d
ksJ d S )Nzsqrt(x)r   z
sqrt(x**2)r   z	1/sqrt(x)z1/sqrt(x**2)z	y/sqrt(x)g      ?zx**0.5z	x**(-0.5))r   r0   r   r   rv   rv   rv   rw   	test_sqrt   s    r   c                  C   sJ  t dd} t dd}t dd}t dd}t d}t d}t d}t| | dksTJ t| | dkshJ t|d	ksxJ t| | d
ksJ t| | dksJ t| | dksJ t| | dksJ t|| dksJ t|| dksJ t|| dksJ t|| dksJ t|| dks2J t| | dksHJ t|| dks^J t|| dkstJ t|| dksJ tt ddksJ tt ddksJ tt ddksJ ttddksJ ttddksJ ttddddksJ ttdddd ks,J ttd!ddd"ksFJ ttd#ddd$ks`J ttd%ddd&kszJ ttt ddd	ksJ ttt dd'd(ksJ td)d* t dd* d+ksJ td)d* d t dd* d+ksJ td)d* d t dd* d+ksJ td)d* d t dd* d,ks>J ttt d-d'd d.ks^J tdtt d-d'd  d/ksJ ttdtdt ksJ tdt dd0 d1ksJ tt ddd2d3d4ksJ td5}t|t dd d2d3d6ks J tt|t ddd2d3d7ks"J tt||t d8dd2d3d9ksFJ d S ):Nr   r   r   r   r   r   z1/12z1/2z1/8z3/4z7/12z-1/4z1/4z-1/6z-1/2r   z1/64z1/27Z27z-25z1.25z5/4z-2.6e-2z-13/500z25/7z-123/569z0.1[23])Zrationalz61/495z5.1[666]z31/6z	-5.1[666]z-31/6z0.[9]r   z-0.[9]r   $   r   {   r   Z123Z122Q   z27/8z8/27l    d(	 z2**(1/10000000000)Tr   zS(2)/3r   zx**(S(2)/3)zEq(x, S(2)/3)r   zLimit(x, x, S(7)/2, dir='+'))	r   r   r&   r0   r   rl   r(   r#   r@   )Zn1Zn2Zn3Zn4Zn5Zn7Zn8r   rv   rv   rw   test_Rational*  sd    



 $$$ $ "r  c                   C   s@  t tddddksJ t tddddks0J t tddddksHJ t tddks^J t td	d
kstJ t tddksJ t tddksJ t td td d ddksJ ttddddddksJ ttddddddksJ ttddddddks J ttdddddks<J d S )Nz1.23r   )dpsz
1.23456789	   z1.234567890123456789   z3.14r   z3.14159265358979A   zB3.1415926535897932384626433832795028841971693993751058209749445923r   z0.0i  r   r   z-0.e+88Z100Fr   )	full_precminmaxz1.0e+2z100.0z0.1z0.099)r	  r
  z9.90000000000000e-2)r   r   r   Zevalfroundr   rl   rv   rv   rv   rw   
test_Floatc  s     
(r  c                   C   s   t tttddksJ t ttt tddks4J t tttddksLJ t ttdttdB d	kslJ t ttdttd@ d
ksJ d S )N<zx < yz==zEq(x + y, y)z!=zNe(x, y)r   r   zEq(x, 1) | Eq(x, 2)zNe(x, 1) & Ne(x, 2))r   r$   r   r   r#   r%   rv   rv   rv   rw   test_Relationalu  s
     r  c                   C   s4   t tttdksJ t tttdks0J d S )Nz
Q.eq(x, y)z
Q.ne(x, y))r   r   eqr   r   nerv   rv   rv   rw   test_AppliedBinaryRelation}  s    r  c                   C   s*   t ttd dt  d ddks&J d S )Nr   r   r   r   zCRootOf(x**5 + 2*x - 1, 0))r   rW   r   rv   rv   rv   rw   test_CRootOf  s    r  c                  C   s\   t d dt   d } tt| tttdddks4J tt| tttd dddksXJ d S )Nr   r   r   F)autozRootSum(x**5 + 2*x - 1)z(RootSum(x**5 + 2*x - 1, Lambda(z, z**2)))r   r   rX   r   r   )r   rv   rv   rw   test_RootSum  s    r  c                  C   s|   t tg ttdksJ td dt  t d td dt  t d g} t t| dddks`J t t| ddd	ksxJ d S )
Nz1GroebnerBasis([], x, y, domain='ZZ', order='lex')r   r   r   ra   )orderzYGroebnerBasis([x**2 - x - 3*y + 1, y**2 - 2*x + y - 1], x, y, domain='ZZ', order='grlex')r`   zfGroebnerBasis([2*x - y**2 - y + 1, y**4 + 2*y**3 - 3*y**2 - 16*y + 7], x, y, domain='ZZ', order='lex'))r   rY   r   r   )Frv   rv   rw   test_GroebnerBasis  s    0r  c                   C   s   t t dksJ t t dks$J t dhdks6J t tdgdksLJ t h ddks`J t tg dd	ksxJ t dttd
 td td hdksJ t tdttd
 td td gdksJ d S )Nzset()zfrozenset()r   z{1}zfrozenset({1})>   r   r   r   z	{1, 2, 3})r   r   r   zfrozenset({1, 2, 3})r   r   r   z{1, x, x**2, x**3, x**4}z#frozenset({1, x, x**2, x**3, x**4}))rl   set	frozensetr   rv   rv   rv   rw   test_set  s     r  c                  C   s@   t td dgttt gg} t| dks,J t| dks<J d S )Nr   r   r   )r>   r   r   r   rl   r   rv   rv   rw   test_SparseMatrix  s    r  c                   C   sT   t ttdt tttfdks$J t tttd  tddftddfdksPJ d S )Nr   zSum(cos(3*z), (z, x, y))r   r   r   z#Sum(x*y**2, (x, -2, 2), (y, -5, 5)))r   r   r1   r   r   r   r   rv   rv   rv   rw   test_Sum  s    $"r  c                  C   s8   t tdksJ t tdks J t} t | dks4J d S )Nr   r   )r   r   r   erv   rv   rw   test_Symbol  s    r   c                   C   s   t tfttf  kr dks&n J t tt dt fttt dt f  krZdks`n J t tt dt td ffttt dt td ff  krdksn J d S )Nz(x,)r   z(x + y, x + 1)r   z(x + y, (x + 1, x**2))r   rv   rv   rv   rw   
test_tuple  s    &:r!  c                  C   s   t ttd  t td td  t} t tt tt t}t ttd  tt t  t tt t}tt| |dksvJ tt| ||dksJ tt| | dksJ d S )Nr   r   zXSeries(TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y))zSeries(TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y), TransferFunction(t*x**2 - t**w*x + w, t - y, y))zYSeries(TransferFunction(-x + y, x + y, y), TransferFunction(x*y**2 - z, -t**3 + y**3, y)))rL   r   r   r   r   r   r   rM   tf1tf2Ztf3rv   rv   rw   test_Series_str  s    $(r%  c                  C   sz   t ttd  t td td  t} t tt tt t}t| |g|| gg}t|| g| |gg}tt||dksvJ d S )Nr   r   a  MIMOSeries(TransferFunctionMatrix(((TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y)), (TransferFunction(x - y, x + y, y), TransferFunction(x*y**2 - z, -t**3 + y**3, y)))), TransferFunctionMatrix(((TransferFunction(x - y, x + y, y), TransferFunction(x*y**2 - z, -t**3 + y**3, y)), (TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y))))))rL   r   r   r   r   rP   r   rQ   r#  r$  Ztfm_1Ztfm_2rv   rv   rw   test_MIMOSeries_str  s    $r'  c                  C   sx   t td td t} t| dks$J t td dt t}t|dksHJ t ttd dt  d t}t|dkstJ d S )Nr   z!TransferFunction(x - 1, x + 1, x)r   z!TransferFunction(x + 1, 2 - y, x)r   z&TransferFunction(y, y**2 + 2*y + 3, y))rL   r   r   r   r"  rv   rv   rw   test_TransferFunction_str  s    r(  c                  C   s   t ttd  t td td  t} t tt tt t}t ttd  tt t  t tt t}tt| |dksvJ tt| ||dksJ tt| | dksJ d S )Nr   r   zZParallel(TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y))zParallel(TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y), TransferFunction(t*x**2 - t**w*x + w, t - y, y))z[Parallel(TransferFunction(-x + y, x + y, y), TransferFunction(x*y**2 - z, -t**3 + y**3, y)))rL   r   r   r   r   r   r   rN   r"  rv   rv   rw   test_Parallel_str  s    $(r)  c                  C   sz   t ttd  t td td  t} t tt tt t}t| |g|| gg}t|| g| |gg}tt||dksvJ d S )Nr   r   a  MIMOParallel(TransferFunctionMatrix(((TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y)), (TransferFunction(x - y, x + y, y), TransferFunction(x*y**2 - z, -t**3 + y**3, y)))), TransferFunctionMatrix(((TransferFunction(x - y, x + y, y), TransferFunction(x*y**2 - z, -t**3 + y**3, y)), (TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y))))))rL   r   r   r   r   rP   r   rR   r&  rv   rv   rw   test_MIMOParallel_str  s    $r*  c                  C   s   t ttd  t td td  t} t tt tt t}t ttd  tt t  t tt t}tt| | |dkszJ tt| t ddtddksJ d S )Nr   r   zFeedback(Series(TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y)), TransferFunction(t*x**2 - t**w*x + w, t - y, y), -1)r   zUFeedback(TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(1, 1, y), 1))rL   r   r   r   r   r   r   rO   r"  rv   rv   rw   test_Feedback_str  s    $(r+  c                  C   s   t td td  tt t} t tt tt t}t|| g| |gg}t| |g|| gg}tt||dksnJ tt||ddksJ d S )Nr   r   a  MIMOFeedback(TransferFunctionMatrix(((TransferFunction(-x + y, y + z, x), TransferFunction(x**2 - y**3, y - z, x)), (TransferFunction(x**2 - y**3, y - z, x), TransferFunction(-x + y, y + z, x)))), TransferFunctionMatrix(((TransferFunction(x**2 - y**3, y - z, x), TransferFunction(-x + y, y + z, x)), (TransferFunction(-x + y, y + z, x), TransferFunction(x**2 - y**3, y - z, x)))), -1)r   a  MIMOFeedback(TransferFunctionMatrix(((TransferFunction(-x + y, y + z, x), TransferFunction(x**2 - y**3, y - z, x)), (TransferFunction(x**2 - y**3, y - z, x), TransferFunction(-x + y, y + z, x)))), TransferFunctionMatrix(((TransferFunction(x**2 - y**3, y - z, x), TransferFunction(-x + y, y + z, x)), (TransferFunction(-x + y, y + z, x), TransferFunction(x**2 - y**3, y - z, x)))), 1))rL   r   r   r   rP   r   rS   r&  rv   rv   rw   test_MIMOFeedback_str  s    r,  c                  C   s   t ttd  t td td  t} t tt tt t}t ttd  tt t  t tt t}tt| g|ggdks|J tt| |g||ggdksJ d S )Nr   r   zpTransferFunctionMatrix(((TransferFunction(x*y**2 - z, -t**3 + y**3, y),), (TransferFunction(x - y, x + y, y),)))zTransferFunctionMatrix(((TransferFunction(x*y**2 - z, -t**3 + y**3, y), TransferFunction(x - y, x + y, y)), (TransferFunction(t*x**2 - t**w*x + w, t - y, y), TransferFunction(x - y, x + y, y)))))rL   r   r   r   r   r   r   rP   r"  rv   rv   rw   test_TransferFunctionMatrix_str  s    $(r-  c                  C   sf   t tttt} t| dksJ t ttttt } t| dks@J t ttttt } t| dksbJ d S )Nzx + y*i + z*j + t*kzx + y*i + z*j + t*x*kzx + y*i + z*j + (t + x)*k)r   r   r   r   r   r   )qrv   rv   rw   test_Quaternion_str_printer"  s    r/  c                   C   sL   t tdddksJ t tdddks(J ttdks8J ttdksHJ d S )NT)Zabbrevr   JrT   rU   )rl   rT   rU   r   rv   rv   rv   rw   test_Quantity_str+  s    r1  c                  C   s   t d} t| d dksJ ttd|  d dks8J td|  d dksPJ td|  d d	kshJ t| d d d
ksJ tdd|   dksJ d S )Nr   r   zx_ + 1r   r   zexp(2**x_) + 5r   z3*x_ + 1z1 + 1/x_z	x_**2 + 1z
1/(1 - x_))r)   r   r/   )r   rv   rv   rw   test_wild_str2  s    r2  c                  C   s   ddl m} m}m} td}|d u r(d S | d}|d}|d}t|dksPJ t|dks`J t|dkspJ t|| d|  dksJ tt|t| t| d	ksJ d S )
Nr   )WildDotWildPlusWildStarmatchpyr   Zw__Zw___r   z2**w_ + w__/w___zsqrt(w___)*sin(w_)*cos(w__))	Z!sympy.utilities.matchpy_connectorr3  r4  r5  rK   r   r2   r1   r0   )r3  r4  r5  r6  wdZwpwsrv   rv   rw   test_wild_matchpy=  s    r9  c                   C   s   t tddksJ d S )Nr   zzeta(3))r   r4   rv   rv   rv   rw   	test_zetaQ  s    r:  c                  C   s(   t t } t| }t| }||ks$J d S N)r   r   r   )r  r   brv   rv   rw   test_issue_3101U  s    r=  c                  C   s@   dt t tt t d  } t| dvs,J t| dks<J d S )Nr   r   )z(-2)*x**1/2(-1/2)*x**(-1/2)*yz-2*x**1/2(-1/2)*x**(-1/2)*yz-2*x**1/2-1/2*x**-1/2*wz-2*sqrt(x) - y/(2*sqrt(x)))r0   r   r   r   r  rv   rv   rw   test_issue_3103\  s    r>  c                  C   s"   t ttd } t| dksJ d S )Nr   zIntegral(x, x) + 1)r5   r   r   r  rv   rv   rw   test_issue_4021c  s    r?  c                  C   sP   t ddksJ tddks J dddtg} t | dks<J t| dksLJ d S )Nabcz'abc'r   r<  cz[a, b, c, x]z['a', 'b', 'c', x])rl   rm   r   r  rv   rv   rw   test_sstrreprh  s
    rB  c                   C   s   t tt dksJ d S )Nr   )rl   r   r   rv   rv   rv   rw   test_infinityq  s    rC  c                   C   s   t tddddksJ t tddddks0J t tddddksHJ t tdt dddv sdJ t tdt dddv sJ t tdt dddv sJ d S )	Nz0.3Tr  z0.300000000000000r  F)z0.300000000000000*xzx*0.300000000000000)z0.3*xzx*0.3)rl   r&   r   rv   rv   rv   rw   test_full_precu  s    rE  c                  C   s   t ddd\} }}t| | |d  dks.J t|d |  | dksJJ t| |d  | dksfJ tt| dkszJ td	t|  d
ksJ d S )NzA,B,CFZcommutativer   zA*B*C**(-1)zC**(-1)*A*BzA*C**(-1)*Bzsqrt(A)r   z	A**(-1/2))r*   rl   r0   )ABCrv   rv   rw   test_noncommutative  s    rJ  c                  C   sD   t  } | ddksJ | tt dks.J | ddks@J d S )Nr   zx*y    Z32)rn   ZemptyPrinterr   r   )Zstr_printerrv   rv   rw   test_empty_printer  s    rL  c                  C   s0   t ddid} td}| |ddks,J d S )Nr  r   )settingsr   gMD?zf(1.33))rn   r   Zdoprint)Zdec_printerr   rv   rv   rw   test_decimal_printer  s    rN  c                   C   s   t tdd  d S )Nc                   S   s   t tdddS )Nr   garbage)method)rl   r&   rv   rv   rv   rw   r     r   ztest_settings.<locals>.<lambda>)rj   	TypeErrorrv   rv   rv   rw   test_settings  s    rR  c            	      C   s   ddl m} m}m}m}m} | ddd}t||dkdks@J |dd}t||dkd	ksbJ |d
d}|dd}t|t||jdksJ d S )Nr   )NormalDieExponentialpspacewherex1r   zDomain: (0 < x1) & (x1 < oo)d1r   r   zDomain: Eq(d1, 5) | Eq(d1, 6)r   r<  z1Domain: (0 <= a) & (0 <= b) & (a < oo) & (b < oo))	sympy.statsrS  rT  rU  rV  rW  r   r   domain)	rS  rT  rU  rV  rW  XDrG  rH  rv   rv   rw   test_RandomDomain  s    


r^  c                   C   s   t ttdd dksJ t ttdd dks4J t ttt td g dksTJ t tttttdtttdd	ks~J d S )
Nr   3   z{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50}r   z{1, 2, 3, 4, 5}r   z{x**2, x*y}r   z*FiniteSet(5, FiniteSet(5, {x, y}), {x, y}))r   rC   r   r   r   rv   rv   rv   rw   test_FiniteSet  s      r`  c                   C   s"   t ttttthdksJ d S )NzPartition({z}, {x, y}))r   r   rC   r   r   r   rv   rv   rv   rw   test_Partition  s    ra  c                   C   s   t tjdksJ d S )NUniversalSet)r   r&   rb  rv   rv   rv   rw   test_UniversalSet  s    rc  c                  C   sh   t tt} t ttf }t| ttt  tttt  ksBJ t|tt ttt ksdJ d S r;  )r]   Z
frac_fieldr   r   rl   convert)r  r~   rv   rv   rw   test_PrettyPoly  s    *re  c            	      C   s   ddl m} m}m}m} | d}| d}|||d}||}|d}t|dksTJ t|dksdJ t|d	kstJ t|d
ksJ d S )Nr   )ObjectNamedMorphismIdentityMorphismCategoryrG  rH  r   KzObject("A")z,NamedMorphism(Object("A"), Object("B"), "f")zIdentityMorphism(Object("A"))zCategory("K"))Zsympy.categoriesrf  rg  rh  ri  r   )	rf  rg  rh  ri  rG  rH  r   Zid_Arj  rv   rv   rw   test_categories  s    rk  c                  C   s0   t ddd\} }t| | }t|dks,J d S )NzA BFrF  zTr(A*B))r*   ro   r   )rG  rH  r   rv   rv   rw   test_Tr  s    rl  c                   C   s    t tdt d dksJ d S )Ng      r   z-3.0*(1.0*z - 1.0))r   r?   r   rv   rv   rv   rw   test_issue_6387  s    rm  c                  C   s   t dddt ddd } }td| |  dks2J tt|  dksFJ tt |  dks\J tdt |  dkstJ tdt  |  d	ksJ ttt| |t| |d
ksJ d S )Nr\  r   Yz	2*X + 2*YzI*Xz-I*Xr   z	(1 + I)*Xz
(-1 - I)*Xz(X + Y) + (X + Y))r;   r   r   r   )r\  rn  rv   rv   rw   test_MatMul_MatAdd  s    ro  c                  C   s  t ddd} td| | }tddd}tddd}tt|ddd	ksHJ t|ttd
 ttd
 f dkspJ t|ttd
 dttd
 df dksJ t|d ttd f dksJ t|d ttd f dksJ t|td d tf dksJ t|ttttf dksJ t|ttttttf dksDJ t|td ttd tf dksjJ t|d ttd ttf dksJ t|d d td d tf dksJ tt|ddd	ksJ tt|d | d fd | d fd	ksJ tt|d| d fd| d fd	ksJ tt|d| dfd| dfdksBJ t|d
dddddf dkshJ t|d
dddddf dksJ t|d
dd dksJ t|d dd
d df d!ksJ t|d dd
ddf d"ksJ t|dd ddf d#ksJ t|dd
dd
f d$ks4J t|dd
ddd
df d%ksZJ t|| dd dd f d&ksJ d S )'Nr   Tr   r\  rn  r   Z)NNNzX[:, :]r   zX[x:x + 1, y:y + 1]r   zX[x:x + 1:2, y:y + 1:2]z	X[:x, y:]z	X[x:, :y]zX[x:y, z:w]zX[x:y:t, w:t:x]zX[x::y, t::w]zX[:x:y, :t:w]zX[::x, ::y])r   NNr   zX[::2, ::2]r   r   r   r   zX[1:2:3, 4:5:6]r   zX[1:3:5, 4:6:8]zX[1:10:2, :]r  zY[:5, 1:9:2]zY[:5, 1::2]zY[5:6, :5:2]z	X[:1, :1]zX[:1:2, :1:2]z(Y + Z)[2:, 2:])	r(   r;   r   r=   r   r   r   r   r   )r   r\  rn  rp  rv   rv   rw   test_MatrixSlice  s8    (,   "&&&&&&&&&$$ "&rq  c                   C   sd   t ttt  kr*tt  kr*dks0n J t ttt  krZtt  krZdks`n J d S )NTrueFalse)r   r8   reprrl   r7   rv   rv   rv   rw   test_true_false  s    0ru  c                   C   s   t tttdksJ d S )NzEquivalent(x, y))r   r6   r   r   rv   rv   rv   rw   test_Equivalent  s    rv  c                   C   s   t tttdddksJ d S )NFr   zx ^ y)r   r9   r   r   rv   rv   rv   rw   test_Xor  s    rw  c                   C   s   t ttjtjdksJ d S )NzComplement(Reals, Naturals))r   rB   r&   ZRealsZNaturalsrv   rv   rv   rw   test_Complement  s    rx  c                   C   s*   t ttddtdddddks&J d S )Nr   r   r   Fr   z3SymmetricDifference(Interval(2, 3), Interval(3, 4)))r   rE   rD   rv   rv   rv   rw   test_SymmetricDifference  s    ry  c                  C   s0   t d\} }dt| |  }t|dks,J d S )Nza br   z	2*(a + b))r*   r   r   )r   r<  expr1rv   rv   rw   test_UnevaluatedExpr!  s    r{  c                  C   sx   t ddd} t ddd}t ddd}t| d dks8J td| d  dksPJ |d || | }t|d	kstJ d S )
NrG  r   r   rH  rI  r   r   zA[0, 0]z	3*A[0, 0]z(A - B)[0, 0])r;   r   subs)rG  rH  rI  r  rv   rv   rw   test_MatrixElement_printing'  s    r~  c                  C   s|   t ddd} t ddd}t| | |  | dks4J t| | | |  dksPJ t| d dksdJ t| d dksxJ d S )	NrG  r   rH  zA - A*B - Bz-A + A*B - Br   zA**(-1)zA**3)r;   r   )rG  rH  rv   rv   rw   test_MatrixSymbol_printing4  s    r  c                  C   sx   t ddd} td| | }t|dks(J |j| t}t|dksHJ ttdt }| | |}t|dkstJ d S )Nr   Tr   r\  zLambda(_d, sin(_d)).(X.T*X)r   zLambda(x, 1/x).(n*X))r(   r;   r   TZ	applyfuncr2   r   r   )r   r\  exprZlamdarv   rv   rw   test_MatrixExpressions>  s    r  c                   C   s>   t tttfddksJ t ttt ttfddks:J d S )Nr   zSubs(x, x, 1)r   zSubs(x + y, (x, y), (1, 2)))r   r   r   r   rv   rv   rv   rw   test_Subs_printingN  s    r  c                  C   s6   t tttt tf} |  | dfg| gfks2J d S )N))r   g        r  rv   )r5   r+   r   r   Zas_termsr  rv   rv   rw   test_issue_15716S  s    r  c                  C   sX   ddl m} m}m} t| ddks(J t|dddks>J t|dddksTJ d S )Nr   r<   
ZeroMatrix	OneMatrixr   r   r   r   r   )sympy.matricesr<   r  r  r   r  rv   rv   rw   test_str_special_matricesX  s    r  c                   C   s    t tdtddft sJ d S )Nr   r   )r+   r   r   r   rv   rv   rv   rw   test_issue_14567_  s    r  c                   C   s4   t tddgdksJ t tddhdks0J d S )Nr   r   zPartition({1, 2}))r   r   rv   rv   rv   rw   test_issue_21823c  s    r  c                   C   s2   t tttdddtdddddddks.J d S )Nr   Fr   r   r   z
1/(x**2*3))r   r   r"   r   rv   rv   rv   rw   test_issue_22689h  s    r  c                  C   s   dd } | ddksJ | ddks(J | ddks8J | ddksHJ | d	d
ksXJ | ddkshJ | ddksxJ | ddksJ | ddksJ | ddksJ d S )Nc                 S   s   t t| ddS )NFr   )r   r&   )r   rv   rv   rw   r   m  r   z(test_issue_21119_21460.<locals>.<lambda>z4/2z4/-2z4/(-2)z-4/2z-4/-2z-4/(-2)z-2*3/-1z	-2*3/(-1)z	-2*3/-1/2z-2*3/(-1*2)z4/2/1z4/(2*1)z-2/-1/2z	-2/(-1*2)z2*3*4**(-2*3)z2*3/4**(2*3)z2*3*1*4**(-2*3)z2*3*1/4**(2*3)rv   )ssrv   rv   rw   test_issue_21119_21460l  s    r  c                  C   s8   ddl m}  t| ddks J t| ddks4J d S )Nr   Strr   zStr('x'))sympy.core.symbolr  r   rm   r  rv   rv   rw   test_Strz  s    r  c            
      C   s   ddl m} m}m}m} tddd\}}| dd}t|dksBJ |d|}t|dks\J |d	|||g}t|d	ks|J ||d}	t|	d
ksJ d S )Nr   )ManifoldPatchCoordSystemBaseScalarFieldzx yTr   r   r   Prectr   )Zsympy.diffgeomr  r  r  r  r*   r   )
r  r  r  r  r   r   mr   r  r<  rv   rv   rw   test_diffgeom  s    


r  c                   C   s   t tddddksJ t tddddks0J t tddgdddksLJ t tddgddd	kshJ t tg d
dks~J t tg ddksJ t tg ddksJ t tg ddksJ d S )Nr   TrD  z1.00000000000000Fz1.0g       @z$[1.00000000000000, 2.00000000000000]z
[1.0, 2.0])r   z!ImmutableDenseNDimArray([], (0,))r|  z#ImmutableDenseNDimArray([], (0, 0)))r   r   z#ImmutableDenseNDimArray([], (0, 1)))r   r   z#ImmutableDenseNDimArray([], (1, 0)))rl   rg   rv   rv   rv   rw   test_NDimArray  s    r  c                   C   s   t tjdksJ d S )NzQ.even)rl   r   evenrv   rv   rv   rw   test_Predicate  s    r  c                   C   s   t ttdksJ d S )Nz	Q.even(x))rl   r   r  r   rv   rv   rv   rw   test_AppliedPredicate  s    r  c                  C   st   t tdddksJ t tddddt  dfdks:J tddd} td	dd}t t| | tdgd
kspJ d S )NrG  )r   r   r   r   r   r   zA[2, 1/(1 - x), 0]r   r   Nz(M*N)[x, 0])rl   rh   ri   r   r;   )r   r  rv   rv   rw   #test_printing_str_array_expressions  s
    $r  c                  C   s  t d} t d}t| dktd }t| td }t| td }t| |td }t|dksfJ t|dksvJ t|dksJ t|dksJ |jd	ksJ |jd	ksJ |jd	ksJ |jd	ksJ | d	ksJ | d	ksJ | d	ksJ d S )
Nr   r   r   r   zProbability(x > 0)*IzExpectation(x)*IzVariance(x)*IzCovariance(x, y)*IF)	rJ   rH   r<   rG   rI   rF   r   r   Z_eval_is_commutative)r   r   Zz1Zz2Zz3Zz4rv   rv   rw   test_printing_stats  s"    r  N(  Zsympyr   Zsympy.algebras.quaternionr   Zsympy.assumptions.askr   Z!sympy.calculus.accumulationboundsr   Zsympy.combinatorics.partitionsr   Zsympy.concrete.summationsr   r   Zsympy.core.addr	   Zsympy.core.containersr
   r   Zsympy.core.exprr   r   Zsympy.core.functionr   r   r   r   r   Zsympy.core.mulr   Z
sympy.corer   r   r   r   Zsympy.core.numbersr   r   r   r   r   r   r   r   r    r   r!   Zsympy.core.powerr"   Zsympy.core.relationalr#   r$   r%   Zsympy.core.singletonr&   r  r'   r(   r)   r*   Z(sympy.functions.combinatorial.factorialsr+   r,   r-   Z$sympy.functions.elementary.complexesr.   Z&sympy.functions.elementary.exponentialr/   Z(sympy.functions.elementary.miscellaneousr0   Z(sympy.functions.elementary.trigonometricr1   r2   Z'sympy.functions.special.delta_functionsr3   Z&sympy.functions.special.zeta_functionsr4   Zsympy.integrals.integralsr5   Zsympy.logic.boolalgr6   r7   r8   r9   Zsympy.matrices.denser:   Z"sympy.matrices.expressions.matexprr;   Zsympy.matrices.expressionsr<   Z sympy.matrices.expressions.slicer=   r  r>   Zsympy.polys.polytoolsr?   Zsympy.series.limitsr@   Zsympy.series.orderrA   Zsympy.sets.setsrB   rC   rD   rE   rZ  rF   rG   rH   rI   Zsympy.stats.rvrJ   Zsympy.externalrK   Zsympy.physics.control.ltirL   rM   rN   rO   rP   rQ   rR   rS   Zsympy.physics.unitsrT   rU   Zsympy.polysrV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   Zsympy.geometryrb   rc   rd   re   rf   Zsympy.tensorrg   Z0sympy.tensor.array.expressions.array_expressionsrh   ri   Zsympy.testing.pytestrj   rk   Zsympy.printingrl   rm   rn   Zsympy.physics.quantum.tracero   r   r   r   r   r   rp   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r   r!  r%  r'  r(  r)  r*  r+  r,  r-  r/  r1  r2  r9  r:  r=  r>  r?  rB  rC  rE  rJ  rL  rN  rR  r^  r`  ra  rc  re  rk  rl  rm  ro  rq  ru  rv  rw  rx  ry  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rv   rv   rv   rw   <module>   s>  ,(8	
	0A*
9		
		












