o
    ohy                     @   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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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   )_printargsselfprinter rx   q/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/printing/tests/test_str.py	_sympystr<      %test_printmethod.<locals>.R._sympystrN__name__
__module____qualname__rz   rx   rx   rx   ry   R;       r   zfoo(x)c                   @   rq   )rr   c                 S      dS )Nfoorx   ru   rx   rx   ry   rz   A   s   r|   Nr}   rx   rx   rx   ry   r   @   r   r   )r.   rl   x)r   rx   rx   ry   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   rx   rx   rx   ry   test_AbsF   s   r   c                   C   sf  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 t ttt tddtt tdddddksJ 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s1J 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   seriestrx   rx   rx   ry   test_AddL   s&   0,,$ 2,<r   c                   C      t tdksJ d S )Nr   )r   r   rx   rx   rx   ry   test_Catalanb   r{   r   c                   C   r   )Nr    )r   r    rx   rx   rx   ry   test_ComplexInfinityf   r{   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   rx   rx   rx   ry   test_Derivativej   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   rl   r   rx   rx   rx   ry   	test_dictq   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   rl   r   rx   rx   rx   ry   	test_Dictw   s   8"&r   c                   C   s(   t tdksJ t tt dksJ d S )N_dz_d + x)r   rp   r   rx   rx   rx   ry   
test_Dummy~      r   c                   C   r   )Nr   )r   r   rx   rx   rx   ry   test_EulerGamma   r{   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   r!   r/   r   rx   rx   rx   ry   test_Exp   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integerr    r   1r   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   rx   rx   ry   test_factorial   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   fxr   rx   rx   ry   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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   rx   rx   rx   ry   test_Geometry   s    ($r   c                   C   r   )Nr   )r   r   rx   rx   rx   ry   test_GoldenRatio   r{   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   r3   r   r&   Halfrx   rx   rx   ry   test_Heaviside   s   0r   c                   C   r   )Nr   )r   r   rx   rx   rx   ry   test_TribonacciConstant   r{   r   c                   C   r   )Nr   )r   r   rx   rx   rx   ry   test_ImaginaryUnit   r{   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   rx   rx   rx   ry   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   25)r   r   rx   rx   rx   ry   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   rx   rx   rx   ry   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&   NegativeInfinityInfinityrangelenrD   r   )r   ijlrivalrx   rx   ry   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   r   )r   rx   rx   ry   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)rx   r   zLambda((), 1)zLambda((), x)zLambda((x, y), x + y)zLambda(((x, y),), x + y))r   r   rp   r   r   rx   rx   rx   ry   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, dir='+')r   r   zLimit(1/x, x, 0, dir='+')-)dirzLimit(sin(x)/x, x, y, dir='-'))r   r@   r2   r   r   rx   rx   rx   ry   
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   rx   rx   rx   ry   	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   r   )Nr   rx   )r   r   rx   rx   ry   <lambda>  s    z!test_Matrix_str.<locals>.<lambda>zMatrix(0, 1, []))r:   r   r   r   rl   Mrx   rx   ry   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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 ddl	m
}  | d' t tttdtdttdttdtdd%ksvJ W d    n	1 sw   Y  G d&d' d't}G d(d) d)t}| }| }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.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                   @      e Zd ZdZdS )ztest_Mul.<locals>.CustomClass1TNr~   r   r   is_commutativerx   rx   rx   ry   CustomClass1,      r   c                   @   r   )ztest_Mul.<locals>.CustomClass2TNr   rx   rx   rx   ry   CustomClass2/  r   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   cc1cc2rx   rx   ry   test_Mul  sR    $*(
*
@"r   c                   C   r   )Nr   )r   r   rx   rx   rx   ry   test_NaN;  r{   r   c                   C   s   t t dks	J d S )Nz-oo)r   r   rx   rx   rx   ry   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   rA   r   r   r   rx   rx   rx   ry   
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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 qt  | j}d| _t| g ddksJ || _W d    d S 1 sw   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)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))sympy.combinatoricsr   r   rl   rk   print_cyclic)r   r   psold_print_cyclicrx   rx   ry   test_Permutation_CycleN  s   









