o
    8VaN                     @   s~  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> d dl?m@Z@ d dlAmBZBmCZC d dlDmEZE d dlFmGZG d dlHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZP d dlQmRZRmSZS d dlTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z` d d	lambZbmcZcmdZdmeZemfZf d d
lgmhZh d dlimjZjmkZk d dllmmZm d dlnmoZompZpmqZq d dlrmsZs e%d\ZtZuZvZwZxe*dZydd Zzdd Z{dd Z|dd Z}dd Z~dd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 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 ZdS )    )>AddAbsCatalancos
DerivativeE
EulerGammaexp	factorial
factorial2FunctionGoldenRatio	HeavisideTribonacciConstantIIntegerIntegralIntervalLambdaLimitMatrixnanOoopiPowRationalFloatRelSsinSparseMatrixsqrt	summationSumSymbolsymbolsWildWildFunctionzetazooDummyDictTuple	FiniteSetfactorsubfactorialtruefalse
EquivalentXor
ComplementSymmetricDifferenceAccumBoundsUnevaluatedExprEqNe
QuaternionSubsMatrixSymbolMatrixSliceQ)	Partition)ExprMul)_exp_is_pow)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)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s$J d S )Nc                   @      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selfZprinter rn   ?/usr/lib/python3/dist-packages/sympy/printing/tests/test_str.py	_sympystr!      %test_printmethod.<locals>.R._sympystrN__name__
__module____qualname__rp   rn   rn   rn   ro   R        rw   zfoo(x)c                   @   ri   )rj   c                 S      dS )Nfoorn   rl   rn   rn   ro   rp   &   s   rr   Nrs   rn   rn   rn   ro   rw   %   rx   rz   )r   rd   x)rw   rn   rn   ro   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s$J d S )NzAbs(x)      1/6)strr   r{   r   rn   rn   rn   ro   test_Abs+   s   r   c                   C   s  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s-J t tdddddd
ks;J t dt dksEJ t dt t tt  td  td  dks]J t dt td d  td d  dkssJ t dt dtd   d dt  dksJ t tt dksJ t dt dksJ t td dksJ t tt t t dksJ 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 d S )Nzx + yr}   x + 1   zx**2 + xr   FZ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))r   r{   yr   zwr    Zseriesrn   rn   rn   ro   test_Add1   s    0,,$ "r   c                   C      t tdksJ d S )Nr   )r   r   rn   rn   rn   ro   test_CatalanD   rq   r   c                   C   r   )Nr*   )r   r*   rn   rn   rn   ro   test_ComplexInfinityH   rq   r   c                   C   s\   t tttdksJ t ttd tdddksJ t ttd t ttdddks,J d S )NzDerivative(x, y)r   Fr   zDerivative(x**2, x)zDerivative(x**2/y, x, y))r   r   r{   r   rn   rn   rn   ro   test_DerivativeL   s   r   c                   C   st   t ddt itddt i  krdksJ  J t td tt ddv s)J ttd tt ddks8J 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{   rd   r   rn   rn   rn   ro   	test_dictS   s   4"r   c                   C   s   t tddt itddt i  krdksJ  J t ttd tt ddv s-J tttd tt ddks>J d S r   )r   r,   r{   rd   r   rn   rn   rn   ro   	test_DictY   s   8"&r   c                   C   s(   t tdksJ t tt dksJ d S )NZ_dz_d + x)r   rh   r{   rn   rn   rn   ro   
test_Dummy`      r   c                   C   r   )Nr   )r   r   rn   rn   rn   ro   test_EulerGammae   rq   r   c                   C   sR   t tdksJ td t ttdksJ W d    d S 1 s"w   Y  d S )Nr   TzE**x)r   r   rC   r	   r{   rn   rn   rn   ro   test_Expi   s   
"r   c                  C   s  t ddd} ttddksJ ttddksJ ttdd	ks$J tt| d
ks.J ttd|  dks:J ttt| dksFJ ttt| dksRJ ttt| dks^J ttt| dksjJ ttddkstJ tt| dks~J ttd|  dksJ d S )NnTZ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   r0   )r   rn   rn   ro   test_factorialo   s   r   c                  C   sL   t d} | t}td}t| dksJ t|dksJ t|dks$J d S )Nfr   zf(x)w_)r   r{   r(   r   )r   Zfxr   rn   rn   ro   test_Function   s   r   c                   C   s   t tdddksJ t ttddddksJ t ttdddddks(J t ttddtd	d
tdddks=J t ttddtddtddtdd	dksVJ t ttddtddtdddddksmJ t ttdddddddks~J 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)))rd   r[   r\   r^   r_   r]   rn   rn   rn   ro   test_Geometry   s    ($r   c                   C   r   )Nr   )r   r   rn   rn   rn   ro   test_GoldenRatio   rq   r   c                   C   sJ   t ttt tttj  krdksJ  J t ttddks#J d S )NzHeaviside(x)r}   zHeaviside(x, 1))r   r   r{   r   Halfrn   rn   rn   ro   test_Heaviside   s   0r   c                   C   r   )Nr   )r   r   rn   rn   rn   ro   test_TribonacciConstant   rq   r   c                   C   r   )Nr   )r   r   rn   rn   rn   ro   test_ImaginaryUnit   rq   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   rn   rn   rn   ro   test_Infinity   r   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s(J t td	d
ks2J d S )Nr   -1r}   r   r   z-3r   0   Z25)r   r   rn   rn   rn   ro   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   r   r    r{   r   rn   rn   rn   ro   test_Integral      $r   c               	   C   s|   t jddt jf} tt| D ]-}t|d t| D ]!}dD ]}dD ]}t| | | | ||}t t||ks8J q!qqqd S )Nr}   r   )TF)r   ZNegativeInfinityZInfinityrangelenr   r   )r   ijlrZivalrn   rn   ro   test_Interval   s   r   c                  C   s<   t ddd} ttd| dksJ ttdddksJ d S )NaTrealr   zAccumBounds(0, a)r}   zAccumBounds(0, 1))r%   r   r7   )r   rn   rn   ro   test_AccumBounds   s   r   c                   C   s   t tttd dksJ t tdddksJ t tdtdks#J t tttftt dks2J t tttfftt dksBJ d S )	Nr   zLambda(_d, _d**2)rn   r}   zLambda((), 1)zLambda((), x)zLambda((x, y), x + y)zLambda(((x, y),), x + y))r   r   rh   r{   r   rn   rn   rn   ro   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s0J d S )NzLimit(sin(x)/x, x, y)r}   r   zLimit(1/x, x, 0)-)dirzLimit(sin(x)/x, x, y, dir='-'))r   r   r    r{   r   rn   rn   rn   ro   
test_Limit   s    r   c                   C   s   t tgttg  krdksJ  J t td tt d gttd tt d g  kr3dks6J  J t td tt ggttd tt gg  krSdksVJ  J d S )Nz[x]r   r}   z[x**2, x*y + 1]z[x**2, [x + y]]r   rn   rn   rn   ro   	test_list   s   (DD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r3dks6J  J t ddgg} t| t|   krLdksOJ  J t  } t| t|   kradksdJ  J t ddd	d
 } t| t|   kr{dks~J  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   ry   )Nr   rn   )r   r   rn   rn   ro   <lambda>   s    z!test_Matrix_str.<locals>.<lambda>zMatrix(0, 1, []))r   r{   r   r   rd   Mrn   rn   ro   test_Matrix_str   s   $$$(r   c                  C   sl  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s:J t d	t d d
ksFJ t dt dksPJ t dt dksZJ t tdddddksgJ t tdddddkstJ t tdddddksJ t tddddddksJ t tdddddksJ t tdtjdddksJ t tddtjdddksJ 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sJ t td	tttttdddddddd#ks7J t tttdt dddddd$ksLJ G d%d& d&t	} G d'd( d(t	}|  }| }t td| d)ksoJ 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)c                   @      e Zd ZdZdS )ztest_Mul.<locals>.CustomClass1TNrt   ru   rv   Zis_commutativern   rn   rn   ro   CustomClass1
      r   c                   @   r   )ztest_Mul.<locals>.CustomClass2TNr   rn   rn   rn   ro   CustomClass2  r   r   z2*CustomClass1()z1.5z1.5*CustomClass1()z2*CustomClass2()z2*CustomClass1()*CustomClass2())r   r{   r   r   rB   r   r   r   r   rA   r   )r   r   Zcc1Zcc2rn   rn   ro   test_Mul   sJ    $*(
*"r   c                   C   r   )Nr   )r   r   rn   rn   rn   ro   test_NaN  rq   r   c                   C   s   t t dks	J d S )Nz-oo)r   r   rn   rn   rn   ro   test_NegativeInfinity     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s"J t tttdks-J t tttdfdks:J t ttttfdksGJ t ttttdksSJ t ttttdks_J t ttttfttfdksoJ 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   r   r{   r   r   rn   rn   rn   ro   
test_Order   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s>J q2| 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 qr| 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sJ qd 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   rd   )r   r   psrn   rn   ro   test_Permutation_Cycle,  s   









r   c                   C   r   )Nr   )r   r   rn   rn   rn   ro   test_Pig  rq   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s!J t tdt d tdks0J t tdt d tdks?J t td	td
ksJJ t tt tdksVJ t tdt d tdkseJ t tdt d tdkstJ t ttd tdksJ t tdt td  tdksJ t tddt  dt dksJ t ttd t dksJ 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sJ t ttd tt  tdksJ t ttd tt  tdksJ t tt t t tt  d tttdks6J t tt td  td  t dt td   dt t  d tttd ks_J t ttd d tdd!d"ksqJ t tdtd  dt  d# td$d!d%ksJ 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   rO   r{   r   r   r   r   rn   rn   rn   ro   	test_Polyk  sN   ""$$&
F
$4r   c                   C   \   t tdttd dksJ t tdttd dksJ t tdtd td dks,J 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,ztz4Polynomial ring in x, y, z over ZZ[t] with lex order)r   rS   rU   rY   rV   rZ   rn   rn   rn   ro   test_PolyRing     $r   c                   C   r   )	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   rT   rU   rY   rV   rZ   rn   rn   rn   ro   test_FracField  r   r   c            	      C   s,  t dt\} }}t d| \}}}}t dt\}}t|| dks"J t|d dks,J t|d dks6J t|d d	ks@J t|d
 dksJJ t|tdd dksWJ t|d d| |  d |d  | | d dkssJ t|d d| |  d |d  | |d |  dksJ t|d d| |  d |d  | |d |  d dksJ t|d  d| |  d |d  | |d |  d dksJ t|d | d  | d| |  d dksJ t|d | d  | d| |  d dksJ tdt | d dksJ d S )Nu,vr   r{   r   r}   x - 1r   r   x**2r   x**(-2)zx**(1/2)r   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))rS   rU   rW   r   rV   r   )	ZRuvuvZRxyzr{   r   r   Rx_zzixzrn   rn   ro   test_PolyElement  s    8<@B24"r   c                  C   s4  t dt\} }}t d| \}}}}}t dt\}}	tdd}
t|| dks(J t|d dks2J t|d dks<J t|d	 d
ksFJ t|| dksPJ t|| | dks\J t|||  dkshJ t|| ||  dksvJ t|d | dksJ t|d | dksJ t| d | dksJ t|d ||  dksJ t| |d  dksJ t|| |d  dksJ t|d | | d |d | d  dksJ t|d | | d |d | || |  d  dksJ 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)rT   rU   rX   r   )ZFuvr   r   ZFxyztr{   r   r   r   r   r   r   rn   rn   ro   test_FracElement  s,   
0<&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s!J t tdddks,J t tddd	ks7J t tdd
dksBJ t tdddksMJ t tdddksXJ t tdd
dkscJ d S )Nr}   r   r   r   r   r   z-Ir   z2*Ir   z-2*Iz1 + Iz-1 - Iz-1 - 2*I)r   rW   rn   rn   rn   ro   test_GaussianInteger  s   r   c                   C   st   t tdddksJ t ttddddksJ t tdtdddks'J t ttddtddd	ks8J d S )
Nr}   r   r   r   r   z2/3z2*I/3r   z1/2 - 2*I/3)r   rX   rV   rn   rn   rn   ro   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s*J t tt d dks6J t tt d d	ksBJ t tt d
t  dksPJ t ttd
d dks]J t d
ttd
d  dkslJ t tttdksxJ t td dksJ t ttdddddksJ d S )Nr   z1/xr   r   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   r"   r   r   rn   rn   rn   ro   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s"J t dttd  dks0J t ttt dks<J t td d	ksFJ t dtd  d
ksRJ 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   r"   r{   r   rn   rn   rn   ro   	test_sqrt  s   r   c                  C   s0  t dd} t dd}t dd}t dd}t d}t d}t d}t| | dks*J t| | dks4J t|d	ks<J t| | d
ksFJ t| | dksPJ t| | dksZJ t| | dksdJ t|| dksnJ 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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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s#J ttd%ddd&ks0J ttt ddd	ks>J ttt dd'd(ksLJ td)d* t dd* d+ks\J td)d* d t dd* d+ksnJ td)d* d t dd* d+ksJ td)d* d t dd* d,ksJ ttt d-d'd d.ksJ 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sJ tt|t ddd2d3d7ksJ tt||t d8dd2d3d9ksJ 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))	r   r   r   r"   r   rd   r%   r9   r   )Zn1Zn2Zn3Zn4Zn5Zn7Zn8r{   rn   rn   ro   test_Rational  sd   



 $$$ $ "r   c                   C   s:  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s$J t tddks/J t td	d
