U
    9%e                     @   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#lambZbmcZcmdZdmeZe d d$lfmgZg d d%lhmiZimjZjmkZkmlZlmmZmmnZnmoZompZp d d&lqmrZrmsZs d d'ltmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZ d d(lmZmZmZmZmZ d d)lmZ d d*lmZmZ d d+lmZmZ d d,lmZmZmZ d d-lmZ e:d.\ZZZZZe7d/Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Zd@dA ZdBdC ZdDdE ZdFdG ZdHdI ZdJdK ZdLdM ZdNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZdZd[ Zd\d] Zd^d_ Zd`da Zdbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Zdndo Zdpdq Zdrds Zdtdu Zdvdw Zdxdy Zdzd{ 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 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Z dd Zdd 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)MatrixSlice)SparseMatrix)factor)Limit)O)
Complement	FiniteSetIntervalSymmetricDifference)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$tG dd dt } t| tdksHt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 rp   \/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/printing/tests/test_str.py	_sympystr9   s    %test_printmethod.<locals>.R._sympystrN__name__
__module____qualname__rr   rp   rp   rp   rq   R8   s   rx   zfoo(x)c                   @   s   e Zd Zdd ZdS )rk   c                 S   s   dS )Nfoorp   rm   rp   rp   rq   rr   >   s    rs   Nrt   rp   rp   rp   rq   rx   =   s   ry   )r.   rf   xAssertionError)rx   rp   rp   rq   test_printmethod7   s    r|   c                   C   sL   t ttdkstt ttdddks.tt ttdddksHtd S )NzAbs(x)      1/6)strr.   rz   r{   r   rp   rp   rp   rq   test_AbsC   s    r   c                   C   sx  t tt dkstt td dks(tt ttd  dks@tt tddddd	ksZtt tdddddd
ksvtt dt dkstt dt t tt  td  td  dkstt dt td d  td d  dkstt dt dtd   d dt  dkstt tt dks*tt dt dks@tt td dksVtt tt t t dksttt tttd  t t  dkstt tdt t t  dkstt tttdddkstt ttt tddtt tdddddkstt ttt t ddt dddks<tt tttt t ddt ddt	 dddkstt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   rz   yr{   r	   zwr2   Zseriestrp   rp   rp   rq   test_AddI   s&    0,.&" 4,r   c                   C   s   t tdkstd S )Nr   )r   r   r{   rp   rp   rp   rq   test_Catalan_   s    r   c                   C   s   t tdkstd S )Nr    )r   r    r{   rp   rp   rp   rq   test_ComplexInfinityc   s    r   c                   C   s\   t tttdkstt ttd tdddks4tt ttd t ttdddksXtd S )NzDerivative(x, y)r   Fr   zDerivative(x**2, x)zDerivative(x**2/y, x, y))r   r   rz   r   r{   rp   rp   rp   rq   test_Derivativeg   s    
   r   c                   C   sr   t ddt itddt i  kr,dks2n tt td tt ddksPtttd tt ddksnt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   rz   rf   r{   r   rp   rp   rp   rq   	test_dictn   s    2r   c                   C   s~   t tddt itddt i  kr0dks6n tt ttd tt ddksXttttd tt ddksztd S r   )r   r
   rz   rf   r{   r   rp   rp   rp   rq   	test_Dictt   s    6"r   c                   C   s(   t tdkstt tt dks$td S )NZ_dz_d + x)r   rj   r{   rz   rp   rp   rp   rq   
test_Dummy{   s    r   c                   C   s   t tdkstd S )Nr   )r   r   r{   rp   rp   rp   rq   test_EulerGamma   s    r   c                	   C   s<   t tdksttd t ttdks.tW 5 Q R X d S )Nr   TzE**x)r   r   r{   r!   r/   rz   rp   rp   rp   rq   test_Exp   s    
r   c                  C   s  t ddd} ttddks tttddks4tttdd	ksHttt| d
ks\tttd|  dksttttt| dkstttt| dkstttt| dkstttt| dkstttddksttt| dkstttd|  dkst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-   )r   rp   rp   rq   test_factorial   s    r   c                  C   sL   t d} | t}td}t| dks(tt|dks8tt|dksHtd S )Nfr   zf(x)w_)r   rz   r   r   r{   )r   Zfxr   rp   rp   rq   test_Function   s    r   c                   C   s   t tdddkstt ttddddks2tt ttdddddksPtt ttddtd	d
tdddksztt ttddtddtddtdd	dkstt ttddtddtdddddkstt ttdddddddkst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)))rf   r\   r{   r]   r_   r`   r^   rp   rp   rp   rq   test_Geometry   s     ($r   c                   C   s   t tdkstd S )Nr   )r   r   r{   rp   rp   rp   rq   test_GoldenRatio   s    r   c                   C   sH   t ttt tttj  kr(dks.n tt ttddksDtd S )NzHeaviside(x)r}   zHeaviside(x, 1))r   r3   rz   r&   Halfr{   rp   rp   rp   rq   test_Heaviside   s    .r   c                   C   s   t tdkstd S )Nr   )r   r   r{   rp   rp   rp   rq   test_TribonacciConstant   s    r   c                   C   s   t tdkstd S )Nr   )r   r   r{   rp   rp   rp   rq   test_ImaginaryUnit   s    r   c                   C   s(   t tdkstt tt dks$td S )Nr   oo*I)r   r   r{   r   rp   rp   rp   rq   test_Infinity   s    r   c                   C   sh   t tddkstt tddks(tt tddks<tt tddksPtt td	d
ksdtd S )Nr   -1r}   r   r   z-3r   0   Z25)r   r   r{   rp   rp   rp   rq   test_Integer   s
    r   c                   C   s>   t ttttdkstt ttttddfdks:td S )NzIntegral(sin(x), y)r   r}   zIntegral(sin(x), (y, 0, 1)))r   r5   r2   rz   r   r{   rp   rp   rp   rq   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sBtqBq:q2qd S )Nr}   r   )TF)r&   NegativeInfinityInfinityrangelenrC   r   r{   )r   ijlrZivalrp   rp   rq   test_Interval   s    r   c                  C   s<   t ddd} ttd| dks"tttdddks8td S )NaTrealr   zAccumBounds(0, a)r}   zAccumBounds(0, 1))r(   r   r   r{   )r   rp   rp   rq   test_AccumBounds   s    r   c                   C   s   t tttd dkstt tdddks0tt tdtdksFtt tttftt dksdtt tttfftt dkstd S )	Nr   zLambda(_d, _d**2)rp   r}   zLambda((), 1)zLambda((), x)zLambda((x, y), x + y)zLambda(((x, y),), x + y))r   r   rj   r{   rz   r   rp   rp   rp   rq   test_Lambda   s
    r   c                   C   sd   t tttt ttdks tt tdt tddks<tt tttt ttdddks`t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   rz   r   r{   rp   rp   rp   rq   
test_Limit   s     r   c                   C   s   t tgttg  kr dks&n tt td tt d gttd tt d g  krbdkshn tt td tt ggttd tt gg  krdksn td S )Nz[x]r   r}   z[x**2, x*y + 1]z[x**2, [x + y]]r   rp   rp   rp   rq   	test_list   s    &Br   c                  C   s   t td dgttt gg} t| dks,tt| dks<tt dgg} t| t|   krddksjn tt ddgg} t| t|   krdksn tt  } t| t|   krdksn tt ddd	d
 } t| t|   krdksn t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   rp   )r   r   rp   rp   rq   <lambda>      z!test_Matrix_str.<locals>.<lambda>zMatrix(0, 1, []))r:   rz   r   r   r{   rf   Mrp   rp   rq   test_Matrix_str   s    """r   c                  C   s  t tt dkstt tt dks(tt tt t dks@tt td td  dks\tt dt d dksttt d	t d d
kstt dt dkstt dt dkstt tdddddkstt tdddddkstt tdddddkstt tddddddks"tt tdddddks>tt tdtjdddks\tt tddtjdddks|tt tddddtdddkstt tdddddkstt tdddddkstt tdddddttdddkstt tddddt dttdddks&tt ttddtd d!ddd"ksNtt td	tt	tttdddddddd#kstt ttt	dt dddddd$kstddl
m}  | dD t tt	tdtdttdttdtdd%kstW 5 Q R X G d&d' d't}G d(d) d)t}| }| }t td| d*ksNtt |td d*kshtt |td+ d,kstt |td d-kstt |td | d.kstt |td | d.kst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ru   rv   rw   Zis_commutativerp   rp   rp   rq   CustomClass1)  s   r   c                   @   s   e Zd ZdZdS )ztest_Mul.<locals>.CustomClass2TNr   rp   rp   rp   rq   CustomClass2,  s   r   z2*CustomClass1()z1.5z1.5*CustomClass1()z2*CustomClass2()z2*CustomClass1()*CustomClass2())r   rz   r   r{   r   r   r&   r   r   r"   sympy.core.parametersr   r   r	   r   r   )r   r   r   Zcc1Zcc2rp   rp   rq   test_Mul  sP     "&*(
*
Hr   c                   C   s   t tdkstd S )Nr   )r   r   r{   rp   rp   rp   rq   test_NaN8  s    r   c                   C   s   t t dkstd S )Nz-oo)r   r   r{   rp   rp   rp   rq   test_NegativeInfinity<  s    r   c                   C   s   t ttdkstt ttd dks,tt ttt dksDtt tttdksZtt tttdfdksttt ttttfdkstt ttttdkstt ttttdkstt ttttfttfdkst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@   rz   r{   r   r   rp   rp   rp   rq   
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sdtqd| g df| g dddf| g dddf| g dddf| dddgdf| ddddddgdf| ddddddgdddffD ]\}}t|dd|kstq| g df| g dddf| g dddf| g dddf| dddgdf| ddddddgdf| ddddddgdddf| ddddddgddd ffD ]\}}t||kstqt 4 | j}d| _t| dddgdkst|| _W 5 Q R X 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)zPermutation([1, 0, 2])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)z(9)(2 3))Zsympy.combinatoricsr   r   rf   r{   re   Zprint_cyclic)r   r   psZold_print_cyclicrp   rp   rq   test_Permutation_CycleK  s    





r   c                   C   s   t tdkstd S )Nr   )r   r   r{   rp   rp   rp   rq   test_Pi  s    r   c                   C   s&  t tdtdkstt tdtdks,tt tttdksBtt tdt d tdks`tt tdt d tdks~tt td	td
kstt tt tdkstt tdt d tdkstt tdt d tdkstt ttd tdkstt tdt td  tdks(tt tddt  dt dksLtt ttd t dksjtt ttt d tt dddkstt ttd d td dddkstt ttd d t tdkstt ttd d t tdkstt ttd tt  tdks&tt ttd tt  tdksJtt tt t t tt  d tttdks|tt tt td  td  t dt td   dt t  d tttd kstt ttd d tdd!d"kstt tdtd  dt  d# td$d!d%ks"t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   rP   rz   r{   r   r   r   r   rp   rp   rp   rq   	test_Poly  sN    $$



$$&
F
$r   c                   C   s\   t tdttd dkstt tdttd dks8tt tdtd td dksXtd S )	Nrz   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   rT   rV   rZ   r{   rW   r[   rp   rp   rp   rq   test_PolyRing  s    r   c                   C   s\   t tdttd dkstt tdttd dks8tt tdtd td dksXtd S )	Nrz   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   rU   rV   rZ   r{   rW   r[   rp   rp   rp   rq   test_FracField  s    r   c            	      C   s4  t dt\} }}t d| \}}}}t dt\}}t|| dksDtt|d dksXtt|d dksltt|d d	kstt|d
 dkstt|tdd dkstt|d d| |  d |d  | | d dkstt|d d| |  d |d  | |d |  dks$tt|d d| |  d |d  | |d |  d dksftt|d  d| |  d |d  | |d |  d dkstt|d | d  | d| |  d dkstt|d | d  | d| |  d dksttdt | d dks0td S )Nu,vr   rz   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))rT   rV   rX   r   r{   rW   r   )	ZRuvuvZRxyzrz   r   r   Rx_zzixzrp   rp   rq   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sPtt|d dksdtt|d dksxtt|d	 d
kstt|| dkstt|| | dkstt|||  dkstt|| ||  dkstt|d | dkstt|d | dks tt| d | dks<tt|d ||  dksZtt| |d  dksvtt|| |d  dkstt|d | | d |d | d  dkstt|d | | d |d | || |  d  dksttd|
 |	 dksttd|
 |	 |
 |	 dks@td S )Nr   zx,y,z,trz   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)rU   rV   rY   r   r{   )ZFuvr   r   ZFxyztrz   r   r   r   r   r   r   rp   rp   rq   test_FracElement  s,    
2>r   c                   C   s   t tdddkstt tdddks,tt tdddksBtt tdddksXtt tddd	ksntt tdd
dkstt tdddkstt tdddkstt tdd
dkstd S )Nr}   r   r   r   r   r   z-Ir   z2*Ir   z-2*Iz1 + Iz-1 - Iz-1 - 2*I)r   rX   r{   rp   rp   rp   rq   test_GaussianInteger  s    r   c                   C   st   t tdddkstt ttddddks2tt tdtdddksNtt ttddtddd	ksptd S )
Nr}   r   r   r   r   z2/3z2*I/3r   z1/2 - 2*I/3)r   rY   r{   rW   rp   rp   rp   rq   test_GaussianRational  s    r   c                   C   s*  t td dkstt td dks(tt td dks<tt tt d dksTtt tt d dksltt tt d d	kstt tt d
t  dkstt ttd
d dkstt d
ttd
d  dkstt tttdkstt td dkstt ttdddddks&t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   rz   r{   r   r   r0   r"   r&   rp   rp   rp   rq   test_Pow  s    r   c                   C   s   t ttdkstt ttd dks,tt dtt dksDtt dttd  dks`tt ttt dksxtt td d	kstt dtd  d
kst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   rz   r{   r   rp   rp   rp   rq   	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sTtt| | dkshtt|d	ksxtt| | d
kstt| | dkstt| | dkstt| | dkstt|| dkstt|| dkstt|| dkstt|| dkstt|| dks2tt| | dksHtt|| dks^tt|| dksttt|| dksttt ddksttt ddksttt ddkstttddkstttddkstttddddkstttdddd ks,tttd!ddd"ksFtttd#ddd$ks`tttd%ddd&ksztttt ddd	kstttt dd'd(ksttd)d* t dd* d+ksttd)d* d t dd* d+ksttd)d* d t dd* d+ksttd)d* d t dd* d,ks>tttt d-d'd d.ks^ttdtt d-d'd  d/kstttdtdt ksttdt dd0 d1ksttt ddd2d3d4ksttd5}t|t dd d2d3d6ks ttt|t ddd2d3d7ks"ttt	||t d8dd2d3d9ksFt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])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)/3rz   zx**(S(2)/3)zEq(x, S(2)/3)r   zLimit(x, x, S(7)/2, dir='+'))
r   r   r{   r&   r0   r   rf   r(   r#   r?   )Zn1Zn2Zn3Zn4Zn5Zn7Zn8rz   rp   rp   rq   test_Rational)  sd    



 $$$ $ "r   c                   C   s@  t tddddkstt tddddks0tt tddddksHtt tddks^tt td	d
ksttt tddkstt tddkstt td td d ddkstttddddddkstttddddddkstttddddddks tttdddddks<t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+88100Fr   )	full_precminmaxz1.0e+2z100.0z0.1z0.099)r  r  z9.90000000000000e-2)r   r   r{   r   Zevalfroundr   rf   rp   rp   rp   rq   
test_Floatb  s     
(r  c                   C   s   t tttddkstt ttt tddks4tt tttddksLtt ttdttdB d	ksltt ttdttd@ d
kst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$   rz   r   r{   r#   r%   rp   rp   rp   rq   test_Relationalt  s
     r
  c                   C   s4   t tttdkstt tttdks0td S )Nz
Q.eq(x, y)z
Q.ne(x, y))r   r   eqrz   r   r{   nerp   rp   rp   rq   test_AppliedBinaryRelation|  s    r  c                   C   s*   t ttd dt  d ddks&td S )Nr   r   r}   r   zCRootOf(x**5 + 2*x - 1, 0))r   rQ   rz   r{   rp   rp   rp   rq   test_CRootOf  s    r  c                  C   s\   t d dt   d } tt| tttdddks4ttt| tttd dddksXtd S )Nr   r   r}   F)autozRootSum(x**5 + 2*x - 1)z(RootSum(x**5 + 2*x - 1, Lambda(z, z**2)))rz   r   rR   r   r   r{   )r   rp   rp   rq   test_RootSum  s     r  c                  C   s|   t tg ttdksttd dt  t d td dt  t d g} t t| dddks`tt t| ddd	ksxtd S )
Nz1GroebnerBasis([], x, y, domain='ZZ', order='lex')r   r   r}   r[   )orderzYGroebnerBasis([x**2 - x - 3*y + 1, y**2 - 2*x + y - 1], x, y, domain='ZZ', order='grlex')rZ   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   rS   rz   r   r{   )Frp   rp   rq   test_GroebnerBasis  s      0r  c                   C   s   t t dkstt t dks$tt dhdks6tt tdgdksLtt dddhdksbtt tdddgd	ks|tt dttd td td
 hdkstt tdttd td td
 gdkstd S )Nzset()zfrozenset()r}   z{1}zfrozenset({1})r   r   z	{1, 2, 3}zfrozenset({1, 2, 3})r   z{1, x, x**2, x**3, x**4}z#frozenset({1, x, x**2, x**3, x**4}))rf   setr{   	frozensetrz   rp   rp   rp   rq   test_set  s     r  c                  C   s@   t td dgttt gg} t| dks,tt| dks<td S )Nr}   r   r   )r=   rz   r   r   r{   rf   r   rp   rp   rq   test_SparseMatrix  s    r  c                   C   sT   t ttdt tttfdks$tt tttd  tddftddfdksPt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   rz   r   r{   r   rp   rp   rp   rq   test_Sum  s    $"r  c                  C   s8   t tdkstt tdks tt} t | dks4td S )Nr   rz   )r   r   r{   rz   erp   rp   rq   test_Symbol  s    r  c                   C   s   t tfttf  kr dks&n tt tt dt fttt dt f  krZdks`n tt tt dt td ffttt dt td ff  krdksn td S )Nz(x,)r}   z(x + y, x + 1)r   z(x + y, (x + 1, x**2))r   rp   rp   rp   rq   
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svttt| ||dksttt| | dkst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)))	rF   rz   r   r   r   r   r   rG   r{   tf1tf2Ztf3rp   rp   rq   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svt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))))))	rF   rz   r   r   r   rJ   r   rK   r{   r  r   Ztfm_1Ztfm_2rp   rp   rq   test_MIMOSeries_str  s    $r#  c                  C   sx   t td td t} t| dks$tt td dt t}t|dksHtt ttd dt  d t}t|dkstt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))rF   rz   r   r{   r   r  rp   rp   rq   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svttt| ||dksttt| | dkst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)))	rF   rz   r   r   r   r   r   rH   r{   r  rp   rp   rq   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svt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))))))	rF   rz   r   r   r   rJ   r   rL   r{   r"  rp   rp   rq   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szttt| t ddtddkst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))	rF   rz   r   r   r   r   r   rI   r{   r  rp   rp   rq   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snttt||ddkst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))rF   rz   r   r   rJ   r   rM   r{   r"  rp   rp   rq   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|ttt| |g||ggdkst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)))))	rF   rz   r   r   r   r   r   rJ   r{   r  rp   rp   rq   test_TransferFunctionMatrix_str  s    $(r)  c                  C   sf   t tttt} t| dkstt ttttt } t| dks@tt ttttt } t| dksbt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   rz   r   r   r   r   r{   )qrp   rp   rq   test_Quaternion_str_printer!  s    r+  c                   C   sL   t tdddkstt tdddks(tttdks8tttdksHtd S )NT)Zabbrevr   JrN   rO   )rf   rN   r{   rO   r   rp   rp   rp   rq   test_Quantity_str*  s    r-  c                  C   s   t d} t| d dkstttd|  d dks8ttd|  d dksPttd|  d d	kshtt| d d d
ksttdd|   dkstd S )Nrz   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/   )r   rp   rp   rq   test_wild_str1  s    r.  c                  C   s   ddl m} m}m} td}|d kr(d S | d}|d}|d}t|dksPtt|dks`tt|dksptt|| d|  dksttt|t| t	| d	kst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_connectorr/  r0  r1  rE   r   r{   r2   r1   r0   )r/  r0  r1  r2  wdZwpwsrp   rp   rq   test_wild_matchpy<  s    r5  c                   C   s   t tddkstd S )Nr   zzeta(3))r   r4   r{   rp   rp   rp   rq   	test_zetaP  s    r6  c                  C   s(   t t } t| }t| }||ks$td S N)rz   r   r   r{   )r  r   brp   rp   rq   test_issue_3101T  s    r9  c                  C   s@   dt t tt t d  } t| dks,tt| dks<t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   rz   r   r   r{   r  rp   rp   rq   test_issue_3103[  s    r:  c                  C   s"   t ttd } t| dkstd S )Nr}   zIntegral(x, x) + 1)r5   rz   r   r{   r  rp   rp   rq   test_issue_4021b  s    r;  c                  C   sP   t ddksttddks tdddtg} t | dks<tt| dksLtd S )Nabcz'abc'r   r8  cz[a, b, c, x]z['a', 'b', 'c', x])rf   r{   rg   rz   r  rp   rp   rq   test_sstrreprg  s
    r>  c                   C   s   t tt dkstd S )Nr   )rf   r   r   r{   rp   rp   rp   rq   test_infinityp  s    r?  c                   C   s   t tddddkstt tddddks0tt tddddksHtt tdt dddksdtt tdt dddkstt tdt dddkstd S )	Nz0.3Tr  z0.300000000000000r  F)z0.300000000000000*xzx*0.300000000000000)z0.3*xzx*0.3)rf   r&   r{   rz   rp   rp   rp   rq   test_full_prect  s    rA  c                  C   s   t ddd\} }}t| | |d  dks.tt|d |  | dksJtt| |d  | dksfttt| dkszttd	t|  d
kst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*   rf   r{   r0   )ABCrp   rp   rq   test_noncommutative  s    rF  c                  C   sD   t  } | ddkst| tt dks.t| ddks@td S )Nry   zx*y    Z32)rh   ZemptyPrinterr{   rz   r   )Zstr_printerrp   rp   rq   test_empty_printer  s    rH  c                   C   s   t tdd  d S )Nc                   S   s   t tdddS )Nr   garbage)method)rf   r&   rp   rp   rp   rq   r     r   ztest_settings.<locals>.<lambda>)rd   	TypeErrorrp   rp   rp   rq   test_settings  s    rL  c            	      C   s   ddl m} m}m}m}m} | ddd}t||dkdks@t|dd}t||dkd	ksbt|d
d}|dd}t|t||j	dkstd S )Nr   )NormalDieExponentialpspacewherex1r}   zDomain: (0 < x1) & (x1 < oo)Zd1r~   r   zDomain: Eq(d1, 5) | Eq(d1, 6)r   r8  z1Domain: (0 <= a) & (0 <= b) & (a < oo) & (b < oo))
Zsympy.statsrM  rN  rO  rP  rQ  r   r{   r   domain)	rM  rN  rO  rP  rQ  XDrC  rD  rp   rp   rq   test_RandomDomain  s    


rV  c                   C   s   t ttdd dkstt ttdd dks4tt ttt td g dksTtt tttttdtttdd	ks~t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   rB   r   r{   rz   r   rp   rp   rp   rq   test_FiniteSet  s      rX  c                   C   s"   t ttttthdkstd S )NzPartition({z}, {x, y}))r   r   rB   rz   r   r   r{   rp   rp   rp   rq   test_Partition  s    rY  c                   C   s   t tjdkstd S )NUniversalSet)r   r&   rZ  r{   rp   rp   rp   rq   test_UniversalSet  s    r[  c                  C   sh   t tt} t ttf }t| ttt  tttt  ksBtt|tt ttt ksdtd S r7  )rW   Z
frac_fieldrz   r   rf   convertr{   )r  rx   rp   rp   rq   test_PrettyPoly  s    *r]  c            	      C   s   ddl m} m}m}m} | d}| d}|||d}||}|d}t|dksTtt|dksdtt|d	ksttt|d
kstd S )Nr   )ObjectNamedMorphismIdentityMorphismCategoryrC  rD  r   KzObject("A")z,NamedMorphism(Object("A"), Object("B"), "f")zIdentityMorphism(Object("A"))zCategory("K"))Zsympy.categoriesr^  r_  r`  ra  r   r{   )	r^  r_  r`  ra  rC  rD  r   Zid_Arb  rp   rp   rq   test_categories  s    rc  c                  C   s0   t ddd\} }t| | }t|dks,td S )NzA BFrB  zTr(A*B))r*   ri   r   r{   )rC  rD  r   rp   rp   rq   test_Tr  s    rd  c                   C   s    t tdt d dkstd S )Ng      r   z-3.0*(1.0*z - 1.0))r   r>   r   r{   rp   rp   rp   rq   test_issue_6387  s    re  c                  C   s   t dddt ddd } }td| |  dks2ttt|  dksFttt |  dks\ttdt |  dkstttdt  |  d	kstttt| |t| |d
kstd S )NrT  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   )rT  rf  rp   rp   rq   test_MatMul_MatAdd  s    rg  c                  C   s  t ddd} td| | }tddd}tddd}tt|ddd	ksHtt|ttd
 ttd
 f dksptt|ttd
 dttd
 df dkstt|d ttd f dkstt|d ttd f dkstt|td d tf dkstt|ttttf dkstt|ttt	tt	tf dksDtt|td tt	d tf dksjtt|d ttd t	tf dkstt|d d td d tf dksttt|ddd	ksttt|d | d fd | d fd	ksttt|d| d fd| d fd	ksttt|d| dfd| dfdksBtt|d
dddddf dkshtt|d
dddddf dkstt|d
dd dkstt|d dd
d df d!kstt|d dd
ddf d"kstt|dd ddf d#kstt|dd
dd
f d$ks4tt|dd
ddd
df d%ksZtt|| dd dd f d&kstd S )'Nr   Tr   rT  rf  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{   rz   r   r   r   r   )r   rT  rf  rh  rp   rp   rq   test_MatrixSlice  s8    (,   "&&&&&&&&&$$ "&ri  c                   C   sd   t ttt  kr*tt  kr*dks0n tt ttt  krZtt  krZdks`n td S )NTrueFalse)r   r8   reprrf   r{   r7   rp   rp   rp   rq   test_true_false	  s    0rm  c                   C   s   t tttdkstd S )NzEquivalent(x, y))r   r6   r   rz   r{   rp   rp   rp   rq   test_Equivalent  s    rn  c                   C   s   t tttdddkstd S )NFr   zx ^ y)r   r9   r   rz   r{   rp   rp   rp   rq   test_Xor  s    ro  c                   C   s   t ttjtjdkstd S )NzComplement(Reals, Naturals))r   rA   r&   ZRealsZNaturalsr{   rp   rp   rp   rq   test_Complement  s    rp  c                   C   s*   t ttddtdddddks&td S )Nr   r   r   Fr   z3SymmetricDifference(Interval(2, 3), Interval(3, 4)))r   rD   rC   r{   rp   rp   rp   rq   test_SymmetricDifference  s    rq  c                  C   s0   t d\} }dt| |  }t|dks,td S )Nza br   z	2*(a + b))r*   r   r   r{   )r   r8  expr1rp   rp   rq   test_UnevaluatedExpr  s    rs  c                  C   sx   t ddd} t ddd}t ddd}t| d dks8ttd| d  dksPt|d || | }t|d	ksttd S )
NrC  r}   r   rD  rE  )r   r   zA[0, 0]z	3*A[0, 0]z(A - B)[0, 0])r;   r   r{   subs)rC  rD  rE  r  rp   rp   rq   test_MatrixElement_printing!  s    ru  c                  C   s|   t ddd} t ddd}t| | |  | dks4tt| | | |  dksPtt| d dksdtt| d dksxtd S )	NrC  r   rD  zA - A*B - Bz-A + A*B - Br   zA**(-1)zA**3)r;   r   r{   )rC  rD  rp   rp   rq   test_MatrixSymbol_printing.  s    rv  c                  C   sx   t ddd} td| | }t|dks(t|j| t}t|dksHtttdt }| | |}t|dksttd S )Nr   Tr   rT  zLambda(_d, sin(_d)).(X.T*X)r}   zLambda(x, 1/x).(n*X))	r(   r;   r   r{   TZ	applyfuncr2   r   rz   )r   rT  exprZlamdarp   rp   rq   test_MatrixExpressions8  s    ry  c                   C   s>   t tttfddkstt ttt ttfddks:td S )Nr}   zSubs(x, x, 1)r   zSubs(x + y, (x, y), (1, 2)))r   r   rz   r{   r   rp   rp   rp   rq   test_Subs_printingH  s    r{  c                  C   s6   t tttt tf} |  | dfg| gfks2td S )N))r   g        rz  rp   )r5   r+   rz   r   Zas_termsr{   r  rp   rp   rq   test_issue_15716M  s    r|  c                  C   sX   ddl m} m}m} t| ddks(tt|dddks>tt|dddksTtd S )Nr   Identity
ZeroMatrix	OneMatrixr   r   r   r   r   )sympy.matricesr~  r  r  r   r{   r}  rp   rp   rq   test_str_special_matricesR  s    r  c                   C   s    t tdtddft std S )Nr   r   )r+   r   rz   r   r{   rp   rp   rp   rq   test_issue_14567Y  s    r  c                   C   s4   t tddgdkstt tddhdks0td S )Nr}   r   zPartition({1, 2}))r   r   r{   rp   rp   rp   rq   test_issue_21823]  s    r  c                   C   s2   t tttdddtdddddddks.td S )Nr   Fr   r   r   z
1/(x**2*3))r   r   r"   rz   r{   rp   rp   rp   rq   test_issue_22689b  s    r  c                  C   s   dd } | ddkst | ddks(t | ddks8t | ddksHt | d	d
ksXt | ddksht | ddksxt | ddkst | ddkst | ddkst d S )Nc                 S   s   t t| ddS )NFr   )r   r&   )rz   rp   rp   rq   r   g  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))r{   )ssrp   rp   rq   test_issue_21119_21460f  s    r  c                  C   s8   ddl m}  t| ddks tt| ddks4td S )Nr   Strrz   zStr('x'))sympy.core.symbolr  r   r{   rg   r  rp   rp   rq   test_Strt  s    r  c            
      C   s   ddl m} m}m}m} tddd\}}| dd}t|dksBt|d|}t|dks\t|d	|||g}t|d	ks|t||d}	t|	d
kstd S )Nr   )ManifoldPatchCoordSystemBaseScalarFieldzx yTr   r   r   Prectrz   )Zsympy.diffgeomr  r  r  r  r*   r   r{   )
r  r  r  r  rz   r   mr   r  r8  rp   rp   rq   test_diffgeomz  s    


r  c                   C   sl   t tddddkstt tddddks0tt tddgdddksLtt tddgddd	kshtd S )
Nr   Tr@  z1.00000000000000Fz1.0g       @z$[1.00000000000000, 2.00000000000000]z
[1.0, 2.0])rf   ra   r{   rp   rp   rp   rq   test_NDimArray  s    r  c                   C   s   t tjdkstd S )NzQ.even)rf   r   evenr{   rp   rp   rp   rq   test_Predicate  s    r  c                   C   s   t ttdkstd S )Nz	Q.even(x))rf   r   r  rz   r{   rp   rp   rp   rq   test_AppliedPredicate  s    r  c                  C   st   t tdddkstt tddddt  dfdks:ttddd} td	dd}t t| | tdgd
ksptd S )NrC  )r   r   r   r   r}   r   zA[2, 1/(1 - x), 0]r   r   Nz(M*N)[x, 0])rf   rb   r{   rc   rz   r;   )r   r  rp   rp   rq   #test_printing_str_array_expressions  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.expressions.slicer<   r  r=   Zsympy.polys.polytoolsr>   Zsympy.series.limitsr?   Zsympy.series.orderr@   Zsympy.sets.setsrA   rB   rC   rD   Zsympy.externalrE   Zsympy.physics.control.ltirF   rG   rH   rI   rJ   rK   rL   rM   Zsympy.physics.unitsrN   rO   Zsympy.polysrP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   Zsympy.geometryr\   r]   r^   r_   r`   Zsympy.tensorra   Z0sympy.tensor.array.expressions.array_expressionsrb   rc   Zsympy.testing.pytestrd   re   Zsympy.printingrf   rg   rh   Zsympy.physics.quantum.traceri   rz   r   r   r   r   rj   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+  r-  r.  r5  r6  r9  r:  r;  r>  r?  rA  rF  rH  rL  rV  rX  rY  r[  r]  rc  rd  re  rg  ri  rm  rn  ro  rp  rq  rs  ru  rv  ry  r{  r|  r  r  r  r  r  r  r  r  r  r  r  rp   rp   rp   rq   <module>   s4  ,(8	
	0A*
9		
		