"r   c                   C   r   )Nr   )r   r   rx   rx   rx   ry   test_Pi  r{   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   rV   r   r   r   r   r   rx   rx   rx   ry   	test_Poly  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,zr   z4Polynomial ring in x, y, z over ZZ[t] with lex order)r   rZ   r\   r`   r]   ra   rx   rx   rx   ry   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   r[   r\   r`   r]   ra   rx   rx   rx   ry   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))rZ   r\   r^   r   r]   r   )	RuvuvRxyzr   r   r   Rx_zzixzrx   rx   ry   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)r[   r\   r_   r   )Fuvr  r  Fxyztr   r   r   r   r  r  r   rx   rx   ry   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   r^   rx   rx   rx   ry   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   r_   r]   rx   rx   rx   ry   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   r0   r"   r&   rx   rx   rx   ry   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   r0   r   r   rx   rx   rx   ry   	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/2727z-25z1.25z5/4z-2.6e-2z-13/500z25/7z-123/569z0.1[23])rationalz61/495z5.1[666]z31/6z	-5.1[666]z-31/6z0.[9]r   z-0.[9]r   $   r   {   r   123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@   )n1n2n3n4n5n7n8r   rx   rx   ry   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   )dpsz
1.23456789	   z1.234567890123456789   z3.14r   z3.14159265358979A   zB3.1415926535897932384626433832795028841971693993751058209749445923r   z0.0i  r   r   z-0.e+88100Fr   )	full_precminmaxz1.0e+2z100.0z0.1z0.099)r3  r4  z9.90000000000000e-2)r   r   r   evalfroundr   rl   rx   rx   rx   ry   
test_Floate  s    
(r7  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   r#   r%   rx   rx   rx   ry   test_Relationalw  s
    $r9  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   nerx   rx   rx   ry   test_AppliedBinaryRelation     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   rx   rx   rx   ry   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   rX   r   r   )r   rx   rx   ry   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   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   )Frx   rx   ry   test_GroebnerBasis  s   0rC  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}))rl   set	frozensetr   rx   rx   rx   ry   test_set  s    rF  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   rx   rx   ry   test_SparseMatrix  s   rG  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   r1   r   r   r   r   rx   rx   rx   ry   test_Sum  s   $"rI  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   erx   rx   ry   test_Symbol  s   rL  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   rx   rx   rx   ry   
test_tuple  s   (<rM  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)))rL   r   r   r   r   r   r   rM   tf1tf2tf3rx   rx   ry   test_Series_str     $(rS  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))))))rL   r   r   r   r   rP   r   rQ   rP  rQ  tfm_1tfm_2rx   rx   ry   test_MIMOSeries_str     $rY  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))rL   r   r   r   rO  rx   rx   ry   test_TransferFunction_str  s   r[  c                  C   rN  )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   rO  rx   rx   ry   test_Parallel_str  rT  r\  c                  C   rU  )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   rV  rx   rx   ry   test_MIMOParallel_str  rZ  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))rL   r   r   r   r   r   r   rO   rO  rx   rx   ry   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))rL   r   r   r   rP   r   rS   rV  rx   rx   ry   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)))))rL   r   r   r   r   r   r   rP   rO  rx   rx   ry   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   )qrx   rx   ry   test_Quaternion_str_printer$  s   rb  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)abbrevr   JrT   rU   )rl   rT   rU   r   rx   rx   rx   ry   test_Quantity_str-  s   re  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   rx   rx   ry   test_wild_str4  s   rf  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   w__w___r   z2**w_ + w__/w___zsqrt(w___)*sin(w_)*cos(w__))	!sympy.utilities.matchpy_connectorrg  rh  ri  rK   r   r2   r1   r0   )rg  rh  ri  rj  wdwpwsrx   rx   ry   test_wild_matchpy?  s   (rq  c                   C   s   t tddks
J d S )Nr   zzeta(3))r   r4   rx   rx   rx   ry   	test_zetaS     rr  c                  C   s(   t t } t| }t| }||ksJ d S N)r   r   r   )rK  r   brx   rx   ry   test_issue_3101W  s   rv  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   rJ  rx   rx   ry   test_issue_3103^  s   rw  c                  C   s"   t ttd } t| dksJ d S )Nr   zIntegral(x, x) + 1)r5   r   r   rJ  rx   rx   ry   test_issue_4021e  s   rx  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   ru  cz[a, b, c, x]z['a', 'b', 'c', x])rl   rm   r   rJ  rx   rx   ry   test_sstrreprj  s
   r{  c                   C   s   t tt dks
J d S )Nr   )rl   r   r   rx   rx   rx   ry   test_infinitys  rs  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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r2  z0.300000000000000r?  F)z0.300000000000000*xzx*0.300000000000000)z0.3*xzx*0.3)rl   r&   r   rx   rx   rx   ry   test_full_precw  s    r~  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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Crx   rx   ry   test_noncommutative  s   r  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    32)rn   emptyPrinterr   r   )str_printerrx   rx   ry   test_empty_printer  s   r  c                   C   s   t tdd  d S )Nc                   S   s   t tdddS )Nr   garbage)method)rl   r&   rx   rx   rx   ry   r         ztest_settings.<locals>.<lambda>)rj   	TypeErrorrx   rx   rx   ry   test_settings  s   r  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wherex1r   zDomain: (0 < x1) & (x1 < oo)d1r   r   zDomain: Eq(d1, 5) | Eq(d1, 6)r   ru  z1Domain: (0 <= a) & (0 <= b) & (a < oo) & (b < oo))	sympy.statsr  r  r  r  r  r   r   domain)	r  r  r  r  r  XDr  r  rx   rx   ry   test_RandomDomain  s   


 r  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   rC   r   r   r   rx   rx   rx   ry   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   rx   rx   rx   ry   test_Partition  s   "r  c                   C      t tjdks	J d S )NUniversalSet)r   r&   r  rx   rx   rx   ry   test_UniversalSet  r   r  c                  C   sh   t tt} t ttf }t| ttt  tttt  ks!J t|tt ttt ks2J d S rt  )r]   