ks:J t tddksEJ t tddksPJ t td td d ddksdJ ttddddddksrJ ttddddddksJ ttddddddksJ ttdddddksJ d S )Nz1.23r   )Z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   rd   rn   rn   rn   ro   
test_Float=  s    
(r  c                   C   s   t tttddksJ t ttt tddksJ t tttddks&J t ttdttdB d	ks6J t ttdttd@ d
ksFJ 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   r9   r:   rn   rn   rn   ro   test_RelationalO  s
    $r
  c                   C   s4   t tttdksJ t tttdksJ d S )Nz
Q.eq(x, y)z
Q.ne(x, y))r   r?   eqr{   r   nern   rn   rn   ro   test_AppliedBinaryRelationW     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   rP   r{   rn   rn   rn   ro   test_CRootOf\  s   *r  c                  C   s\   t d dt   d } tt| tttdddksJ tt| tttd dddks,J 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   rQ   r   r   )r   rn   rn   ro   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s0J t t| ddd	ks<J d S )
Nz1GroebnerBasis([], x, y, domain='ZZ', order='lex')r   r   r}   rZ   )ZorderzYGroebnerBasis([x**2 - x - 3*y + 1, y**2 - 2*x + y - 1], x, y, domain='ZZ', order='grlex')rY   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   rR   r{   r   )Frn   rn   ro   test_GroebnerBasisi  s   0r  c                   C   s   t t dks	J t t dksJ t dhdksJ t tdgdks&J t h ddks0J t tg dd	ks<J t dttd
 td td hdksOJ t tdttd
 td td gdksdJ 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}))rd   set	frozensetr{   rn   rn   rn   ro   test_sett  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   rd   r   rn   rn   ro   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s(J 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#   r   r   r{   r   r$   rn   rn   rn   ro   test_Sum  s   $"r  c                  C   s8   t tdksJ t tdksJ t} t | dksJ d S )Nr   r{   )r   r   r{   ern   rn   ro   test_Symbol  s   r  c                   C   s   t tfttf  krdksJ  J t tt dt fttt dt f  kr/dks2J  J t tt dt td ffttt dt td ff  krUdksXJ  J d S )Nz(x,)r}   z(x + y, x + 1)r   z(x + y, (x + 1, x**2))r   rn   rn   rn   ro   
test_tuple  s   (<r  c                  C      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s;J tt| ||dksGJ tt| | dksSJ 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)))rE   r{   r   r   r   r   r   rF   tf1tf2Ztf3rn   rn   ro   test_Series_str     $(r"  c                  C   z   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s;J 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))))))rE   r{   r   r   r   rI   r   rJ   r   r!  Ztfm_1Ztfm_2rn   rn   ro   test_MIMOSeries_str     $r&  c                  C   sx   t td td t} t| dksJ t td dt t}t|dks$J t ttd dt  d t}t|dks:J 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))rE   r{   r   r   r  rn   rn   ro   test_TransferFunction_str  s   r(  c                  C   r  )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)))rE   r{   r   r   r   r   r   rG   r  rn   rn   ro   test_Parallel_str  r#  r)  c                  C   r$  )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))))))rE   r{   r   r   r   rI   r   rK   r%  rn   rn   ro   test_MIMOParallel_str  r'  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s=J tt| t ddtddksMJ 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))rE   r{   r   r   r   r   r   rH   r  rn   rn   ro   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s7J tt||ddksCJ 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))rE   r{   r   r   rI   r   rL   r%  rn   rn   ro   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sNJ 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)))))rE   r{   r   r   r   r   r   rI   r  rn   rn   ro   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s1J 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   )qrn   rn   ro   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sJ ttdks$J d S )NT)Zabbrevr   JrM   rN   )rd   rM   rN   r   rn   rn   rn   ro   test_Quantity_str  s   r1  c                  C   s   t d} t| d dksJ ttd|  d dksJ td|  d dks(J td|  d d	ks4J t| d d d
ks@J tdd|   dksLJ 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   rn   rn   ro   test_wild_str  s   r2  c                  C   s   ddl m} m}m} td}|d u rd S | d}|d}|d}t|dks(J t|dks0J t|dks8J t|| d|  dksFJ tt|t| t| d	ksXJ 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  rD   r   r    r   r"   )r3  r4  r5  r6  ZwdZwpZwsrn   rn   ro   test_wild_matchpy  s   (r7  c                   C   s   t tddks
J d S )Nr   zzeta(3))r   r)   rn   rn   rn   ro   	test_zeta+     r8  c                  C   s(   t t } t| }t| }||ksJ d S )N)r{   r   r   )r  r   brn   rn   ro   test_issue_3101/  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)))r"   r{   r   r   r  rn   rn   ro   test_issue_31036  s   r<  c                  C   s"   t ttd } t| dksJ d S )Nr}   zIntegral(x, x) + 1)r   r{   r   r  rn   rn   ro   test_issue_4021=  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s&J d S )Nabcz'abc'r   r:  cz[a, b, c, x]z['a', 'b', 'c', x])rd   re   r{   r  rn   rn   ro   test_sstrreprB  s
   r@  c                   C   s   t tt dks
J d S )Nr   )rd   r   r   rn   rn   rn   ro   test_infinityK  r9  rA  c                   C   s   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s$J t tdt dddv s2J t tdt dddv s@J t tdt dddv sNJ d S )	Nz0.3Tr  z0.300000000000000r  F)z0.300000000000000*xzx*0.300000000000000)z0.3*xzx*0.3)rd   r   r{   rn   rn   rn   ro   test_full_precO  s    rC  c                  C   s   t ddd\} }}t| | |d  dksJ t|d |  | dks%J t| |d  | dks3J tt| dks=J td	t|  d
ksIJ 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&   rd   r"   )ABCrn   rn   ro   test_noncommutativea  s   rH  c                  C   sD   t  } | ddksJ | tt dksJ | ddks J d S )Nrz   zx*y    Z32)rf   ZemptyPrinterr{   r   )Zstr_printerrn   rn   ro   test_empty_printerk  s   rJ  c                   C   s   t tdd  d S )Nc                   S   s   t tdddS )Nr   Zgarbage)method)rd   r   rn   rn   rn   ro   r   s      ztest_settings.<locals>.<lambda>)rc   	TypeErrorrn   rn   rn   ro   test_settingsr  s   rN  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s1J |d
d}|dd}t|t||jdksIJ d S )Nr   )NormalDieExponentialpspacewhereZx1r}   zDomain: (0 < x1) & (x1 < oo)Zd1r~   r   zDomain: Eq(d1, 5) | Eq(d1, 6)r   r:  z1Domain: (0 <= a) & (0 <= b) & (a < oo) & (b < oo))	Zsympy.statsrO  rP  rQ  rR  rS  r   r-   domain)	rO  rP  rQ  rR  rS  XDrE  rF  rn   rn   ro   test_RandomDomainv  s   


 rW  c                   C   s   t ttdd dksJ t ttdd dksJ t ttt td g dks*J 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   r.   r   r{   r   rn   rn   rn   ro   test_FiniteSet  s     rY  c                   C   s"   t ttttthdksJ d S )NzPartition({z}, {x, y}))r   r@   r.   r{   r   r   rn   rn   rn   ro   test_Partition  s   "rZ  c                   C      t tjdks	J d S )NUniversalSet)r   r   r\  rn   rn   rn   ro   test_UniversalSet  r   r]  c                  C   st   ddl m}  | tt}| ttf }t|ttt  tttt  ks'J t|tt ttt ks8J d S )Nr   )rV   )Zsympy.polys.domainsrV   Z
