
    \h?                        S SK JrJrJrJr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Jr  S SKJrJr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   S SK!J"r"  S SK#J$r$  S SKJ%r%J&r&J'r'  S r(S r)S r*S r+S r,S r-S r.S r/S r0S r1S r2S r3S r4S r5S r6S r7S r8S  r9S! r:S" r;S# r<S$ r=S% r>S& r?S' r@S( rAS) rBS* rCS+ rDS, rES- rFg.)/    )symbolsSymbolTupleooDummy)IndexException)raises)iterable)Sum)FunctionSubs
Derivative)StrictLessThanGreaterThanStrictGreaterThanLessThan)S)explog)cossinKroneckerDelta)Order)Range)IndexedBaseIdxIndexedc                    ^^ [        SSS9u  mp[        T5      [        TS5      :w  d   e[        TU 5      [        TSU S-
  45      :X  d   e[        T[        5      [        TS[        45      :X  d   e[        SSS9m[        [        U4S j5        [        [        S	 5        [        [        UU4S
 j5        [        [        U4S j5        [        [        UU4S j5        [        [        UU4S j5        [        [        U4S j5        g )Ni a bTinteger   r   xFc                     > [        T 5      $ Nr   r$   s   W/var/www/auris/envauris/lib/python3.13/site-packages/sympy/tensor/tests/test_indexed.py<lambda>'test_Idx_construction.<locals>.<lambda>   s	    c!f    c                      [        S5      $ Ng      ?r'    r,   r)   r*   r+      s    c#hr,   c                     > [        T T5      $ r&   r'   ir$   s   r)   r*   r+      s    c!Qir,   c                     > [        T S5      $ r.   r'   r2   s   r)   r*   r+      s    c!Skr,   c                      > [        T TS45      $ )N   r'   r1   s   r)   r*   r+          c!aVnr,   c                      > [        T ST45      $ )N   r'   r1   s   r)   r*   r+       r7   r,   c                     > [        T S5      $ )N)r9   g      @r'   r4   s   r)   r*   r+   !   s    c!X.r,   )r   r   r   r	   	TypeError)abr2   r$   s     @@r)   test_Idx_constructionr>      s    gt,GAqq6SAYq!9A1q5z****q":QB(((U#A
9n%
9&'
9'(
9)*
9,-
9,-
9./r,   c                      [        SSS9u  pn[        U 5      R                  (       d   e[        U 5      R                  S:X  d   e[        U S-   5      R                  S:X  d   e[        S5      R                  S:X  d   eg )Nr    Tr!   r2   r9   zi + 2foo)r   r   
is_integernamer2   r<   r=   s      r)   test_Idx_propertiesrD   $   sk    gt,GA!q6q6;;#q1u:??g%%%u:??e###r,   c                  t   [        SSS9u  pn[        U 5      R                  b   e[        U 5      R                  b   e[        X5      R                  S:X  d   e[        X5      R                  US-
  :X  d   e[        U S5      R                  S:X  d   e[        U S5      R                  S:X  d   e[        U [        5      R                  S:X  d   e[        U [        5      R                  [        L d   e[        XU45      R                  U:X  d   e[        XU45      R                  U:X  d   e[        U S5      R                  S:X  d   e[        U S5      R                  S:X  d   e[        U [        * [        45      R                  [        * L d   e[        U [        * [        45      R                  [        L d   eg )	Nr    Tr!   r   r#   r6      r#   r6   r   r   lowerupperr   rC   s      r)   test_Idx_boundsrK   ,   s~   gt,GA!q6<<q6<<q9??aq9??a!e###q!9??aq!9??aq":q   q":r!!!qa&>1$$$qa&>1$$$q&>1$$$q&>1$$$qB3)""rc)))qB3)""b(((r,   c                  t   [        SSS9u  pp#[        U5      R                  b   e[        U5      R                  b   e[        X15      R                  S:X  d   e[        X15      R                  US-
  :X  d   e[        US5      R                  S:X  d   e[        US5      R                  S:X  d   e[        U[        5      R                  S:X  d   e[        U[        5      R                  [        L d   e[        X1U45      R                  U:X  d   e[        X1U45      R                  U:X  d   e[        US5      R                  S:X  d   e[        US5      R                  S:X  d   e[        U[        * [        45      R                  [        * L d   e[        U[        * [        45      R                  [        L d   eg )	Nzi a b xTr!   r   r#   r6   rF   rG   rH   )r2   r<   r=   r$   s       r)   test_Idx_fixed_boundsrM   >   s~   D1JA!q6<<q6<<q9??aq9??a!e###q!9??aq!9??aq":q   q":r!!!qa&>1$$$qa&>1$$$q&>1$$$q&>1$$$qB3)""rc)))qB3)""b(((r,   c                     [        SS5      n [        SS5      n[        SS5      n[        SS5      nU S	::  d   eU S	:  d   eU S	:  a   eU S	:  a   eS	U :  d   eS	U :  d   eS	U ::  a   eS	U :  a   e[        U S	5      (       d   e[        U S	5      (       d   e[        U S	5      (       a   e[	        U S	5      (       a   eU S
::  d   e[        U S
:  [        5      (       d   e[        U S
:  [        5      (       d   eU S
:  a   e[        U S:*  [        5      (       d   eU S:  a   eU S:  d   e[        U S:  [        5      (       d   eU S::  a   eU S:  a   eU S:  d   eU S:  d   eSSKJn  [        X:  [        5      (       d   e[        X:  [        5      (       d   e[        X:*  [        5      (       d   e[        X:  [        5      (       d   eX:  d   eX::  d   eX:  a   eX:  a   eX::  d   e[        X:  [        5      (       d   e[        X:  [        5      (       d   eX:  a   e[        X:  [        5      (       d   e[        X:  [        5      (       d   e[        X:*  [        5      (       d   e[        X:  [        5      (       d   e[        S5      n[        S5      n[        XV:  [        5      (       d   e[        XV:  [        5      (       d   e[        XV:*  [        5      (       d   e[        XV:  [        5      (       d   eg )Ni14r#   rF   i79)   	   i46)rF      i35)   r6   r6   rF   r#   r   r(   iNone1iNone2)r   r   r   r   r   
isinstance	sympy.abcr$   )rO   rQ   rT   rV   r$   rX   rY   s          r)   test_Idx_inequalitiesr\   P   s   
eV
C
eV
C
eV
C
eV
C!8O87N7q>a=8O8s7N7S>C=C#q!!!!3"""" a((((!8O8cAg~....cQh,,,,a=cQh))))a=!8O8cAg01111q>a=!8O87N7cg~....cg01111ch))))ch,,,,99::	?
::ci0000cj+....	?ci0000ci!23333cj(++++cj+....]F]Ffo~6666fo'89999f&1111f&4444r,   c                      [        SS5      n [        S5      U :  d   e[        S5      U :  d   e[        S5      U ::  a   e[        S5      U :  a   eg )NrO   rP   r6   )r   r   )rO   s    r)   #test_Idx_inequalities_current_failsr^      sR    
eV
CQ43;;Q4#::!!s

r,   c                     [        SSS9u  pn[        U 5      nUR                  " UR                  6 U:X  d   e[        X5      nUR                  " UR                  6 U:X  d   e[        XU45      nUR                  " UR                  6 U:X  d   eg )Nr    Tr!   )r   r   funcargs)r2   r<   r=   iis       r)   test_Idx_func_argsrc      s    gt,GA!	QB77BGG"""	QB77BGG"""	QAB77BGG"""r,   c                     [        SSS9u  pn[        X5      R                  X5      [        X5      :X  d   e[        X5      R                  X5      [        X!5      :X  d   e[        U 5      R                  U S5      [        S5      :X  d   e[        X5      R                  US5      [        U S5      :X  d   e[        XU45      R                  U S5      [        SX45      :X  d   eg )Nr    Tr!   r9   )r   r   subsrC   s      r)   test_Idx_subsrf      s    gt,GA!q9>>!3q9,,,q9>>!3q9,,,q6;;q!A&&&q9>>!Q3q!9,,,qa&>q!$Av666r,   c                     [        SSS9u  p[        S5      n[        X U5      n[        U5      nX4X4   :X  d   eX4X4   :X  d   eX4X/   :X  d   eX4[        X5         :X  d   e[	        S US   R
                  SS   5       5      (       d   eg )Ni jTr!   r<   c              3   8   #    U  H  oR                   v   M     g 7fr&   )
is_Integer).0r<   s     r)   	<genexpr>)test_IndexedBase_sugar.<locals>.<genexpr>   s     7%6||%6s   )r#   r   r#   )r   r   r   r   allra   )r2   jr<   A1A2s        r)   test_IndexedBase_sugarrr      s    5$'DAA	q	B	QBAD>>QFQFE!K   7RX]]12%677777r,   c                      [        SSS9n [        S5      u  p[        U5      n[        U5      nX0   X@   R                  X!5      :X  d   eSS0nUS   US   R                  X55      :X  d   eg )Nr2   Tr!   a br#   r9   r   r   re   )r2   r<   r=   ABCs         r)   test_IndexedBase_subsry      sl    T"A5>DAAAAA41499Q?"""	
AAQ41Q499Q?"""r,   c                    ^^^^ [        SSS9u  mmp[        SX 4S9n[        SX4S9mTR                  [        X5      :X  d   eUTT4   TTT4   :w  d   eUTT4   TTT4   R	                  X5      :X  d   eTR
                  " TR                  6 T:X  d   eTTT4   R
                  " TTT4   R                  6 TTT4   :X  d   e[        [        UU4S j5        [        [        UUU4S j5        [        SU S9mTR                  [        U 5      :X  d   eTT   R	                  TT5      TT   :X  d   e[        [        UUU4S	 j5        g )
Nzi j m nTr!   r<   shapec                     > T T   $ r&   r/   )r=   r2   s   r)   r*   (test_IndexedBase_shape.<locals>.<lambda>   s	    1Q4r,   c                     > T TTT4   $ r&   r/   )r=   r2   ro   s   r)   r*   r~      s    1Q1W:r,   Fc                     > T TT4   $ r&   r/   )r   r2   ro   s   r)   r*   r~      s    1QT7r,   )	r   r   r|   r   re   r`   ra   r	   r   )mnr<   r   r=   r2   ro   s      @@@@r)   test_IndexedBase_shaper      s:   D1JAq!Cv&ACv&A77eAk!!!QT7a1gQT7a1gll1((((66166?aQT7<<1a4&!AqD'111
><(
>-.Cq!A77eAhQ499Q?ad"""
>?+r,   c                     [        SSS9n [        S5      n[        USS9nX"U    4 H  nUR                  (       d   eUR                  (       d   eUR                  (       a   eUR
                  (       d   eUR                  (       d   eUR                  (       d   e[        [        U5      5      U:X  a  M   e   U[        U5      :w  d   eU[        USSS9:X  d   eX    [        X5      :w  d   eg )Nr2   Tr!   r<   )positive)r   real)r   r   is_real
is_complexis_imaginaryis_nonnegative
is_nonzerois_commutativer   r   r   )r2   r<   rv   cs       r)   test_IndexedBase_assumptionsr      s    sD!AsAA%A1Yyyy|||>>!!|||3q6{a  AA48888471=   r,   c                     [        SSS9n [        U 5      n[        SSS9nUR                  (       d   eUR                  (       d   eUR                  R                  (       d   eUR                  R                  (       d   eX:X  d   eg )NITr!   )r   r   rA   label)r   	I_inherit
I_explicits      r)   (test_IndexedBase_assumptions_inheritancer      su    sD!AAIS$/J    ??%%%%&&&&"""r,   c                       " S S[         5      n U " S5      n[        U5      U :X  d   e[        U5      n[        U5      U :X  d   e[        UR                  5      U :X  d   eg)zXRegression test issue #17652.

IndexedBase.label should not upcast subclasses of Symbol
c                       \ rS rSrSrg)"test_issue_17652.<locals>.SubClass   r/   N)__name__
__module____qualname____firstlineno____static_attributes__r/   r,   r)   SubClassr      s    r,   r   XN)r   typer   r   )r   r$   bases      r)   test_issue_17652r      s]    
6  	A7hq>D7h

x'''r,   c                  P  ^ ^^ [        SSS9u  mm[        STT5      m T [        [        S5      TT5      :X  d   eT [        [        S5      TT5      :X  d   e[	        [
        U UU4S j5        [	        [        S 5        T R                  T T R                  R                  TT1:X  d   eg )Nrh   Tr!   rv   c                     > [        T TT5      $ r&   r   rv   r2   ro   s   r)   r*   *test_Indexed_constructor.<locals>.<lambda>	  s    gaA.r,   c                      [        S5      $ Nrv   r   r/   r,   r)   r*   r   
  s    73<r,   )
r   r   r   r   r	   r;   r   free_symbolsr   r   r   s   @@@r)   test_Indexed_constructorr     s    5$'DAqQAsQ****C(!Q////
9./
>/0>>aq!4444r,   c                      [        SSS9u  p[        S5      n[        X U5      nX3R                  " UR                  6 :X  d   eg )Nrh   Tr!   r<   )r   r   r`   ra   )r2   ro   r<   rv   s       r)   test_Indexed_func_argsr     s=    5$'DAAaAr,   c                      [        SSS9u  pn[        S5      u  p4[        U5      n[        U5      nXPU4   X`U4   R                  XC5      :X  d   eXPU4   XPU4   R                  X!5      :X  d   eg )Nzi j kTr!   rt   ru   )r2   ro   kr<   r=   rv   rw   s          r)   test_Indexed_subsr     su    gt,GA!5>DAAAAAT7a1gll1((((T7a1gll1((((r,   c                    ^^^^ [        SSS9u  mm[        STT5      mTR                  S:X  d   eTR                  S:X  d   eTR                  TT4:X  d   eTR
                  [        S5      :X  d   eTR                  S S /:X  d   e[        [        U4S j5        [        SSS9u  n m[        S[        TT5      [        TU 5      5      R                  [        S	TS
-
  5      [        S	U S
-
  5      /:X  d   e[        S[        TT5      [        TU 5      5      R                  [        TU 5      :X  d   e[        [        UUU4S j5        g )Nrh   Tr!   rv   zA[i, j]r9   c                     > T R                   $ r&   r{   )rv   s   r)   r*   )test_Indexed_properties.<locals>.<lambda>&  s	    177r,   n mr   r#   c                  X   > [        S[        T T5      [        T5      5      R                  $ r   )r   r   r|   )r2   ro   r   s   r)   r*   r   ,  s    73Aq	3q6#B#H#Hr,   )r   r   rB   rankindicesr   r   rangesr	   r   r   r   r|   )r   rv   r2   ro   r   s    @@@@r)   test_Indexed_propertiesr     s+   5$'DAqQA66Y66Q;;99A66[%%%%88d|###
>?+5$'DAq3	11ay &U1a!e_eAq1uo$FG G G3Aq	3q!9-33uQ{BBB
>HIr,   c                     [        SSS9u  p[        SSS9u  p#[        SSS9u  pE[        SX#4S9nUR                  [        X#5      :X  d   e[	        U[        X5      [        X5      5      R                  [        SUS	-
  5      [        SUS	-
  5      /:X  d   e[	        U[        X5      [        X5      5      R                  [        X#5      :X  d   e[	        U[        X5      [        U5      5      R                  [        SUS	-
  5      S
/:X  d   e[	        U[        X5      [        U5      5      R                  [        X#5      :X  d   eg )Nrh   Tr!   zo pr   r<   r{   r   r#   )NN)r   r   r|   r   r   r   r   )r2   ro   opr   r   r<   s          r)   test_Indexed_shape_precedencer   /  s*   5$'DA5$'DA5$'DACv&A77eAk!!!	3q9c!i!!'E!QUOU1a!e_+MN N N1c!iQ+11U1[@@@	3q9c!f$fq!a%,(GH H H1c!iQ(..%+===r,   c                      [        SSS9u  p[        SX U-   5      nUR                  S:X  d   eUR                  X U-   4:X  d   eg )Nrh   Tr!   rv   r9   )r   r   r   r   r2   ro   rv   s      r)   test_complex_indicesr   =  sH    5$'DAQAA66Q;;99E
"""r,   c                  ^    [        SSS9u  p[        SX U-   5      n[        U5      (       a   eg )Nrh   Tr!   rv   )r   r   r
   r   s      r)   test_not_interabler   D  s0    5$'DAQAA{{?{r,   c                      [        SSS9n U n[        SUS-
  5      n[        SU4S9nSX2S-      -  X2   -  R                  X2   5      nX2   X2S-      -  R                  X2   5      nXE:X  d   eg )NNTr!   r2   r#   yr{   )r   r   r   coeff)r   len_yr2   r   r<   r=   s         r)   test_Indexed_coeffr   J  sz    sD!AECqACx(A	
1qS6!$ad#A	
a!fAD!A6M6r,   c                      SSK Jn   [        S[        S9u  pp4[        S5      n[        SSSS9u  pgUR                  (       d   e[        S	[
        S9u  pX   X   pU
nUR                  U5      U " X5      :X  d   eUR                  U
5      U " X5      :X  d   e[        S
5      U
-  nUR                  U5      [        S
5      U " X5      -  :X  d   eUR                  U
5      [        S
5      U " X5      -  :X  d   eUR                  U5      [        R                  L d   e[        X[        * [        45      R                  U5      [        S
U " X5      -  U[        * [        45      :X  d   e[        UR                  U5      U[        * [        45      [        S
U " X5      -  U[        * [        45      :X  d   e[        X[        * [        45      R                  U5      R                  5       S
:X  d   e[        UR                  U
5      U[        * [        45      R                  5       [        S
U[        * [        45      R                  5       :X  d   e[        X[        * [        45      R                  U
5      R                  5       [        L d   eX[-  U-  [        S
5      -  nUR                  U
5      XXU   -  U " X5      -  :X  d   eUR                  U5      X-  [        S
5      -  :X  d   eUR                  US
5      [        R                  L d   e[        X[        * [        45      R                  U
5      [        XP" X5      -  X   -  U[        * [        45      :X  d   e[        UR                  U
5      U[        * [        45      [        XP" X5      -  X   -  U[        * [        45      :X  d   e[        X[        * [        45      R                  U
5      R                  5       XXU   -  :X  d   e[        X[        * [        45      R                  U
5      [        XP" X5      -  X   -  U[        * [        45      :X  d   e[        UR                  U
5      U[        * [        45      [        XP" X5      -  X   -  U[        * [        45      :X  d   e[        X[        * [        45      R                  U
5      R                  5       XXU   -  :X  d   eU[        X-  5      -  nUR                  U
5      S
U-  [        X-  5      -  U-  U " X5      -  :X  d   eUR                  U5      S
U-  [        X-  5      -  U-  :X  d   eXYX4   -  X   -  nUR                  U
5      XYX4   -  U " X5      -  :X  d   eUR                  U5      XYX4   -  :X  d   eUR                  XU4   5      XXU   -  :X  d   eUR                  XU4   5      XP" X5      -  U " X$5      -  X   -  :X  d   eUR                  XU4   5      XP" X$5      -  X   -  :X  d   e[        X[        * [        45      R                  XU4   5      [        XP" X5      -  U " X$5      -  X   -  U[        * [        45      :X  d   e[        X[        * [        45      R                  XU4   5      R                  5       XP" X5      -  X   -  :X  d   eX   R                  X   5      S:X  d   eX   R                  X   5      U " Xg5      :X  d   e[        XXU   -  U[        * [        45      R                  X   5      [        XP" Xg5      -  U[        * [        45      :X  d   e[        XXU   -  U[        * [        45      R                  X   5      R                  5       U:X  d   e[        XXU   -  U[        * [        45      R                  X   5      [        XP" Xg5      -  U[        * [        45      :X  d   e[        XXU   -  U[        * [        45      R                  X   5      R                  5       [        U-  :X  d   eg )Nr   r   zi j k lclsr<   zm, nT)r"   finitezh Lr9   r#   )(sympy.functions.special.tensor_functionsr   r   r   r   r   diffr   Zeror   r   doitr   r   )r   r2   ro   r   lr<   r   r   hLhihjexprs                r)   test_differentiationr   T  sm   G,JA!A645DA9995k*DAT14D99R=N1000099R=N10000Q4"9D99R=AaD>!#7777799R=AaD>!#7777799Q<166!!!t"b\"''+s1^A5I3IAPRsTV</XXXXtyy}q2#rl+s1^A5I3IAPRsTV</XXXXt"b\"''+002a777tyy}q2#rl+002c!a"b\6J6O6O6QQQQt"b\"''+002b8886B;1D99R=A!H~a';;;;;99Q<27QqT>)))99Q?aff$$$t"b\"''+s1^A5I3I!$3NQRUWTWY[P\/]]]]tyy}q2#rl+s1^A5I3I!$3NQRUWTWY[P\/]]]]t"b\"''+002a!f<<<t"b\"''+s1^A5I3I!$3NQRUWTWY[P\/]]]]tyy}q2#rl+s1^A5I3I!$3NQRUWTWY[P\/]]]]t"b\"''+002a!f<<<s27|D99R=AaCBG,r1N14HHHHH99R=AaCBG,r1111w;D99R=AgInQ&:::::99R=AgI%%%99Q!tWQ4'''99Q!tW>!#7!7q8L!LQT!QQQQ99Q!tW>!#7!7!<<<<t"b\"''Q$0CN1<P8PSabcSg8gjkjn8nqruwtwy{p|4}}}}t"b\"''Q$05571~a?S;SVWVZ;ZZZZ499QT?a499QT?nQ2222q1vB3|$))!$/3q9M7MPQTVSVXZ|3\\\\q1vB3|$))!$/446!;;;q1vB3|$))!$/3q9M7MPQTVSVXZ|3\\\\q1vB3|$))!$/446"Q$>>>r,   c                      [        S5      n [        SSS9n[        X   5      R                  X   5      X   X   S-  S-  -
  X   S-  S-  -   [	        X   S-  X   5      -   :X  d   eg )	Nrv   r2   Tr!   rW   rU   r6   x   )r   r   r   seriesr   )rv   r2   s     r)   test_indexed_seriesr     sp    CAT"Aqt9AD!QTAD!GAI%5a%CeADRSGUVUYFZ%ZZZZr,   c                     [        S5      n [        S5      u  pnX   R                  5       (       a   eX   R                  U5      (       d   eU SSU-  -   U4   R                  5       (       a   eU SSU-  -   U4   R                  U5      (       a   eU SSU-  -   U4   R                  U5      (       d   eU SSU-  -   U4   R                  U5      (       a   eg )Nrv   i,j,kr#   r9   )r   r   is_constant)rv   r2   ro   r   s       r)   test_indexed_is_constantr     s    CAgGA!t!!!!4A1Q3{&&((((1Q3{&&q))))QqsUAX;""1%%%%1Q3{&&q)))))r,   c                     [        S5      n [        [        S5      5      [        SSS5      :X  d   eU S   R                  [	        S5      [        S5      5      S:X  d   eU S   R                  U [        S5      5      S:X  d   eU S   R                  U [        S5      5      S:X  d   e[        [        S5      S5      S:X  d   eg )Ndr6   r   r#   r9   )r   ranger   re   r   r   )r   s    r)   test_issue_12533r     s    CAuQx E!QN222Q499VC[%(+q000Q499Qa!Q&&&Q499Qa!Q&&&58Q1$$$r,   c                  d   ^ ^ [        S5      m[        SST45      m [        [        U U4S j5        g )Nr   r2   r   c                  (   > T R                  TS5      $ )Ng      ?)re   r2   r   s   r)   r*   "test_issue_12780.<locals>.<lambda>  s    affQnr,   )r   r   r	   r;   r   s   @@r)   test_issue_12780r     s'    AC!QA
9,-r,   c                    ^  [        S5      m [        ST 5      R                  S:X  d   e[        ST 5      R                  S:X  d   e[        ST 5      R                  T S-
  :X  d   e[        SSS9m [        [        U 4S j5        g )Nr   r2   r   r#   F)r   c                     > [        ST 5      $ )Nr2   r'   r   s   r)   r*   "test_issue_18604.<locals>.<lambda>  s    c#qkr,   )r   r   rB   rI   rJ   r	   r;   r   s   @r)   test_issue_18604r     su    AsA;s"""sA;!!!sA;A%%%% A
9)*r,   c                  	   [        S5      n [        S5      u  pn[        S5      u  pEn[        S5      n[        X   X   X   5      R	                  X   5      S:X  d   e[        X   X   U5      R	                  X   5      S:X  d   e[        X   X   U5      R	                  X   5      S:X  d   e[        X   X   U5      R	                  U5      S:X  d   e[        X   X   U5      R	                  U5      S:X  d   e[        X   X   X   5      R	                  X   5      [        X#5      :X  d   e[        XDX   5      R	                  X   5      [        X5      :X  d   e[        U" X   5      X   U5      R	                  X   5      S:X  d   e[        U" X   5      X   X   5      R	                  X   5      [        U" X   5      X   5      [        X#5      -  :X  d   e[        XDX   S-  5      R	                  X   5      S[        X5      -  X   -  :X  d   e[        X   X   X   S-  5      R	                  X   5      S[        X#5      -  X   -  :X  d   e[        X   U-  X@U   5      R	                  X   5      SX   -  :X  d   e[        X   U-  X@U   5      R	                  X   5      SX   -  [        X5      -  :X  d   e[        X   U-  X@U   5      R	                  X   5      X   X   [        X5      -  -   :X  d   e[        X   U-  X@U   5      R	                  X   5      X   X   [        X5      -  -   :X  d   e[        X   U-  X@U   5      R	                  X   5      SX   -  [        X5      -  :X  d   e[        X   U-  X@U   5      R	                  X   5      [        X5      X   -  [        X#5      X   -  -   :X  d   e[        X   U-  X   U5      R	                  X   5      S:X  d   e[        X   U-  X   U5      R	                  X   5      S:X  d   e[        X   U-  X   U5      R	                  X   5      U:X  d   e[        X   U-  X   U5      R	                  X   5      U[        X5      -  :X  d   e[        X   U-  X   U5      R	                  X   5      S:X  d   e[        X   U-  X   U5      R	                  X   5      U[        X5      -  :X  d   eg )Nrv   r   zx,y,zfr#   r   r9   )r   r   r   r   r   r   r   )rv   r2   ro   r   r$   r   zr   s           r)   test_Subs_with_Indexedr     s   CAgGA!gGA!AadAD!&&qt,111adA##AD)Q...adA##AD)Q...adA##A&!+++adA##A&!+++adAD!&&qt,q0DDDDad  &.*>>>>!$q!&&qt,111!$qt$))!$/:agqt3L^\]Ma3aaaaadAg##AD)Q~a/C-CAD-HHHHadAD!G$))!$/1^A5I3I!$3NNNNQQ4 %%ad+qv555QQ4 %%ad+qvnQ6J/JJJJQQ4 %%ad+qtad>!;O6O/OOOOQQ4 %%ad+qtad>!;O6O/OOOOQQ4 %%ad+qvnQ6J/JJJJQQ4 %%ad+~a/CAD/H>Z[K_`a`dKd/ddddQa %%ad+q000Qa %%ad+q000Qa %%ad+q000Qa %%ad+q1E/EEEEQa %%ad+q000Qa %%ad+q1E/EEEEr,   c                  h   [        S[        S9u  p[        S5      n[        S5      u  p4n[        S5      u  pgpp[        S5      nU" X   X   -
  S-  U-  5      n[        S[        S9nUR	                  X   5      R                  X   X   -
  [        X65      -  S-  [        [        U" U5      U5      U4X   X   -
  S-  U-  45      -  U-  5      (       d   eUR	                  X   5      R	                  X   5      R                  S[        X65      -  [        X75      -  [        [        U" U5      U5      U4X   X   -
  S-  U-  45      -  U-  S	X   X   -
  S-  -  [        X65      -  [        X75      -  [        [        U" U5      X5      U4X   X   -
  S-  U-  45      -  US-  -  -   5      (       d   eg )
Nzx,yr   sigmar   zm0:6r   r9   xi_1rF   )	r   r   r   r   r   dummy_eqr   r   r   )r$   r   r   r2   ro   r   m0m1m2m3m4m5r   r   _xi_1s                  r)   (test_complicated_derivative_with_Indexedr     s   5k*DAGEgGA!B"AadQTkAe#$DF&E99QU$$	
nQ++		

qx'HdQTkAe#%
	

 	    99QU  '00	.
q	"qx'HdQTkAe#%	
 	 	
14!$;
>!001FFqx.HdQTkAe#%	
	

 (		   r,   c                      [        SSS9n [        SSS9n[        S5      nU S   US   -  US   U S   -  :X  d   eU S   US   -  US   U S   -  :w  d   eg )NtF)commutativeuvr   )r   )r   r  r  s      r)   test_IndexedBase_commutativer    sp    CU+ACU+ACAQ4!9!QqT	!!!Q4!9!QqT	!!!r,   N)G
sympy.corer   r   r   r   r   sympy.tensor.indexedr   sympy.testing.pytestr	   sympy.utilities.iterablesr
   sympy.concrete.summationsr   sympy.core.functionr   r   r   sympy.core.relationalr   r   r   r   sympy.core.singletonr   &sympy.functions.elementary.exponentialr   r   (sympy.functions.elementary.trigonometricr   r   r   r   sympy.series.orderr   sympy.sets.fancysetsr   r   r   r   r>   rD   rK   rM   r\   r^   rc   rf   rr   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r/   r,   r)   <module>r     s    8 8 / ' . * : :! ! " ; = C $ & : :0 $)$)$@5F#7	8#,"!$	#(5 )J">#9?x[*%.+FBB"r,   