frac_fieldr   r   rl   convert)rB  r   rx   rx   ry   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Categoryr  r  r   KzObject("A")z,NamedMorphism(Object("A"), Object("B"), "f")zIdentityMorphism(Object("A"))zCategory("K"))sympy.categoriesr  r  r  r  r   )	r  r  r  r  r  r  r   id_Ar  rx   rx   ry   test_categories  s   r  c                  C   s0   t ddd\} }t| | }t|dksJ d S )NzA BFr  zTr(A*B))r*   ro   r   )r  r  r   rx   rx   ry   test_Tr  s   r  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   rx   rx   rx   ry   test_issue_6387      r  c                  C   s   t dddt ddd} }td| |  dksJ tt|  dks#J tt |  dks.J tdt |  dks:J tdt  |  d	ksGJ ttt| |t| |d
ksXJ 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  r  rx   rx   ry   test_MatMul_MatAdd  s   &r  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   r  r  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  r  r  rx   rx   ry   test_MatrixSlice  s8   (,    $$$$$&&&&$$ "&*r  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   r8   reprrl   r7   rx   rx   rx   ry   test_true_false  s   26r  c                   C   s   t tttdksJ d S )NzEquivalent(x, y))r   r6   r   r   rx   rx   rx   ry   test_Equivalent     r  c                   C   s   t tttdddksJ d S )NFr   zx ^ y)r   r9   r   r   rx   rx   rx   ry   test_Xor     r  c                   C   s   t ttjtjdksJ d S )NzComplement(Reals, Naturals))r   rB   r&   RealsNaturalsrx   rx   rx   ry   test_Complement  r  r  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   rx   rx   rx   ry   test_SymmetricDifference  s   r  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   ru  expr1rx   rx   ry   test_UnevaluatedExpr  s   r  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 )
Nr  r   r   r  r  )r   r   zA[0, 0]z	3*A[0, 0]z(A - B)[0, 0])r;   r   subs)r  r  r  rB  rx   rx   ry   test_MatrixElement_printing$  s   r  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 )	Nr  r   r  zA - A*B - Bz-A + A*B - Br   zA**(-1)zA**3)r;   r   )r  r  rx   rx   ry   test_MatrixSymbol_printing1  s   r  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   r  zLambda(_d, sin(_d)).(X.T*X)r   zLambda(x, 1/x).(n*X))r(   r;   r   T	applyfuncr2   r   r   )r   r  exprlamdarx   rx   ry   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   rx   rx   rx   ry   test_Subs_printingK  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  rx   )r5   r+   r   r   as_termsrJ  rx   rx   ry   test_issue_15716P  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   r<   
ZeroMatrix	OneMatrixr   r   r   r   r   )sympy.matricesr<   r  r  r   r  rx   rx   ry   test_str_special_matricesU  s   r  c                   C   s    t tdtddft sJ d S )Nr   r   )r+   r   r   r   rx   rx   rx   ry   test_issue_14567\  r  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   rx   rx   rx   ry   test_issue_21823`  r=  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   rx   rx   rx   ry   test_issue_22689e  s   2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   rx   rx   ry   r   j  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)rx   )ssrx   rx   ry   test_issue_21119_21460i  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'))sympy.core.symbolr  r   rm   r  rx   rx   ry   test_Strw  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   )sympy.diffgeomr  r  r  r  r*   r   )
r  r  r  r  r   r   mr   r  ru  rx   rx   ry   test_diffgeom}  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   Tr}  z1.00000000000000Fz1.0g       @z$[1.00000000000000, 2.00000000000000]z
[1.0, 2.0])rl   rg   rx   rx   rx   ry   test_NDimArray  s    r  c                   C   r  )NzQ.even)rl   r   evenrx   rx   rx   ry   test_Predicate  r   r  c                   C   s   t ttdksJ d S )Nz	Q.even(x))rl   r   r  r   rx   rx   rx   ry   test_AppliedPredicate  r  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s8J d S )Nr  )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  rx   rx   ry   #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s3J t|dks;J t|dksCJ t|dksKJ |jd	ksRJ |jd	ksYJ |jd	ks`J |jd	ksgJ | d	ksoJ | d	kswJ | d	ksJ 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   _eval_is_commutative)r   r   z1z2z3z4rx   rx   ry   test_printing_stats  s"   r  N(  sympyr   sympy.algebras.quaternionr   sympy.assumptions.askr   !sympy.calculus.accumulationboundsr   sympy.combinatorics.partitionsr   sympy.concrete.summationsr   r   sympy.core.addr	   sympy.core.containersr
   r   sympy.core.exprr   r   sympy.core.functionr   r   r   r   r   sympy.core.mulr   