frac_fieldr{   r   rd   Zconvert)rV   r  rw   rn   rn   ro   test_PrettyPoly  s
   *&r^  c            	      C   s   ddl m} m}m}m} | d}| d}|||d}||}|d}t|dks*J t|dks2J t|d	ks:J t|d
ksBJ d S )Nr   )ObjectNamedMorphismIdentityMorphismCategoryrE  rF  r   KzObject("A")z,NamedMorphism(Object("A"), Object("B"), "f")zIdentityMorphism(Object("A"))zCategory("K"))Zsympy.categoriesr_  r`  ra  rb  r   )	r_  r`  ra  rb  rE  rF  r   Zid_Arc  rn   rn   ro   test_categories  s   rd  c                  C   s0   t ddd\} }t| | }t|dksJ d S )NzA BFrD  zTr(A*B))r&   rg   r   )rE  rF  r   rn   rn   ro   test_Tr  s   re  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   rn   rn   rn   ro   test_issue_6387      rf  c                  C   s   ddl m}  | ddd| ddd}}td||  dksJ tt| dks)J tt | dks4J td	t | d
ks@J td	t  | dksMJ d S )Nr   )r=   rU  r   Yz	2*X + 2*YzI*Xz-I*Xr}   z	(1 + I)*Xz
(-1 - I)*X)sympyr=   r   r   )r=   rU  rh  rn   rn   ro   test_MatMul_MatAdd  s   rj  c                  C   sv  t ddd} td| | }tddd}tddd}tt|ddd	ks$J t|ttd
 ttd
 f dks8J t|ttd
 dttd
 df dksNJ t|d ttd f dks^J t|d ttd f dksnJ t|td d tf dks~J t|ttttf dksJ t|ttttttf dksJ t|td ttd tf dksJ 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sJ t|d
