
    \h                         S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
JrJr  S SKJr  S SKJrJr  S S	KJrJr  S S
KJrJrJrJrJr  S SKJr  S SKJrJrJ r J!r!  S SK"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+  S SK,J-r-  S SK.J/r/  S SK0J1r1J2r2J3r3  S SK4J5r5  S SK6J7r7J8r8J9r9J:r:  S SK;J<r<J=r=J>r>  S SK?J@r@  S SKAJBrB  S SKCJDrD  S SKEJFrFJGrG  S SKHJIrI  S SKJJKrK  S SKLJMrM  S SKNJOrOJPrPJQrQJRrR  S SKSJTrT  S SKUJVrV  S SKWJXrX  S SKYJZrZ  S S K[J\r\  S S!K]J^r^  S S"K_J`r`  S S#KaJbrb  S S$KcJdrdJereJfrfJgrg  S S%KhJiriJjrjJkrkJlrl  S S&KmJnrn  S S'KoJprp  S S(KqJrrrJsrsJtrtJuruJvrvJwrwJxrxJyry  S S)KzJ{r{J|r|  S S*K}J~r~JrJrJrJrJrJrJrJrJrJrJr  S S+KJrJrJrJrJr  S S,KJr  S S-KJrJr  S S.KJrJr  S S/KJrJrJr  S S0KJr  \:" S15      u  rrrrr\7" S25      rS3 rS4 rS5 rS6 rS7 rS8 rS9 rS: rS; rS< rS= rS> rS? rS@ rSA rSB rSC rSD rSE rSF rSG rSH rSI rSJ rSK rSL rSM rSN rSO rSP rSQ rSR rSS rST rSU rSV rSW rSX rSY rSZ rS[ rS\ rS] rS^ rS_ rS` rSa rSb rSc rSd rSe rSf rSg rSh rSi rSj rSk rSl rSm rSn rSo rSp rSq rSr rSs rSt rSu rSv rSw rSx rSy rSz rS{ rS| rS} rS~ rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS Gr S GrS GrS GrS GrS GrS GrS GrS GrS Gr	S Gr
S GrS GrS GrS GrS GrS GrS Grg)    )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                       " S S[         5      n [        U " [        5      5      S:X  d   e " S S[         5      n [        U " [        5      5      S:X  d   eg )Nc                       \ rS rSrS rSrg)test_printmethod.<locals>.R;   c                 D    SUR                  U R                  S   5      -  $ )Nzfoo(%s)r   )_printargsselfprinters     U/var/www/auris/envauris/lib/python3.13/site-packages/sympy/printing/tests/test_str.py	_sympystr%test_printmethod.<locals>.R._sympystr<   s    w~~diil;;;     N__name__
__module____qualname____firstlineno__r}   __static_attributes__r   r   r|   Rrt   ;   s    	<r   r   zfoo(x)c                       \ rS rSrS rSrg)rt   @   c                     g)Nfoor   ry   s     r|   r}   r~   A   s    r   r   Nr   r   r   r|   r   rt   @   s    	r   r   )r/   rm   x)r   s    r|   test_printmethodr   :   sJ    <C < !:!!!C  !:r   c                      [        [        [        5      5      S:X  d   e[        [        [        SS5      5      5      S:X  d   e[        [        [        SS5      5      5      S:X  d   eg )NzAbs(x)      1/6)strr/   r   r   r   r   r|   test_Absr   F   sT    s1v;("""s8Aq>"#u,,,s8B?#$---r   c                     [        [        [        -   5      S:X  d   e[        [        S-   5      S:X  d   e[        [        [        S-  -   5      S:X  d   e[        [        SSSS95      S	:X  d   e[        [        SSSSS95      S
:X  d   e[        S[        -  5      S:X  d   e[        S[        -   [        -   [        [        -  -   [        S-  -   [        S-  -   5      S:X  d   e[        S[        -   [        S-  S-  -   [        S-  S-  -   5      S:X  d   e[        S[        -  S[        S-  -  -
  S-   S[        -  -   5      S:X  d   e[        [        [        -
  5      S:X  d   e[        S[        -
  5      S:X  d   e[        [        S-
  5      S:X  d   e[        [        [        -
  [        -
  [
        -
  5      S:X  d   e[        [        [        [        S-  -  [        -  [
        -  -
  5      S:X  d   e[        [        S[        -  [        -  [        -  -
  5      S:X  d   e[        [        [        5      R                  [        SS5      5      S:X  d   e[        [        [        [
        * [        SS9[        [        * [        SS9SS95      S:X  d   e[        [        [        [        * [        * SS9[        * SS95      S:X  d   e[        [        [        [        [        * [        * SS9[        * SS9[        * SS95      S:X  d   eg )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wr3   seriestr   r   r|   test_Addr   L   s   q1u:   q1u:   q1a4x=J&&&s1a%()W444s1aU+,;;;s1u:   q1uqy1Q3A%1,-1PPPPq1uq!tAv~1Q&'+DDDDqsQq!tV|a!A#%&*CCCCq1u:   q1u:   q1u:   q1uqy1}!1111q1QT6!8A:~"4444q1Q3q57{},,,s1v}}Q2&'  ,L  L  L  Ls3r1u-sA2qE/JV[\]avvvvs3rA2.UCDWWWs3sA2rE2QBG!V[\]awwwwr   c                  .    [        [        5      S:X  d   eg )Nr   )r   r   r   r   r|   test_Catalanr   b   s    w<9$$$r   c                  .    [        [        5      S:X  d   eg )Nr!   )r   r!   r   r   r|   test_ComplexInfinityr   f       s8ur   c            	          [        [        [        [        5      5      S:X  d   e[        [        [        S-  [        SS95      S:X  d   e[        [        [        S-  [        -  [        [        SS95      S:X  d   eg )NzDerivative(x, y)r   Fr   zDerivative(x**2, x)zDerivative(x**2/y, x, y))r   r   r   r   r   r   r|   test_Derivativer   j   ss    z!Q $6666z!Q$E237LLLLz	1Q1u& '*DE E Er   c                     [        SS[        -   05      [        SS[        -   05      s=:X  a  S:X  d   e   e[        [        S-  [        [        -  S.5      S;   d   e[        [        S-  [        [        -  S.5      S:X  d   eg Nr   z
{1: x + 1}r   r   r   ){1: x**2, 2: x*y}z{2: x*y, 1: x**2}r   r   r   rm   r   r   r   r|   	test_dictr   q   sv    1q5z?dAq1u:.>,>>>>>1a4AaC !%OOOOAqDQqS!"&9999r   c                  >   [        [        SS[        -   05      5      [        SS[        -   05      s=:X  a  S:X  d   e   e[        [        [        S-  [        [        -  S.5      5      S;   d   e[        [        [        S-  [        [        -  S.5      5      S:X  d   eg r   )r   r   r   rm   r   r   r   r|   	test_Dictr   w   s    tQAJ D!QU$4DDDDDDt11%&' ,2 2 2 2A!A#&'(,????r   c                  f    [        [        5      S:X  d   e[        [        [        -   5      S:X  d   eg )N_dz_d + x)r   rq   r   r   r   r|   
test_Dummyr   ~   s(    q6T>>q1u:!!!r   c                  .    [        [        5      S:X  d   eg )Nr   )r   r   r   r   r|   test_EulerGammar      s    z?l***r   c                      [        [        5      S:X  d   e[        S5         [        [        [        5      5      S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   TzE**x)r   r   r"   r0   r   r   r   r|   test_Expr      s<    q6S==	T	3q6{f$$$ 
		s   A


Ac                     [        SSS9n [        [        S5      5      S:X  d   e[        [        S5      5      S:X  d   e[        [        S5      5      S	:X  d   e[        [        U 5      5      S
:X  d   e[        [        SU -  5      5      S:X  d   e[        [        [        U 5      5      5      S:X  d   e[        [        [        U 5      5      5      S:X  d   e[        [        [        U 5      5      5      S:X  d   e[        [        [        U 5      5      5      S:X  d   e[        [	        S5      5      S:X  d   e[        [	        U 5      5      S:X  d   e[        [	        SU -  5      5      S:X  d   eg )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   s    r|   test_factorialr      sF   sD!Ay}&&&y|###y|&&&y|...y1~"2222y1&'+DDDDyA'(,FFFFz)A,'(,FFFFz*Q-()-HHHH|A3&&&|A#4444|AaC !%8888r   c                      [        S5      n U " [        5      n[        S5      n[        U 5      S:X  d   e[        U5      S:X  d   e[        U5      S:X  d   eg )Nfr   zf(x)w_)r   r   r   r   )r   fxr   s      r|   test_Functionr      sP    A	
1BSAq6S==r7fq6T>>r   c                     [        [        SS5      5      S:X  d   e[        [        [        SS5      S5      5      S:X  d   e[        [        [        SS5      SS5      5      S:X  d   e[        [	        [        SS5      [        S	S
5      [        SS5      5      5      S:X  d   e[        [        [        SS5      [        SS5      [        SS5      [        SS	5      5      5      S:X  d   e[        [	        [        SS5      [        SS5      [        SS5      5      SS9S:X  d   e[        [        [        SS5      SS5      SS9S:X  d   eg )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)))rm   rc   rd   rf   rg   re   r   r   r|   test_Geometryr      s=   a///uQ{A&'+EEEEaQ*+/MMMMq!eAqk5B<@A@A A AaU2r]E!QKq!MNOP P Pq!eAqk5A;?PTUQR R RaQ*4@23 3 3r   c                  .    [        [        5      S:X  d   eg )Nr   )r   r   r   r   r|   test_GoldenRatior      s    {},,,r   c                      [        [        [        5      5      [        [        [        [        R                  5      5      s=:X  a  S:X  d   e   e[        [        [        S5      5      S:X  d   eg )NzHeaviside(x)r   zHeaviside(x, 1))r   r4   r   r'   Halfr   r   r|   test_Heavisider      sN    y|Ia$8 9K^KKKKKyA#4444r   c                  .    [        [        5      S:X  d   eg )Nr   )r   r   r   r   r|   test_TribonacciConstantr      s    !"&::::r   c                  .    [        [        5      S:X  d   eg )Nr   )r   r   r   r   r|   test_ImaginaryUnitr      s    q6S==r   c                  f    [        [        5      S:X  d   e[        [        [        -  5      S:X  d   eg )Nr   oo*I)r   r   r   r   r   r|   test_Infinityr      s(    r7d??r!t9r   c                     [        [        S5      5      S:X  d   e[        [        S5      5      S:X  d   e[        [        S5      5      S:X  d   e[        [        S5      5      S:X  d   e[        [        S	5      5      S
:X  d   eg )Nr   -1r   r   r   z-3r   0   25)r   r   r   r   r|   test_Integerr      ss    wr{t###wqz?c!!!wr{t###wqz?c!!!wr{t###r   c                      [        [        [        [        5      [        5      5      S:X  d   e[        [        [        [        5      [        SS45      5      S:X  d   eg )NzIntegral(sin(x), y)r   r   zIntegral(sin(x), (y, 0, 1)))r   r6   r3   r   r   r   r   r|   test_Integralr      sF    xA"#'<<<<xAAq	*+/LLLLr   c            
      6   [         R                  SS[         R                  4n [        [	        U 5      5       H_  n[        US-   [	        U 5      5       H@  nS H7  nS H.  n[        X   X   X45      n[        [        U5      5      U:X  a  M.   e   M9     MB     Ma     g )Nr   r   )TF)r'   NegativeInfinityInfinityrangelenrE   r   )r   ijlrivals         r|   test_Intervalr      s    	
		Q1::.A3q6]q1uc!f%A"&A#AD!$5DSY<4/// ' # & r   c                      [        SSS9n [        [        SU 5      5      S:X  d   e[        [        SS5      5      S:X  d   eg )NaTrealr   zAccumBounds(0, a)r   zAccumBounds(0, 1))r)   r   r   )r   s    r|   test_AccumBoundsr      sD    sA{1a !%8888{1a !%8888r   c                     [        [        [        [        S-  5      5      S:X  d   e[        [        SS5      5      S:X  d   e[        [        S[        5      5      S:X  d   e[        [        [        [        4[        [        -   5      5      S:X  d   e[        [        [        [        44[        [        -   5      5      S:X  d   eg )	Nr   zLambda(_d, _d**2)r   r   zLambda((), 1)zLambda((), x)zLambda((x, y), x + y)zLambda(((x, y),), x + y))r   r   rq   r   r   r   r   r|   test_Lambdar      s    vaA#6666vb!}000vb!}000vq!fac"#'>>>>v1vi1%&*DDDDr   c            	      0   [        [        [        [        5      [        -  [        [        5      5      S:X  d   e[        [        S[        -  [        S5      5      S:X  d   e[        [        [        [        5      [        -  [        [        SS95      S:X  d   eg )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   rA   r3   r   r   r   r   r|   
test_Limitr      s{    uSVAXq!$%)IIIIuQqS!Q $????c!fQh1#&(+KL L Lr   c                     [        [        /5      [        [        /5      s=:X  a  S:X  d   e   e[        [        S-  [        [        -  S-   /5      [        [        S-  [        [        -  S-   /5      s=:X  a  S:X  d   e   e[        [        S-  [        [        -   //5      [        [        S-  [        [        -   //5      s=:X  a  S:X  d   e   eg )Nz[x]r   r   z[x**2, x*y + 1]z[x**2, [x + y]]r   r   r   r|   	test_listr      s    s8tQCy)E)))))1acAg4AqsQw#8M<MMMMMM1q1ug4AAw#8M<MMMMMMr   c                     [        [        S-  S/[        [        [        -   //5      n [        U 5      S:X  d   e[	        U 5      S:X  d   e[        S//5      n [        U 5      [	        U 5      s=:X  a  S:X  d   e   e[        SS//5      n [        U 5      [	        U 5      s=:X  a  S:X  d   e   e[        5       n [        U 5      [	        U 5      s=:X  a  S:X  d   e   e[        SSS	 5      n [        U 5      [	        U 5      s=:X  a  S
:X  d   e   eg )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                     g)Nr   r   )r   r   s     r|   <lambda>!test_Matrix_str.<locals>.<lambda>  s    !r   zMatrix(0, 1, []))r;   r   r   r   rm   Ms    r|   test_Matrix_strr     s    B
QAJ'(Aq633337;;;;uAq6T!W//////AxAq6T!W3!333333Aq6T!W2 222222q!^$Aq6T!W2 222222r   c                     [        [        [        -  5      S:X  d   e[        [        [        -  5      S:X  d   e[        [        [        -  [        -  5      S:X  d   e[        [        S-   [        S-   -  5      S:X  d   e[        S[        -  S-  5      S:X  d   e[        S	[        -  S-  5      S
:X  d   e[        S[        -  5      S:X  d   e[        S[        -  5      S:X  d   e[        [	        SSSS95      S:X  d   e[        [	        SSSS95      S:X  d   e[        [	        SSSS95      S:X  d   e[        [	        SSSSS95      S:X  d   e[        [	        SSSS95      S:X  d   e[        [	        S[
        R                  SS95      S:X  d   e[        [	        SS[
        R                  SS95      S:X  d   e[        [	        SSSS[        SS95      S:X  d   e[        [	        SSSS95      S:X  d   e[        [	        SSSS95      S:X  d   e[        [	        SSSSS[        [        SS95      S:X  d   e[        [	        SSSS[        -   S[        [        SS95      S:X  d   e[        [	        [        SS5      [        S S!5      SS95      S":X  d   e[        [	        S	[        [        [	        [        [        SS9SSS9SS95      S#:X  d   e[        [	        [        [        S[        -  SSS9SS95      S$:X  d   eSSK	J
n   U " S5         [        [	        [        [        S5      [        S5      5      [        [        S5      [	        [        S5      [        S5      5      5      5      5      S%:X  d   e S S S 5         " S& S'[        5      n " S( S)[        5      nU" 5       nU" 5       n[        [        S5      U-  5      S*:X  d   e[        U[        S5      -  5      S*:X  d   e[        U[        S+5      -  5      S,:X  d   e[        U[        S5      -  5      S-:X  d   e[        U[        S5      -  U-  5      S.:X  d   e[        U[        S5      -  U-  5      S.:X  d   eg ! , (       d  f       N= f)/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                       \ rS rSrSrSrg)test_Mul.<locals>.CustomClass1i,  Tr   Nr   r   r   r   is_commutativer   r   r   r|   CustomClass1r	  ,      r   r  c                       \ rS rSrSrSrg)test_Mul.<locals>.CustomClass2i/  Tr   Nr
  r   r   r|   CustomClass2r  /  r  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cc2s        r|   test_Mulr    s   qs8uqs8uqs1u:"""AA#4444qs1u:   r!tAv;("""tAv;("""s1u:   s1a%()U222s1a%()U222s1a%()U222s1aU+,777s1a%()U222s1affu-.);;;s1a%01[@@@s1aAq512kAAAs1b5)*h666s2q5)*f444s1aAq!Q78OKKKs1aAaCAq59:>SSSSs8Aq>8Aq>EBC}TTTs2q#c!Au5rEJ9>@ ADPQ Q Q s1c!A#rE2UCD	QQQ /	%3s71:wr{3Sc'RT+W^_`WaFb5cdeiwwww 
t t 
.C
.Cx{3#5555s8A;#5555s5< $8888s8A;#5555s8A;s"#'HHHHs8A;s"#'HHHH 
s   A'Q
Q$c                  .    [        [        5      S:X  d   eg )Nr   )r   r   r   r   r|   test_NaNr  ;  r   r   c                  0    [        [        * 5      S:X  d   eg )Nz-oo)r   r   r   r   r|   test_NegativeInfinityr  ?  s    s8ur   c                     [        [        [        5      5      S:X  d   e[        [        [        S-  5      5      S:X  d   e[        [        [        [        -  5      5      S:X  d   e[        [        [        [        5      5      S:X  d   e[        [        [        [        S45      5      S:X  d   e[        [        [        [        [        45      5      S:X  d   e[        [        [        [        [        5      5      S:X  d   e[        [        [        [        [        5      5      S:X  d   e[        [        [        [        [        4[        [        45      5      S:X  d   eg )	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   rB   r   r   r   r   r   r|   
test_Orderr  B  s    qt9qAw<9$$$q1v;.(((qAw<6!!!qQF|&&&qQG}000qAqz?l***qAqz?l***qQGaW%&*BBBBr   c                     SSK Jn Jn  U" 5       S4U" S5      S4U" SS5      S4U" SS5      " S5      " S	S
5      " S5      S4U" SS5      " SS5      " SS5      S44 H  u  p#[        U5      U:X  a  M   e   U " / 5      S4U " / SS9S4U " / SS9S4U " / SS9S4U " / SQ5      S4U " / SQ5      S4U " / SQSS9S44 H  u  p#[        USS9U:X  a  M   e   U " / 5      S4U " / SS9S4U " / SS9S4U " / SS9S4U " / SQ5      S4U " / SQ5      S 4U " / SQSS9S!4U " / S"QSS9S#44 H  u  p#[        U5      U:X  a  M   e   [	        5          U R
                  nSU l        [        U " / SQ5      5      S:X  d   eX@l        S S S 5        g ! , (       d  f       g = f)$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  rm   rl   print_cyclic)r  r  psold_print_cyclics        r|   test_Permutation_Cycler&  N  s)   6 
		q		q!		q!Q1	b	!		q!Q	1a	 	 Aw!|| 
R		Ra	 		Ra	 		Rb	!"	$	Y	 	"	'	(%	'	'b	1&	(  A5)Q...!& 
R		Ra	 		Ra	 		Rb	!		Y			'	(		'b	1		'b	1	$ Aw!||%* 
 	!&33#( K	*+/GGGG#3 	 
"	!	!s   3E>>
Fc                  .    [        [        5      S:X  d   eg )Nr    )r   r    r   r   r|   test_Pir(    s    r7d??r   c                  j   [        [        S[        5      5      S:X  d   e[        [        S[        5      5      S:X  d   e[        [        [        [        5      5      S:X  d   e[        [        S[        -  S-   [        5      5      S:X  d   e[        [        S[        -  S-
  [        5      5      S:X  d   e[        [        S	[        5      5      S
:X  d   e[        [        [        * [        5      5      S:X  d   e[        [        S[        -  S-   [        5      5      S:X  d   e[        [        S[        -  S-
  [        5      5      S:X  d   e[        [        [        S-
  [        5      5      S:X  d   e[        [        S[        -  [        S-  -   [        5      5      S:X  d   e[        [        SS[        -  -  S[        -  5      5      S:X  d   e[        [        [        S-  [        -  5      5      S:X  d   e[        [        [        [        -   S-  [        [        -   SS95      S:X  d   e[        [        [        S-
  S-  [        S-
  SS95      S:X  d   e[        [        [        S-  S-   [        -   [        5      5      S:X  d   e[        [        [        S-  S-
  [        -   [        5      5      S:X  d   e[        [        [        S-  [        [        -  -   [        5      5      S:X  d   e[        [        [        S-  [        [        -  -
  [        5      5      S:X  d   e[        [        [        * [        -  [
        -  [        [        -  -   S-
  [        [        [
        5      5      S:X  d   e[        [        [        * [        S-  -  [        S-  -  [
        -  S[        -   [
        S-  -  -   S[        -  [
        -  -
  S-   [        [        [
        5      5      S :X  d   e[        [        [        S-  S-   [        SS!95      S":X  d   e[        [        S[        S-  -  S[        -  -   S#-   [        S$S!95      S%:X  d   eg )&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   rW   r   r   r   r   r   r   r   r|   	test_Polyr.    s   tAqz?7777tAqz?7777tAqz?7777tAaC!GQ $CCCCtAaC!GQ $CCCCtB{9999tQB{9999tBqD1Ha !%EEEEtBqD1Ha !%EEEEtAE1~"????tAaC!Q$J"#'IIIItA!Had#$(LLLLtQTAI#NNNNtQUQJQ6 ;< < <tQUQJQ6 ;< < < QTAX\1"IJ J JQTAX\1"IJ J J tAqD1Q3J"#'KKKKtAqD1Q3J"#'KKKKtQBqDFQqSL1$aA. BC C CtQBq"uHQTM!Oq1uadl2QqSU:Q>1aHIST T T tAqD1Ha+,0NNNNtAadFQqSL1$a459````r   c                      [        [        S[        [        5      S   5      S:X  d   e[        [        S[        [
        5      S   5      S:X  d   e[        [        S[        S   [        5      S   5      S:X  d   eg )	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   r[   r]   ra   r^   rb   r   r   r|   test_PolyRingr2    sl    tCS!!$%)VVVVtE2u%a()-____tGRWc*1-.2hhhhr   c                      [        [        S[        [        5      S   5      S:X  d   e[        [        S[        [
        5      S   5      S:X  d   e[        [        S[        S   [        5      S   5      S:X  d   eg )	Nr   r   z3Rational function field in x over ZZ with lex orderr0  z8Rational function field in x, y over QQ with grlex orderr1  r   z<Rational function field in x, y, z over ZZ[t] with lex order)r   r\   r]   ra   r^   rb   r   r   r|   test_FracFieldr4    sl    uS"c"1%&*____uUB&q)*.hhhhuWbgs+A./3qqqqr   c                     [        S[        5      u  pn[        SU 5      u  p4pV[        S[        5      u  px[        XD-
  5      S:X  d   e[        US-
  5      S:X  d   e[        US-   5      S:X  d   e[        US-  5      S	:X  d   e[        US-  S
U-  U-  -   S-   US-  -  U-  U-   S-   5      S:X  d   e[        US-  S
U-  U-  -   S-   US-  -  U-  US-   U-  -   5      S:X  d   e[        US-  S
U-  U-  -   S-   US-  -  U-  US-   U-  -   S-   5      S:X  d   e[        US-  * S
U-  U-  -   S-
  US-  -  U-  US-   U-  -
  S-
  5      S:X  d   e[        US-  U-   S-   * U-  S
U-  U-  -   S-   5      S:X  d   e[        US-  U-   S-   * U-  S
U-  U-  -
  S-   5      S:X  d   e[        S[        -   U-  S-   5      S:X  d   eg )Nu,vr1  r   r   r   x - 1r   r   x**2r   z!(u**2 + 3*u*v + 1)*x**2*y + u + 1z%(u**2 + 3*u*v + 1)*x**2*y + (u + 1)*xz)(u**2 + 3*u*v + 1)*x**2*y + (u + 1)*x + 1z*-(u**2 - 3*u*v + 1)*x**2*y - (u + 1)*x - 1z-(v**2 + v + 1)*x + 3*u*v + 1z-(v**2 + v + 1)*x - 3*u*v + 1z(1 + 1*I)*x + (2 + 0*I))r[   r]   r_   r   r   )	RuvuvRxyzr   r   r   Rx_zzixzs	            r|   test_PolyElementr?    s/   E2HC1w$KDAc4JFqu:q1u:   q1u:   q!t91qs1uq !Q$&q(1,q015XXXX1qs1uq !Q$&q(AE19459````1qs1uq !Q$&q(AE194q89=hhhhA!A!1a4')QUAI59:>jjjjAAq 1Q3q5(1,-1PPPPAAq 1Q3q5(1,-1PPPP!Rx!| 9999r   c                     [        S[        5      u  pn[        SU 5      u  p4pVn[        S[        5      u  p[        SS5      n
[        XD-
  5      S:X  d   e[        US-
  5      S:X  d   e[        US-   5      S:X  d   e[        US	-  5      S
:X  d   e[        XF-  5      S:X  d   e[        XE-  U-  5      S:X  d   e[        XFU-  -  5      S:X  d   e[        XE-  Xg-  -  5      S:X  d   e[        US-
  U-  5      S:X  d   e[        US-   U-  5      S:X  d   e[        U* S-
  U-  5      S:X  d   e[        US-   XV-  -  5      S:X  d   e[        U* US-   -  5      S:X  d   e[        XV-  US-   -  5      S:X  d   e[        US-   U-  U-  S-   US-
  U-  S-
  -  5      S:X  d   e[        US-   U-  U-  S-   US-
  U-  Xq-  U-  -
  S-
  -  5      S:X  d   e[        SU
-   U	-  5      S:X  d   e[        SU
-   U	-  U
-
  U	-  5      S:X  d   eg )Nr6  zx,y,z,tr   r   r   r   r7  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   s              r|   test_FracElementrC    sL   UBHC19c*NEQsD!JFQ
Aqu:q1u:   q1u:   qs8uqs8uqs1u:   qA#w<9$$$qsACy>[(((Aqy>[(((Aqy>[(((Qz?l***A}000r1q5z?l***qsAE{},,,Q	!a1q5!)a-015XXXXQ	!a1q5!)ac!e"3a"789=hhhh!Rx=M)))1b1b !%CCCCr   c                     [        [        SS5      5      S:X  d   e[        [        SS5      5      S:X  d   e[        [        SS5      5      S:X  d   e[        [        SS5      5      S:X  d   e[        [        SS5      5      S	:X  d   e[        [        SS
5      5      S:X  d   e[        [        SS5      5      S:X  d   e[        [        SS5      5      S:X  d   e[        [        SS
5      5      S:X  d   eg )Nr   r   r   r   r   r   z-Ir   z2*Ir   z-2*Iz1 + Iz-1 - Iz-1 - 2*I)r   r_   r   r   r|   test_GaussianIntegerrE    s    tAqz?c!!!tB{t###tAqz?c!!!tAr{t###tAqz?e###tAr{v%%%tAqz?g%%%tB|(((tB|
***r   c            	      ,   [        [        SS5      5      S:X  d   e[        [        [        SS5      S5      5      S:X  d   e[        [        S[        SS5      5      5      S:X  d   e[        [        [        SS5      [        SS5      5      5      S	:X  d   eg )
Nr   r   r   r   r   z2/3z2*I/3r   z1/2 - 2*I/3)r   r`   r^   r   r   r|   test_GaussianRationalrG    s    tAqz?c!!!tBq!Ha !U***tAr!Qx !W,,,tBq!HbQi()]:::r   c                     [        [        S-  5      S:X  d   e[        [        S-  5      S:X  d   e[        [        S-  5      S:X  d   e[        [        [        -   S-  5      S:X  d   e[        [        [        -   S-  5      S:X  d   e[        [        [        -   S-  5      S	:X  d   e[        [        [        -   S
[        -   -  5      S:X  d   e[        [        [        S
S5      -  5      S:X  d   e[        S
[        [        S
S5      -  -  5      S:X  d   e[        [	        [	        [        5      5      5      S:X  d   e[        [        S-  5      S:X  d   e[        [        [        S5      SSS95      S:X  d   eg )Nr   z1/xr   zx**(-2)r   r8  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   r1   r#   r'   r   r   r|   test_PowrI    sG   q"u:q"u:"""q!t9A{{***A{...Az?l***AQ $6666q(1a. !Z///qHQN""#{222tDG}+++q$w<;&&&s1Q4./;>>>r   c                     [        [        [        5      5      S:X  d   e[        [        [        S-  5      5      S:X  d   e[        S[        [        5      -  5      S:X  d   e[        S[        [        S-  5      -  5      S:X  d   e[        [        [        [        5      -  5      S:X  d   e[        [        S-  5      S	:X  d   e[        S[        S-  -  5      S
:X  d   eg )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   r1   r   r   r   r   r|   	test_sqrtrK     s    tAw<9$$$tAqDz?l***qay>[(((qad|...qay>[(((q#v;("""qCx=K'''r   c            
         [        SS5      n [        SS5      n[        SS5      n[        SS5      n[        S5      n[        S5      n[        S5      n[        X-  5      S:X  d   e[        X-  5      S:X  d   e[        U5      S	:X  d   e[        X-  5      S
:X  d   e[        X-   5      S:X  d   e[        X-   5      S:X  d   e[        X-   5      S:X  d   e[        X3-  5      S:X  d   e[        X1-   5      S:X  d   e[        X4-   5      S:X  d   e[        X4-  5      S:X  d   e[        X#-   5      S:X  d   e[        X-  5      S:X  d   e[        X-  5      S:X  d   e[        X-  5      S:X  d   e[        XV-  5      S:X  d   e[        [        S5      5      S:X  d   e[        [        S5      5      S:X  d   e[        [        S5      5      S:X  d   e[        [        S5      5      S:X  d   e[        [        S5      5      S:X  d   e[        [        SSS95      S:X  d   e[        [        SSS95      S :X  d   e[        [        S!SS95      S":X  d   e[        [        S#SS95      S$:X  d   e[        [        S%SS95      S&:X  d   e[        [        [        SS5      5      5      S	:X  d   e[        [        [        SS'5      5      5      S(:X  d   e[        S)S*-  [        SS*5      -  5      S+:X  d   e[        S)S*-  S-   [        SS*5      -  5      S+:w  d   e[        S)S*-  S-
  [        SS*5      -  5      S+:w  d   e[        S)S*-  S-
  [        SS*5      -  5      S,:w  d   e[        [        [        S-S'5      5      S-  5      S.:X  d   e[        S[        [        S-S'5      5      S-  -  5      S/:X  d   e[        [        S5      5      [        S[        -  5      :X  d   e[        S[        SS05      -  5      S1:X  d   e[        [        SS5      S2S39S4:X  d   e[        S55      n[        U[        SS5      -  S2S39S6:X  d   e[        [        U[        SS5      5      S2S39S7:X  d   e[        [        Xw[        S8S5      5      S2S39S9:X  d   eg ):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'   r1   r   rm   r)   r$   rA   )n1n2n3n4n5n7n8r   s           r|   test_Rationalr\  *  sg   	!QB	!QB	!QB	!RB	!B	!B	"Bru:ru:r7eru:rw<5   rw<6!!!rw<6!!!ru:rw<6!!!rw<6!!!ru:rw<3rv;&   rv;&   rv;$rv;&   x5(((x E)))x	"#y000qy>V###q}+++qQ'(H444qa()V333qq)*g555q1%&#---qA&'4///tHQN#$---tHQO$%...RHQO+,555R!hq"o-.%777R!hq"o-.%777R!hq"o-.%777tHR$%q()V333qhr2&'**+v555tBx=C!H$$$q(1f%%&*>>>>At4@@@sA8Aq>!$7=HHH1hq!n%d;NNNaHQN+DA&' ' 'r   c                     [        [        SSS95      S:X  d   e[        [        SSS95      S:X  d   e[        [        SSS95      S:X  d   e[        [        R                  " S5      5      S:X  d   e[        [        R                  " S	5      5      S
:X  d   e[        [        R                  " S5      5      S:X  d   e[        [        R                  " S5      5      S:X  d   e[        [        S-  [        S-  R	                  S5      -
  R                  S5      5      S:X  d   e[        [        S5      SSSS9S:X  d   e[        [        S5      SSSS9S:X  d   e[        [        S5      SSSS9S:X  d   e[        [        S5      SSS9S:X  d   eg )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)rd  re  z9.90000000000000e-2)r   r   r    evalfroundr   rm   r   r   r|   
test_Floatrh  c  s   uV'(F222u\u-.,>>>$&136LM M Mrxx6)))rxx $6666rxx  &J K K Krxx|%%%C2s7//!,,//23y@@@e21=IIIe21=HHHe21=FFFgBA.2GGGGr   c                     [        [        [        [        S5      5      S:X  d   e[        [        [        [        -   [        S5      5      S:X  d   e[        [        [        [        S5      5      S:X  d   e[        [	        [        S5      [	        [        S5      -  5      S	:X  d   e[        [        [        S5      [        [        S5      -  5      S
:X  d   eg )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&   r   r   r|   test_Relationalrk  u  s    s1a~')))s1q5!T"#~555s1a:---r!Qx"Q("#'<<<<r!Qx"Q("#'<<<<r   c                      [        [        R                  " [        [        5      5      S:X  d   e[        [        R
                  " [        [        5      5      S:X  d   eg )Nz
Q.eq(x, y)z
Q.ne(x, y))r   r   eqr   r   ner   r   r|   test_AppliedBinaryRelationro  }  s:    qttAqz?l***qttAqz?l***r   c                  b    [        [        [        S-  S[        -  -   S-
  S5      5      S:X  d   eg )Nr   r   r   r   zCRootOf(x**5 + 2*x - 1, 0))r   rX   r   r   r   r|   test_CRootOfrq    s-    vadQqSj1na()-IIIIr   c            
          [         S-  S[         -  -   S-
  n [        [        U [        [        [        5      SS95      S:X  d   e[        [        U [        [        [        S-  5      SS95      S:X  d   eg )Nr   r   r   F)autozRootSum(x**5 + 2*x - 1)z(RootSum(x**5 + 2*x - 1, Lambda(z, z**2)))r   r   rY   r   r   )r   s    r|   test_RootSumrt    s    	1qs
QA6!Q<e,.1JK K Kwq&	1a4 "LM M Mr   c                  $   [        [        / [        [        5      5      S:X  d   e[        S-  S[        -  -
  [        -
  S-   [        S-  S[        -  -
  [        -   S-
  /n [        [        U SS95      S:X  d   e[        [        U SS95      S	:X  d   eg )
Nz1GroebnerBasis([], x, y, domain='ZZ', order='lex')r   r   r   rb   )orderzYGroebnerBasis([x**2 - x - 3*y + 1, y**2 - 2*x + y - 1], x, y, domain='ZZ', order='grlex')ra   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   rZ   r   r   )Fs    r|   test_GroebnerBasisrx    s    x
Aq IJ J J 
A!a!	QTAaCZ!^a/0Ax)*cd d dx'(pq q qr   c            
         [        [        5       5      S:X  d   e[        [        5       5      S:X  d   e[        S15      S:X  d   e[        [        S/5      5      S:X  d   e[        1 Sk5      S:X  d   e[        [        / SQ5      5      S	:X  d   e[        S[        [        S
-  [        S-  [        S-  15      S:X  d   e[        [        S[        [        S
-  [        S-  [        S-  /5      5      S:X  d   eg )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}))rm   set	frozensetr   r   r   r|   test_setr|    s    ;'!!!	---9	1##3333	?k)))	)$%)????	
Aq!tQT1a4 "%?@ @ @1aAq!tQT*+-0UV V Vr   c                      [        [        S-  S/[        [        [        -   //5      n [        U 5      S:X  d   e[	        U 5      S:X  d   eg )Nr   r   r   )r?   r   r   r   rm   r  s    r|   test_SparseMatrixr~    sG    q"uaj1a!e*-.Aq633337;;;;r   c            	          [        [        [        S[        -  5      [        [        [
        45      5      S:X  d   e[        [        [        [
        S-  -  [        SS4[
        SS45      5      S:X  d   eg )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	   r2   r   r   r   r   r   r   r|   test_Sumr    sb    yQqSAq!9-.2LLLLs1QT6Ar1:2qz23-. . .r   c                      [        [        5      S:X  d   e[        [        5      S:X  d   e[        n [        U 5      S:X  d   eg )Nr   r   )r   r   r   es    r|   test_Symbolr    s7    q6S==q6S==	Aq6S==r   c                     [        [        45      [        [        45      s=:X  a  S:X  d   e   e[        [        [        -   S[        -   45      [        [        [        -   S[        -   45      s=:X  a  S:X  d   e   e[        [        [        -   S[        -   [        S-  445      [        [        [        -   S[        -   [        S-  445      s=:X  a  S:X  d   e   eg )Nz(x,)r   z(x + y, x + 1)r   z(x + y, (x + 1, x**2))r   r   r   r|   
test_tupler    s    t9aT
,f,,,,,Aq1u~$Aq1u~"6J:JJJJJJA	Aq!t  AAq!t}56S:RS S S S Sr   c                     [        [        [        S-  -  [        -
  [        S-  [        S-  -
  [        5      n [        [        [        -
  [        [        -   [        5      n[        [        [        S-  -  [        [
        -  [        -  -
  [
        -   [        [        -
  [        5      n[        [        X5      5      S:X  d   e[        [        XU5      5      S:X  d   e[        [        U* U 5      5      S:X  d   eg )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)))rM   r   r   r   r   r   r   rN   tf1tf2tf3s      r|   test_Series_strr    s    
1QT6A:q!tad{A
6C
1q5!a%
+C
1QT6AqDF?Q.Aq
9Cvc bc c cvc$% 	TT T TvsdC !cd d dr   c                  0   [        [        [        S-  -  [        -
  [        S-  [        S-  -
  [        5      n [        [        [        -
  [        [        -   [        5      n[        X/X//5      n[        X/X//5      n[        [        X#5      5      S:X  d   eg )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))))))rM   r   r   r   r   rQ   r   rR   r  r  tfm_1tfm_2s       r|   test_MIMOSeries_strr    s    
1QT6A:q!tad{A
6C
1q5!a%
+C"SJ
#;<E"SJ
#;<Ez%'(	ll l lr   c                  8   [        [        S-
  [        S-   [        5      n [        U 5      S:X  d   e[        [        S-   S[        -
  [        5      n[        U5      S:X  d   e[        [        [        S-  S[        -  -   S-   [        5      n[        U5      S:X  d   eg )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))rM   r   r   r   r  s      r|   test_TransferFunction_strr    s    
1q5!a%
+Cs8::::
1q5!a%
+Cs8::::
1adQqSj1na
0Cs8????r   c                     [        [        [        S-  -  [        -
  [        S-  [        S-  -
  [        5      n [        [        [        -
  [        [        -   [        5      n[        [        [        S-  -  [        [
        -  [        -  -
  [
        -   [        [        -
  [        5      n[        [        X5      5      S:X  d   e[        [        XU5      5      S:X  d   e[        [        U* U 5      5      S:X  d   eg )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)))rM   r   r   r   r   r   r   rO   r  s      r|   test_Parallel_strr    s    
1QT6A:q!tad{A
6C
1q5!a%
+C
1QT6AqDF?Q.Aq
9Cx!"de e ex#&' 	VV V Vxc"#ef f fr   c                  0   [        [        [        S-  -  [        -
  [        S-  [        S-  -
  [        5      n [        [        [        -
  [        [        -   [        5      n[        X/X//5      n[        X/X//5      n[        [        X#5      5      S:X  d   eg )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))))))rM   r   r   r   r   rQ   r   rS   r  s       r|   test_MIMOParallel_strr    s    
1QT6A:q!tad{A
6C
1q5!a%
+C"SJ
#;<E"SJ
#;<E|E)*	ll l lr   c            
         [        [        [        S-  -  [        -
  [        S-  [        S-  -
  [        5      n [        [        [        -
  [        [        -   [        5      n[        [        [        S-  -  [        [
        -  [        -  -
  [
        -   [        [        -
  [        5      n[        [        X-  U5      5      S:X  d   e[        [        U [        SS[        5      S5      5      S:X  d   eg )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))rM   r   r   r   r   r   r   rP   r  s      r|   test_Feedback_strr    s    
1QT6A:q!tad{A
6C
1q5!a%
+C
1QT6AqDF?Q.Aq
9Cx%&	?? ? ? x-aA6:;_` ` `r   c                  R   [        [        S-  [        S-  -
  [        [        -
  [        5      n [        [        [        -
  [        [        -   [        5      n[	        X/X//5      n[	        X/X//5      n[        [        X#5      5      S:X  d   e[        [        X#S5      5      S:X  d   eg )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))rM   r   r   r   rQ   r   rT   r  s       r|   test_MIMOFeedback_strr    s    
1a4!Q$;Aq
1C
1q5!a%
+C"SJ
#;<E"SJ
#;<EU*+HH I H
 U1-.bb c br   c                     [        [        [        S-  -  [        -
  [        S-  [        S-  -
  [        5      n [        [        [        -
  [        [        -   [        5      n[        [        [        S-  -  [        [
        -  [        -  -
  [
        -   [        [        -
  [        5      n[        [        U /U//5      5      S:X  d   e[        [        X/X!//5      5      S:X  d   eg )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)))))rM   r   r   r   r   r   r   rQ   r  s      r|   test_TransferFunctionMatrix_strr    s    
1QT6A:q!tad{A
6C
1q5!a%
+C
1QT6AqDF?Q.Aq
9C%usen56z{ { {%zC:&>?@ 	MM M Mr   c                  :   [        [        [        [        [        5      n [        U 5      S:X  d   e[        [        [        [        [        [        -  5      n [        U 5      S:X  d   e[        [        [        [        [        [        -   5      n [        U 5      S:X  d   eg )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   )qs    r|   test_Quaternion_str_printerr  "  ss    1aAAq6****1Qq1Aq6,,,,1Qq1Aq60000r   c                      [        [        SS9S:X  d   e[        [        SS9S:X  d   e[        [        5      S:X  d   e[        [        5      S:X  d   eg )NT)abbrevr$  JrU   rV   )rm   rU   rV   r   r   r   r|   test_Quantity_strr  +  sP    t$+++d#s***v;("""u:   r   c                  :   [        S5      n [        U S-   5      S:X  d   e[        [        SU -  5      S-   5      S:X  d   e[        SU -  S-   5      S:X  d   e[        SU -  S-   5      S	:X  d   e[        U S-  S-   5      S
:X  d   e[        SSU -
  -  5      S:X  d   eg )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   r0   )r   s    r|   test_wild_strr  2  s    S	Aq1u:!!!s1a4y1}!1111qsQw<:%%%qsQw<:%%%q!tax=K'''q!a%y>\)))r   c                  b   SSK Jn JnJn  [	        S5      nUc  g U " S5      nU" S5      nU" S5      n[        U5      S:X  d   e[        U5      S:X  d   e[        U5      S:X  d   e[        XV-  SU-  -   5      S:X  d   e[        [        U5      [        U5      -  [        U5      -  5      S	:X  d   eg )
Nr   )WildDotWildPlusWildStarmatchpyr   w__w___r   z2**w_ + w__/w___zsqrt(w___)*sin(w_)*cos(w__))	!sympy.utilities.matchpy_connectorr  r  r  rL   r   r3   r2   r1   )r  r  r  r  wdwpwss          r|   test_wild_matchpyr  =  s    MMI&G	B	%B	&	Br7d??r7er7fruq"u}!3333s2ws2wtBx'(,IIIIr   c                  8    [        [        S5      5      S:X  d   eg )Nr   zzeta(3))r   r5   r   r   r|   	test_zetar  Q  s    tAw<9$$$r   c                  X    [         [        -
  n [        U 5      n[        U 5      nX:X  d   eg N)r   r   r   )r  r   bs      r|   test_issue_3101r  U  s&    	AAAAAA6M6r   c                      S[        [        5      -  [        [        [        5      -  S-  -
  n [        U 5      S;  d   e[        U 5      S:X  d   eg )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)))r1   r   r   r   r  s    r|   test_issue_3103r  \  sR    
47
QtAwYq[ Aq6 F F F Fq61111r   c                  T    [        [        [        5      S-   n [        U 5      S:X  d   eg )Nr   zIntegral(x, x) + 1)r6   r   r   r  s    r|   test_issue_4021r  c  s%    AAq6))))r   c                      [        S5      S:X  d   e[        S5      S:X  d   eSSS[        /n [        U 5      S:X  d   e[        U 5      S:X  d   eg )Nabcz'abc'r   r  cz[a, b, c, x]z['a', 'b', 'c', x])rm   rn   r   r  s    r|   test_sstrreprr  h  sY    ;%E?g%%%	c3A7n$$$A;....r   c                  <    [        [        [        -  5      S:X  d   eg )Nr   )rm   r   r   r   r   r|   test_infinityr  q  s    1:r   c                  Z   [        [        S5      SS9S:X  d   e[        [        S5      SS9S:X  d   e[        [        S5      SS9S:X  d   e[        [        S5      [        -  SS9S;   d   e[        [        S5      [        -  SS9S;   d   e[        [        S5      [        -  SS9S;   d   eg )	Nz0.3Trc  z0.300000000000000rs  F)z0.300000000000000*xzx*0.300000000000000)z0.3*xzx*0.3)rm   r'   r   r   r   r|   test_full_precr  u  s    %D)-@@@@%F+/BBBB%E*e333%
d+ 0    %
f- 2    %
e, 1   r   c                  $   [        SSS9u  pn[        X-  US-  -  5      S:X  d   e[        US-  U -  U-  5      S:X  d   e[        XS-  -  U-  5      S:X  d   e[        [        U 5      5      S:X  d   e[        S	[        U 5      -  5      S
:X  d   eg )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+   rm   r1   )ABCs      r|   test_noncommutativer    s    g51GA!ArE	?m+++2a	?m+++R%	?m+++Q=I%%%$q'	?k)))r   c                      [        5       n U R                  S5      S:X  d   eU R                  [        [        -  5      S:X  d   eU R                  S5      S:X  d   eg )Nr   zx*y    32)ro   emptyPrinterr   r   )str_printers    r|   test_empty_printerr    sX    ,K##E*e333##AaC(E111##B'4///r   c                  j    [        SS0S9n [        S5      nU R                  U" S5      5      S:X  d   eg )Nr^  r   )settingsr   gMD?zf(1.33))ro   r   doprint)dec_printerr   s     r|   test_decimal_printerr    s6    uQi0KAq{+y888r   c                  &    [        [        S 5        g )Nc                  (    [        [        S5      SS9$ )Nr   garbage)method)rm   r'   r   r   r|   r  test_settings.<locals>.<lambda>  s    d1Q4	:r   )rk   	TypeErrorr   r   r|   test_settingsr    s    
9:;r   c                  &   SSK Jn JnJnJnJn  U " SSS5      n[        U" US:  5      5      S:X  d   eU" SS5      n[        U" US:  5      5      S	:X  d   eU" S
S5      nU" SS5      n[        U" [        Xx5      5      R                  5      S:X  d   eg )Nr   )NormalDieExponentialpspacewherex1r   zDomain: (0 < x1) & (x1 < oo)d1r   r   zDomain: Eq(d1, 5) | Eq(d1, 6)r   r  z1Domain: (0 <= a) & (0 <= b) & (a < oo) & (b < oo))	sympy.statsr  r  r  r  r  r   r   domain)	r  r  r  r  r  XDr  r  s	            r|   test_RandomDomainr    s    CCtQAuQU| >>>>D!AuQU| ????CACAveAk"))*.aaaar   c            
      r   [        [        [        SS5      6 5      S:X  d   e[        [        [        SS5      6 5      S:X  d   e[        [        [        [        -  [        S-  /6 5      S:X  d   e[        [        [        [        [        [        5      S5      [        [        [        5      S5      5      S	:X  d   eg )
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   rD   r   r   r   r   r   r|   test_FiniteSetr    s    y%2,'(	K  
 y%1+&'+<<<<y1Q31+&'=888y9Q?A6	!AJ @A A Ar   c                  h    [        [        [        [        [        5      [
        15      5      S:X  d   eg )NzPartition({z}, {x, y}))r   r   rD   r   r   r   r   r   r|   test_Partitionr    s%    y1a1#./3KKKKr   c                  B    [        [        R                  5      S:X  d   eg )NUniversalSet)r   r'   r  r   r   r|   test_UniversalSetr    s    q~~.000r   c                     [         R                  " [        [        5      n [         [        [        4   n[	        U R                  [        [        [        -   -  5      5      [	        [        [        [        -   -  5      :X  d   e[	        UR                  [        [        -   5      5      [	        [        [        -   5      :X  d   eg r  )r^   
frac_fieldr   r   rm   convert)rw  r   s     r|   test_PrettyPolyr    sw    
aA
1a4A		!QU)$%aQi888		!a% !T!a%[000r   c                      SSK Jn JnJnJn  U " S5      nU " S5      nU" XES5      nU" U5      nU" S5      n[        U5      S:X  d   e[        U5      S:X  d   e[        U5      S	:X  d   e[        U5      S
:X  d   eg )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  s	            r|   test_categoriesr    s    $ $ 	sAsAaC AADAq6]"""q6CCCCt97777q6_$$$r   c                  X    [        SSS9u  p[        X-  5      n[        U5      S:X  d   eg )NzA BFr  zTr(A*B))r+   rp   r   )r  r  r   s      r|   test_Trr    s-    5e,DA
13Aq6Yr   c                  L    [        [        S[        -  S-   5      5      S:X  d   eg )Ng      r   z-3.0*(1.0*z - 1.0))r   r@   r   r   r   r|   test_issue_6387r    s#    vd1fqj!"&::::r   c            	         [        SSS5      [        SSS5      p[        SX-   -  5      S:X  d   e[        [        U -  5      S:X  d   e[        [        * U -  5      S:X  d   e[        S[        -   U -  5      S:X  d   e[        S[        -   * U -  5      S	:X  d   e[        [        [        X5      [        X5      5      5      S
:X  d   eg )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  s     r|   test_MatMul_MatAddr    s    Q"La$;qq!%y>[(((qs8ur!t9Aqy>[(((Qxz?l***vfQlF1L126IIIIr   c            	         [        SSS9n [        SX 5      n[        SSS5      n[        SSS5      n[        [        USS5      5      S	:X  d   e[        U[        [        S
-   2[
        [
        S
-   24   5      S:X  d   e[        U[        [        S
-   S2[
        [
        S
-   S24   5      S:X  d   e[        US [        2[
        S 24   5      S:X  d   e[        US [        2[
        S 24   5      S:X  d   e[        U[        S 2S [
        24   5      S:X  d   e[        U[        [
        2[        [        24   5      S:X  d   e[        U[        [
        [        2[        [        [        24   5      S:X  d   e[        U[        S [
        2[        S [        24   5      S:X  d   e[        US [        [
        2S [        [        24   5      S:X  d   e[        US S [        2S S [
        24   5      S:X  d   e[        [        USS5      5      S	:X  d   e[        [        US U S 4S U S 45      5      S	:X  d   e[        [        USU S 4SU S 45      5      S	:X  d   e[        [        USU S4SU S45      5      S:X  d   e[        US
SS2SSS24   5      S:X  d   e[        US
SS2SSS24   5      S:X  d   e[        US
SS2   5      S:X  d   e[        US S2S
S S24   5      S!:X  d   e[        US S2S
SS24   5      S":X  d   e[        USS SS24   5      S#:X  d   e[        USS
2SS
24   5      S$:X  d   e[        USS
S2SS
S24   5      S%:X  d   e[        X#-   SS 2SS 24   5      S&:X  d   eg )'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
  s       r|   test_MatrixSlicer    s   sD!AS!AS"b!AS"b!A{102DEF)SSSq1q5!AE'!"#'<<<<q1q5Aa!eAI%&'+DDDDq!QRy>[(((q!QRy>[(((qRaRy>[(((q1ac{},,,q1Q!A#4444qAqt!t}000q!At!t}000q1cc{},,,{1o?@IMMM{1tQoa?@IMMM{1q!TlQ4L9:iGGG{1q!Qi!Q34EEEq1Q!A#4444q1Q!A#4444q2ay>^+++q!QqU|...q!Qr!V}...qDQqDz?n,,,q1ac{{***q1Q!A?222qr12v#4444r   c                     [        [        5      [        [        5      s=:X  a  [        [        5      s=:X  a  S:X  d   e   e[        [        5      [        [        5      s=:X  a  [        [        5      s=:X  a  S:X  d   e   eg )NTrueFalse)r   r9   reprrm   r8   r   r   r|   test_true_falser    sV    t9T
:d4j:F:::::u:e>U>w>>>>>r   c                  J    [        [        [        [        5      5      S:X  d   eg )NzEquivalent(x, y))r   r7   r   r   r   r   r|   test_Equivalentr    s    z!Q $6666r   c                  H    [        [        [        [        SS95      S:X  d   eg )NFr   zx ^ y)r   r:   r   r   r   r   r|   test_Xorr    s    s1a%()W444r   c                  r    [        [        [        R                  [        R                  5      5      S:X  d   eg )NzComplement(Reals, Naturals))r   rC   r'   RealsNaturalsr   r   r|   test_Complementr    s%    z!''1::./3PPPPr   c            	      `    [        [        [        SS5      [        SS5      SS95      S:X  d   eg )Nr   r   r   Fr   z3SymmetricDifference(Interval(2, 3), Interval(3, 4)))r   rF   rE   r   r   r|   test_SymmetricDifferencer    s5    "8Aq>8Aq>5QR@A A Ar   c                  `    [        S5      u  pS[        X-   5      -  n[        U5      S:X  d   eg )Nza br   z	2*(a + b))r+   r   r   )r   r  expr1s      r|   test_UnevaluatedExprr  !  s0    5>DAoac""Eu:$$$r   c                      [        SSS5      n [        SSS5      n[        SSS5      n[        U S   5      S:X  d   e[        SU S   -  5      S:X  d   eUS   R                  X U-
  5      n[        U5      S	:X  d   eg )
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  rw  s       r|   test_MatrixElement_printingr!  '  s    S!QAS!QAS!QAqw<9$%$q1T7{{*+*	$QAAq6_$$$r   c                      [        SSS5      n [        SSS5      n[        X U-  -
  U-
  5      S:X  d   e[        X-  X-   -
  5      S:X  d   e[        U S-  5      S:X  d   e[        U S-  5      S:X  d   eg )	Nr  r   r  zA - A*B - Bz-A + A*B - Br   zA**(-1)zA**3)r<   r   )r  r  s     r|   test_MatrixSymbol_printingr#  4  s    S!QAS!QAqQ3w{},,,qsac{~---q2w<9$$$q!t9r   c                  .   [        SSS9n [        SX 5      n[        U5      S:X  d   eUR                  U-  R	                  [
        5      n[        U5      S:X  d   e[        [        S[        -  5      nX-  R	                  U5      n[        U5      S:X  d   eg )Nr   Tr   r  zLambda(_d, sin(_d)).(X.T*X)r   zLambda(x, 1/x).(n*X))r)   r<   r   T	applyfuncr3   r   r   )r   r  exprlamdas       r|   test_MatrixExpressionsr)  >  s    sD!AS!Aq6S== CCES!Dt955551acNEC??5!Dt9....r   c                      [        [        [        [        4S5      5      S:X  d   e[        [        [        [        -   [        [        4S5      5      S:X  d   eg )Nr   zSubs(x, x, 1)r   zSubs(x + y, (x, y), (1, 2)))r   r   r   r   r   r   r|   test_Subs_printingr,  N  sE    tAtT"#666tAEAq66*+/LLLLr   c                      [        [        [        5      [        [        * [        45      n U R	                  5       U S4/U /4:X  d   eg )N))r   g        r+  r   )r6   r,   r   r   as_termsr  s    r|   test_issue_15716r/  S  s>    1B3|,A::<a!789A3????r   c                      SSK Jn JnJn  [	        U " S5      5      S:X  d   e[	        U" SS5      5      S:X  d   e[	        U" SS5      5      S:X  d   eg )Nr   r=   
ZeroMatrix	OneMatrixr   r   r   r   r   )sympy.matricesr=   r2  r3  r   r1  s      r|   test_str_special_matricesr5  X  sR    >>x{s"""z!Q C'''yA3&&&r   c                  X    [        [        S[        SS45      5      [        -   (       d   eg )Nr   r   )r,   r   r   r   r   r   r|   test_issue_14567r7  _  s"    SaAY'(1,,,r   c                  t    [        [        SS/5      5      S:X  d   e[        [        SS15      5      S:X  d   eg )Nr   r   zPartition({1, 2}))r   r   r   r   r|   test_issue_21823r9  c  s<    y!Q !%8888y!Q !%8888r   c                  d    [        [        [        [        SSS9[        SSSS9SS95      S:X  d   eg )Nr   Fr   r   r   z
1/(x**2*3))r   r   r#   r   r   r   r|   test_issue_22689r;  h  s2    s3qe,c!B.FQVWX\hhhhr   c                  "   S n U " S5      S:X  d   eU " S5      S:X  d   eU " S5      S:X  d   eU " S5      S:X  d   eU " S5      S	:X  d   eU " S
5      S:X  d   eU " S5      S:X  d   eU " S5      S:X  d   eU " S5      S:X  d   eU " S5      S:X  d   eg )Nc                 (    [        [        U SS95      $ )NFr   )r   r'   )r   s    r|   r  (test_issue_21119_21460.<locals>.<lambda>m  s    3qU+,r   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   )sss    r|   test_issue_21119_21460r@  l  s    	,Be9f:!!!f:g;)###i=K'''k?m+++g;)###i=K'''o.000 $4444r   c                  l    SSK Jn   [        U " S5      5      S:X  d   e[        U " S5      5      S:X  d   eg )Nr   Strr   zStr('x'))sympy.core.symbolrC  r   rn   rB  s    r|   test_StrrE  z  s2    %s3x=CCH+++r   c                     SSK Jn JnJnJn  [        SSS9u  pEU " SS5      n[        U5      S:X  d   eU" SU5      n[        U5      S:X  d   eU" S	XtU/5      n[        U5      S	:X  d   eU" US5      n	[        U	5      S
:X  d   eg )Nr   )ManifoldPatchCoordSystemBaseScalarFieldzx yTr   r  r   Prectr   )sympy.diffgeomrG  rH  rI  rJ  r+   r   )
rG  rH  rI  rJ  r   r   mr#  rL  r  s
             r|   test_diffgeomrO    s    LL
%d
#CAaAq6S==c1Aq6S==vqa&)Dt9a Aq6S==r   c                     [        [        S5      SS9S:X  d   e[        [        S5      SS9S:X  d   e[        [        SS/5      SS9S:X  d   e[        [        SS/5      SS9S	:X  d   e[        [        / S
5      5      S:X  d   e[        [        / S5      5      S:X  d   e[        [        / S5      5      S:X  d   e[        [        / S5      5      S:X  d   eg )Nr   Tr  z1.00000000000000Fz1.0g       @z$[1.00000000000000, 2.00000000000000]z
[1.0, 2.0])r   z!ImmutableDenseNDimArray([], (0,))r  z#ImmutableDenseNDimArray([], (0, 0)))r   r   z#ImmutableDenseNDimArray([], (0, 1)))r   r   z#ImmutableDenseNDimArray([], (1, 0)))rm   rh   r   r   r|   test_NDimArrayrQ    s    	#$/3EEEE	#%0E999	3*%6:````	3*%7<GGG	"d#$(KKKK	"f%&*OOOO	"f%&*OOOO	"f%&*OOOOr   c                  B    [        [        R                  5      S:X  d   eg )NzQ.even)rm   r   evenr   r   r|   test_PredicaterT    s    <8###r   c                  V    [        [        R                  " [        5      5      S:X  d   eg )Nz	Q.even(x))rm   r   rS  r   r   r   r|   test_AppliedPredicaterV    s    q	?k)))r   c            	         [        [        SS5      5      S:X  d   e[        [        SSSS[        -
  -  S45      5      S:X  d   e[	        SSS5      n [	        S	SS5      n[        [        X-  [        S/5      5      S
:X  d   eg )Nr  )r   r   r   r   r   r   zA[2, 1/(1 - x), 0]r  r   Nz(M*N)[x, 0])rm   ri   rj   r   r<   )r  rX  s     r|   #test_printing_str_array_expressionsrY    s    C+,333S1a1gq/237KKKKS!QAS!QAQS1a&)*m;;;r   c                     [        S5      n [        S5      n[        U S:  5      [        S5      -  n[        U 5      [        S5      -  n[	        U 5      [        S5      -  n[        X5      [        S5      -  n[        U5      S:X  d   e[        U5      S:X  d   e[        U5      S:X  d   e[        U5      S:X  d   eUR                  S	:X  d   eUR                  S	:X  d   eUR                  S	:X  d   eUR                  S	:X  d   eUR                  5       S	:X  d   eUR                  5       S	:X  d   eUR                  5       S	:X  d   eg )
Nr   r   r   r   zProbability(x > 0)*IzExpectation(x)*IzVariance(x)*IzCovariance(x, y)*IF)	rK   rI   r=   rH   rJ   rG   r   r  _eval_is_commutative)r   r   z1z2z3z4s         r|   test_printing_statsr`    sD   SASA	QU	HQK	'B	Q	#B	!Xa[	 B	A	HQK	'Br7,,,,r7((((r7o%%%r7++++%%%%%%%%%%%%""$---""$---""$---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'   rD  r(   r)   r*   r+   (sympy.functions.combinatorial.factorialsr,   r-   r.   $sympy.functions.elementary.complexesr/   &sympy.functions.elementary.exponentialr0   (sympy.functions.elementary.miscellaneousr1   (sympy.functions.elementary.trigonometricr2   r3   'sympy.functions.special.delta_functionsr4   &sympy.functions.special.zeta_functionsr5   sympy.integrals.integralsr6   sympy.logic.boolalgr7   r8   r9   r:   sympy.matrices.denser;   "sympy.matrices.expressions.matexprr<   sympy.matrices.expressionsr=    sympy.matrices.expressions.slicer>   r4  r?   sympy.polys.polytoolsr@   sympy.series.limitsrA   sympy.series.orderrB   sympy.sets.setsrC   rD   rE   rF   r  rG   rH   rI   rJ   sympy.stats.rvrK   sympy.externalrL   sympy.physics.control.ltirM   rN   rO   rP   rQ   rR   rS   rT   sympy.physics.unitsrU   rV   sympy.polysrW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   sympy.geometryrc   rd   re   rf   rg   sympy.tensorrh   0sympy.tensor.array.expressions.array_expressionsri   rj   sympy.testing.pytestrk   rl   sympy.printingrm   rn   ro   sympy.physics.quantum.tracerp   r   r   r   r   r   rq   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.  r2  r4  r?  rC  rE  rG  rI  rK  r\  rh  rk  ro  rq  rt  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  r  r  r  r  r  r!  r#  r)  r,  r/  r5  r7  r9  r;  r@  rE  rO  rQ  rT  rV  rY  r`  r   r   r|   <module>r     sF    0 # 9 4 6  / 1 R R  M M Q Q Q -   / / " < < Z Z 4 6 9 ? = 7 . > > ' ; / 8 ' ( %   R R H H ' (M M M -    D D " V ? 5 5 *$1aA	#J	.x,%E:@"
+%9 3-5
;
$M
09ELN3-I`	C?4B'aTir:*D<	+;?"(6'rH$=+
JM	qV<.S	d	l@	f	l`c"M1!*J(%2*
/ $*09<
b	AL11%&;J5>?75QA
%
%/ M
@
'-9
i5,
P$*<.r   