sympy.corer   r   r   r   sympy.core.numbersr   r   r   r   r   r   r   r   r    r   r!   sympy.core.powerr"   sympy.core.relationalr#   r$   r%   sympy.core.singletonr&   r  r'   r(   r)   r*   (sympy.functions.combinatorial.factorialsr+   r,   r-   $sympy.functions.elementary.complexesr.   &sympy.functions.elementary.exponentialr/   (sympy.functions.elementary.miscellaneousr0   (sympy.functions.elementary.trigonometricr1   r2   'sympy.functions.special.delta_functionsr3   &sympy.functions.special.zeta_functionsr4   sympy.integrals.integralsr5   sympy.logic.boolalgr6   r7   r8   r9   sympy.matrices.denser:   "sympy.matrices.expressions.matexprr;   sympy.matrices.expressionsr<    sympy.matrices.expressions.slicer=   r  r>   sympy.polys.polytoolsr?   sympy.series.limitsr@   sympy.series.orderrA   sympy.sets.setsrB   rC   rD   rE   r  rF   rG   rH   rI   sympy.stats.rvrJ   sympy.externalrK   sympy.physics.control.ltirL   rM   rN   rO   rP   rQ   rR   rS   sympy.physics.unitsrT   rU   sympy.polysrV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   sympy.geometryrb   rc   rd   re   rf   sympy.tensorrg   0sympy.tensor.array.expressions.array_expressionsrh   ri   sympy.testing.pytestrj   rk   sympy.printingrl   rm   rn   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,  r7  r9  r<  r>  r@  rC  rF  rG  rI  rL  rM  rS  rY  r[  r\  r]  r^  r_  r`  rb  re  rf  rq  rr  rv  rw  rx  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  rx   rx   rx   ry   <module>   s>   ,(8	
	0A*
9		
		





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