dddddf dks-J t|d
dddddf dks@J t|d
dd dksNJ t|d dd
d df d!ks`J t|d dd
ddf d"ksrJ t|dd ddf d#ksJ t|dd
dd
f d$ksJ t|dd
ddd
df d%ksJ t|| dd dd f d&ksJ d S )'Nr   Tr   rU  rh  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   rU  rh  rk  rn   rn   ro   test_MatrixSlice  s8   (,    $$$$$&&&&$$ "&*rl  c                   C   sh   t ttt  krtt  krdksJ  J t ttt  kr/tt  kr/dks2J  J d S )NTrueFalse)r   r1   reprrd   r2   rn   rn   rn   ro   test_true_false  s   26rp  c                   C   s   t tttdksJ d S )NzEquivalent(x, y))r   r3   r   r{   rn   rn   rn   ro   test_Equivalent     rq  c                   C   s   t tttdddksJ d S )NFr   zx ^ y)r   r4   r   r{   rn   rn   rn   ro   test_Xor     rs  c                   C   s   t ttjtjdksJ d S )NzComplement(Reals, Naturals))r   r5   r   ZRealsZNaturalsrn   rn   rn   ro   test_Complement  rt  ru  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   r6   r   rn   rn   rn   ro   test_SymmetricDifference  s   rv  c                  C   s0   t d\} }dt| |  }t|dksJ d S )Nza br   z	2*(a + b))r&   r8   r   )r   r:  Zexpr1rn   rn   ro   test_UnevaluatedExpr  s   rw  c                  C   sx   t ddd} t ddd}t ddd}t| d dksJ td| d  dks(J |d || | }t|d	ks:J d S )
NrE  r}   r   rF  rG  )r   r   zA[0, 0]z	3*A[0, 0]z(A - B)[0, 0])r=   r   Zsubs)rE  rF  rG  r  rn   rn   ro   test_MatrixElement_printing  s   rx  c                  C   s|   t ddd} t ddd}t| | |  | dksJ t| | | |  dks(J t| d dks2J t| d dks<J d S )	NrE  r   rF  zA - A*B - Bz-A + A*B - Br   zA**(-1)zA**3)r=   r   )rE  rF  rn   rn   ro   test_MatrixSymbol_printing
  s   ry  c                  C   sx   t ddd} td| | }t|dksJ |j| t}t|dks$J ttdt }| | |}t|dks:J d S )Nr   Tr   rU  zLambda(_d, sin(_d)).(X.T*X)r}   zLambda(x, 1/x).(n*X))r%   r=   r   TZ	applyfuncr    r   r{   )r   rU  exprZlamdarn   rn   ro   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   rn   rn   rn   ro   test_Subs_printing$  r   r~  c                  C   s6   t tttt tf} |  | dfg| gfksJ d S )N))r   g        r}  rn   )r   r
   r{   r   Zas_termsr  rn   rn   ro   test_issue_15716)  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s*J d S )Nr   Identity
ZeroMatrix	OneMatrixr   r   r   r   r   )Zsympy.matricesr  r  r  r   r  rn   rn   ro   test_str_special_matrices.  s   r  c                   C   s    t tdtddft sJ d S )Nr   r   )r
   r$   r{   r   rn   rn   rn   ro   test_issue_145675  rg  r  c                   C   s4   t tddgdksJ t tddhdksJ d S )Nr}   r   zPartition({1, 2}))r   r@   rn   rn   rn   ro   test_issue_218239  r  r  c                  C   s   dd } | ddksJ | ddksJ | ddksJ | ddks$J | d	d
ks,J | ddks4J | ddks<J | ddksDJ | ddksLJ | ddksTJ d S )Nc                 S   s   t t| ddS )NFr   )r   r   )r{   rn   rn   ro   r   ?  rL  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)rn   )ssrn   rn   ro   test_issue_21119_21460>  s   r  c                  C   s8   ddl m}  t| ddksJ t| ddksJ d S )Nr   Strr{   zStr('x'))Zsympy.core.symbolr  r   re   r  rn   rn   ro   test_StrL  s   r  c            
      C   s   ddl m} m}m}m} tddd\}}| dd}t|dks!J |d|}t|dks.J |d	|||g}t|d	ks>J ||d}	t|	d
ksKJ 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:  rn   rn   ro   test_diffgeomR  s   


r  c                   C   sl   t tddddksJ t tddddksJ t tddgdddks&J t tddgddd	ks4J d S )
Nr   TrB  z1.00000000000000Fz1.0g       @z$[1.00000000000000, 2.00000000000000]z
[1.0, 2.0])rd   r`   rn   rn   rn   ro   test_NDimArray^  s    r  c                   C   r[  )NzQ.even)rd   r?   evenrn   rn   rn   ro   test_Predicated  r   r  c                   C   s   t ttdksJ d S )Nz	Q.even(x))rd   r?   r  r{   rn   rn   rn   ro   test_AppliedPredicateg  rr  r  c                   C   sB   t tdddddksJ t tddddt  dfdksJ d S )NrE  r   r   r   r}   r   zA[2, 1/(1 - x), 0])rd   ra   rb   r{   rn   rn   rn   ro   #test_printing_str_array_expressionsj  s   (r  N)ri  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/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   Zsympy.combinatorics.partitionsr@   Z
sympy.corerA   rB   Zsympy.core.parametersrC   Zsympy.externalrD   Zsympy.physics.control.ltirE   rF   rG   rH   rI   rJ   rK   rL   Zsympy.physics.unitsrM   rN   Zsympy.polysrO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   Zsympy.geometryr[   r\   r]   r^   r_   Zsympy.tensorr`   Z0sympy.tensor.array.expressions.array_expressionsra   rb   Zsympy.testing.pytestrc   Zsympy.printingrd   re   rf   Zsympy.core.tracerg   r{   r   r   r   r   rh   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  r7  r8  r;  r<  r=  r@  rA  rC  rH  rJ  rN  rW  rY  rZ  r]  r^  rd  re  rf  rj  rl  rp  rq  rs  ru  rv  rw  rx  ry  r|  r~  r  r  r  r  r  r  r  r  r  r  r  rn   rn   rn   ro   <module>   s     (8	
	,;*
9		
		

