
    sg?                        d dl mZmZmZmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZmZ d dlmZmZmZmZ d dlmZ d d	lmZmZ d d
lmZmZ d dlm Z  d dl!m"Z" d dl#m$Z$ d dlm%Z%m&Z&m'Z' d Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d  Z9d! Z:d" Z;d# Z<d$ Z=d% Z>d& Z?d' Z@d( ZAd) ZBd* ZCd+ ZDd, ZEd- ZFy.)/    )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                     t        dd      \  } }t              t        d      k7  sJ t        |       t        d| dz
  f      k(  sJ t        t              t        dt        f      k(  sJ t        dd      t        t        fd       t        t        d	        t        t        fd
       t        t        fd       t        t        fd       t        t        fd       t        t        fd       y )Ni a bTinteger   r   xFc                      t               S Nr   r$   s   R/var/www/html/venv/lib/python3.12/site-packages/sympy/tensor/tests/test_indexed.py<lambda>z'test_Idx_construction.<locals>.<lambda>   s    c!f     c                      t        d      S Ng      ?r'    r+   r)   r*   z'test_Idx_construction.<locals>.<lambda>   s
    c#h r+   c                      t               S r&   r'   ir$   s   r)   r*   z'test_Idx_construction.<locals>.<lambda>   s    c!Qi r+   c                      t         d      S r-   r'   r1   s   r)   r*   z'test_Idx_construction.<locals>.<lambda>   s    c!Sk r+   c                       t         df      S )N   r'   r0   s   r)   r*   z'test_Idx_construction.<locals>.<lambda>       c!aVn r+   c                       t         df      S )N   r'   r0   s   r)   r*   z'test_Idx_construction.<locals>.<lambda>    r6   r+   c                      t         d      S )N)r8   g      @r'   r3   s   r)   r*   z'test_Idx_construction.<locals>.<lambda>!   s    c!X. r+   )r   r   r   r	   	TypeError)abr1   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                      t        dd      \  } }}t        |       j                  sJ t        |       j                  dk(  sJ t        | dz         j                  dk(  sJ t        d      j                  dk(  sJ y )Nr    Tr!   r1   r8   zi + 2foo)r   r   
is_integernamer1   r;   r<   s      r)   test_Idx_propertiesrC   $   sm    gt,GAq!q6q6;;#q1u:??g%%%u:??e###r+   c                  h   t        dd      \  } }}t        |       j                  J t        |       j                  J t        | |      j                  dk(  sJ t        | |      j                  |dz
  k(  sJ t        | d      j                  dk(  sJ t        | d      j                  dk(  sJ t        | t              j                  dk(  sJ t        | t              j                  t        u sJ t        | ||f      j                  |k(  sJ t        | ||f      j                  |k(  sJ t        | d      j                  dk(  sJ t        | d      j                  dk(  sJ t        | t         t        f      j                  t         u sJ t        | t         t        f      j                  t        u sJ y )	Nr    Tr!   r   r#   r5      r#   r5   r   r   lowerupperr   rB   s      r)   test_Idx_boundsrJ   ,   s   gt,GAq!q6<<q6<<q!9??aq!9??a!e###q!9??aq!9??aq":q   q":r!!!q1a&>1$$$q1a&>1$$$q&>1$$$q&>1$$$qB3)""rc)))qB3)""b(((r+   c                  j   t        dd      \  } }}}t        |      j                  J t        |      j                  J t        ||      j                  dk(  sJ t        ||      j                  |dz
  k(  sJ t        |d      j                  dk(  sJ t        |d      j                  dk(  sJ t        |t              j                  dk(  sJ t        |t              j                  t        u sJ t        |||f      j                  |k(  sJ t        |||f      j                  |k(  sJ t        |d      j                  dk(  sJ t        |d      j                  dk(  sJ t        |t         t        f      j                  t         u sJ t        |t         t        f      j                  t        u sJ y )	Nzi a b xTr!   r   r#   r5   rE   rF   rG   )r1   r;   r<   r$   s       r)   test_Idx_fixed_boundsrL   >   s   D1JAq!Qq6<<q6<<q!9??aq!9??a!e###q!9??aq!9??aq":q   q":r!!!q1a&>1$$$q1a&>1$$$q&>1$$$q&>1$$$qB3)""rc)))qB3)""b(((r+   c                  4   t        dd      } t        dd      }t        dd      }t        dd      }| d	k  sJ | d	k  sJ | d	k\  rJ | d	kD  rJ d	| k\  sJ d	| kD  sJ d	| k  rJ d	| k  rJ t        | d	      sJ t        | d	      sJ t        | d	      rJ t	        | d	      rJ | d
k  sJ t        | d
k  t              sJ t        | d
k\  t              sJ | d
kD  rJ t        | dk  t              sJ | dk  rJ | dk\  sJ t        | dkD  t              sJ | dk  rJ | dk  rJ | dk\  sJ | dkD  sJ ddlm} t        | |k  t              sJ t        | |kD  t              sJ t        | |k  t              sJ t        | |k\  t              sJ | |k  sJ | |k  sJ | |kD  rJ | |k\  rJ | |k  sJ t        | |k  t              sJ t        | |k\  t              sJ | |kD  rJ t        | |k  t              sJ t        | |kD  t              sJ t        | |k  t              sJ t        | |k\  t              sJ t        d      }t        d      }t        ||k  t              sJ t        ||kD  t              sJ t        ||k  t              sJ t        ||k\  t              sJ y )Ni14r#   rE   i79)   	   i46)rE      i35)   r5   r5   rE   r#   r   r(   iNone1iNone2)r   r   r   r   r   
isinstance	sympy.abcr$   )rN   rP   rS   rU   r$   rW   rX   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q>a=!8O87N7cAg~...cAg0111cQh)))cQh,,,99#::c	?s
#::cCi000cSj+...c	?cCi000cCi!2333cSj(+++cSj+...]F]Ffvo~666fvo'8999f&111f&444r+   c                      t        dd      } t        d      | k\  sJ t        d      | kD  sJ t        d      | k  rJ t        d      | k  rJ y )NrN   rO   r5   )r   r   )rN   s    r)   #test_Idx_inequalities_current_failsr]      sR    
eV
CQ43;;Q4#::!!s

r+   c                  $   t        dd      \  } }}t        |       } |j                  |j                   |k(  sJ t        | |      } |j                  |j                   |k(  sJ t        | ||f      } |j                  |j                   |k(  sJ y )Nr    Tr!   )r   r   funcargs)r1   r;   r<   iis       r)   test_Idx_func_argsrb      s    gt,GAq!	QB277BGG"""	QB277BGG"""	QAB277BGG"""r+   c                     t        dd      \  } }}t        | |      j                  ||      t        | |      k(  sJ t        | |      j                  | |      t        ||      k(  sJ t        |       j                  | d      t        d      k(  sJ t        | |      j                  |d      t        | d      k(  sJ t        | ||f      j                  | d      t        d||f      k(  sJ y )Nr    Tr!   r8   )r   r   subsrB   s      r)   test_Idx_subsre      s    gt,GAq!q!9>>!Q3q!9,,,q!9>>!Q3q!9,,,q6;;q!A&&&q!9>>!Q3q!9,,,q1a&>q!$A1v666r+   c                  "   t        dd      \  } }t        d      }t        || |      }t        |      }||| |f   k(  sJ ||| |f   k(  sJ ||| |g   k(  sJ ||t        | |         k(  sJ t	        d |d   j
                  dd  D              sJ y )Ni jTr!   r;   c              3   4   K   | ]  }|j                     y wr&   )
is_Integer).0r;   s     r)   	<genexpr>z)test_IndexedBase_sugar.<locals>.<genexpr>   s     7q||7s   )r#   r   r#   )r   r   r   r   allr`   )r1   jr;   A1A2s        r)   test_IndexedBase_sugarrp      s    5$'DAqA	Aq	B	QBAqD>>QFQFE!QK   7RX]]12%67777r+   c                      t        dd      } t        d      \  }}t        |      }t        |      }||    ||    j                  ||      k(  sJ ddi}|d   |d   j                  ||      k(  sJ y )Nr1   Tr!   a br#   r8   r   r   rd   )r1   r;   r<   ABCs         r)   test_IndexedBase_subsrw      sv    T"A5>DAqAAAAQ41Q499Q?"""	
AAQ41Q499Q?"""r+   c                     t        dd      \  } }t        d| | f      }t        d| |f      j                  t        | |      k(  sJ |f   f   k7  sJ |f   f   j	                  ||       k(  sJ  j
                  j                   k(  sJ  f   j
                  f   j                   f   k(  sJ t        t        fd       t        t        fd       t        d|       j                  t        |       k(  sJ    j	                           k(  sJ t        t        fd	       y )
Nzi j m nTr!   r;   shapec                          S r&   r.   )r<   r1   s   r)   r*   z(test_IndexedBase_shape.<locals>.<lambda>   s    1Q4 r+   c                       f   S r&   r.   )r<   r1   rm   s   r)   r*   z(test_IndexedBase_shape.<locals>.<lambda>   s    1Q1W: r+   Fc                       f   S r&   r.   )r}   r1   rm   s   r)   r*   z(test_IndexedBase_shape.<locals>.<lambda>   s    1QT7 r+   )	r   r   rz   r   rd   r_   r`   r	   r   )mnr;   r}   r<   r1   rm   s      @@@@r)   test_IndexedBase_shaper      sH   D1JAq!QC1v&AC1v&A77eAqk!!!QT7a1gQT7a1gll1a((((166166?a1QT7<<1a4&!AqD'111
><(
>-.Cq!A77eAhQ499Q?ad"""
>?+r+   c                     t        dd      } t        d      }t        |d      }|||    fD ]o  }|j                  sJ |j                  sJ |j                  rJ |j
                  sJ |j                  sJ |j                  sJ t        t        |            |k(  roJ  |t        |      k7  sJ |t        |dd      k(  sJ ||    t        ||       k7  sJ y )Nr1   Tr!   r;   )positive)r   real)r   r   is_real
is_complexis_imaginaryis_nonnegative
is_nonzerois_commutativer   r   r   )r1   r;   rt   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Q471a=   r+   c                      t        dd      } t        |       }t        dd      }|j                  sJ |j                  sJ |j                  j                  sJ |j                  j                  sJ ||k(  sJ y )NITr!   )r   r   r@   label)r   	I_inherit
I_explicits      r)   (test_IndexedBase_assumptions_inheritancer      sw    sD!AAIS$/J    ??%%%%&&&&
"""r+   c                       G d dt               }  | d      }t        |      | k(  sJ t        |      }t        |      | k(  sJ t        |j                        | k(  sJ y)z`Regression test issue #17652.

    IndexedBase.label should not upcast subclasses of Symbol
    c                       e Zd Zy)"test_issue_17652.<locals>.SubClassN)__name__
__module____qualname__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                  N    t        dd      \  t        d        t        t        d            k(  sJ  t        t        d            k(  sJ t	        t
         fd       t	        t        d         j                    j                  j                  hk(  sJ y )Nrg   Tr!   rt   c                      t               S r&   r   rt   r1   rm   s   r)   r*   z*test_Indexed_constructor.<locals>.<lambda>	  s    gaA. r+   c                      t        d      S Nrt   r   r.   r+   r)   r*   z*test_Indexed_constructor.<locals>.<lambda>
  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                      t        dd      \  } }t        d      }t        || |      }| |j                  |j                   k(  sJ y )Nrg   Tr!   r;   )r   r   r_   r`   )r1   rm   r;   rt   s       r)   test_Indexed_func_argsr     sE    5$'DAqA1aAr+   c                      t        dd      \  } }}t        d      \  }}t        |      }t        |      }|| |f   || |f   j                  ||      k(  sJ || |f   || |f   j                  ||      k(  sJ y )Nzi j kTr!   rr   rs   )r1   rm   kr;   r<   rt   ru   s          r)   test_Indexed_subsr     s    gt,GAq!5>DAqAAAAQT7a1gll1a((((QT7a1gll1a((((r+   c                     t        dd      \  t        d      j                  dk(  sJ j                  dk(  sJ j                  fk(  sJ j
                  t        d      k(  sJ j                  d d gk(  sJ t        t        fd       t        dd      \  } t        dt              t        |             j                  t        d	d
z
        t        d	| d
z
        gk(  sJ t        dt              t        |             j                  t        |       k(  sJ t        t        fd       y )Nrg   Tr!   rt   zA[i, j]r8   c                       j                   S r&   ry   )rt   s   r)   r*   z)test_Indexed_properties.<locals>.<lambda>&  s    177 r+   n mr   r#   c                  X    t        dt               t                    j                  S r   )r   r   rz   )r1   rm   r   s   r)   r*   z)test_Indexed_properties.<locals>.<lambda>,  s     73Aq	3q6#B#H#H r+   )r   r   rA   rankindicesr   r   rangesr	   r   r   r   rz   )r   rt   r1   rm   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                     t        dd      \  } }t        dd      \  }}t        dd      \  }}t        d||f      }|j                  t        ||      k(  sJ t	        |t        | |      t        ||            j                  t        d|d	z
        t        d|d	z
        gk(  sJ t	        |t        | |      t        ||            j                  t        ||      k(  sJ t	        |t        | |      t        |            j                  t        d|d	z
        d
gk(  sJ t	        |t        | |      t        |            j                  t        ||      k(  sJ y )Nrg   Tr!   zo pr   r;   ry   r   r#   )NN)r   r   rz   r   r   r   r   )r1   rm   opr   r   r;   s          r)   test_Indexed_shape_precedencer   /  sD   5$'DAq5$'DAq5$'DAqC1v&A77eAqk!!!	3q!9c!Qi!!'E!QUOU1a!e_+MN N N1c!QiQ+11U1a[@@@	3q!9c!f$fq!a%,(GH H H1c!QiQ(..%1+===r+   c                      t        dd      \  } }t        d| | |z         }|j                  dk(  sJ |j                  | | |z   fk(  sJ y )Nrg   Tr!   rt   r8   )r   r   r   r   r1   rm   rt   s      r)   test_complex_indicesr   =  sN    5$'DAqQAA66Q;;99AE
"""r+   c                  ^    t        dd      \  } }t        d| | |z         }t        |      rJ y )Nrg   Tr!   rt   )r   r   r
   r   s      r)   test_not_interabler   D  s2    5$'DAqQAA{?{r+   c                      t        dd      } | }t        d|dz
        }t        d|f      }d||dz      z  ||   z  j                  ||         }||   ||dz      z  j                  ||         }||k(  sJ y )NNTr!   r1   r#   yry   )r   r   r   coeff)r   len_yr1   r   r;   r<   s         r)   test_Indexed_coeffr   J  s    sD!AECqACx(A	
1QqS6!A$ad#A	
1a!fAaD!A6M6r+   c                     ddl m}  t        dt              \  }}}}t        d      }t        ddd      \  }}|j                  sJ t        d	t
              \  }}	||   ||   }}
|
}|j                  |       | ||      k(  sJ |j                  |
       | ||      k(  sJ t        d
      |
z  }|j                  |      t        d
       | ||      z  k(  sJ |j                  |
      t        d
       | ||      z  k(  sJ |j                  |      t        j                  u sJ t        ||t         t        f      j                  |      t        d
 | ||      z  |t         t        f      k(  sJ t        |j                  |      |t         t        f      t        d
 | ||      z  |t         t        f      k(  sJ t        ||t         t        f      j                  |      j                         d
k(  sJ t        |j                  |
      |t         t        f      j                         t        d
|t         t        f      j                         k(  sJ t        ||t         t        f      j                  |
      j                         t        u sJ ||z  |z  t        d
      z  }|j                  |
      |||   z   | ||      z  k(  sJ |j                  |      ||z  t        d
      z  k(  sJ |j                  |d
      t        j                  u sJ t        ||t         t        f      j                  |
      t        | | ||      z  ||   z  |t         t        f      k(  sJ t        |j                  |
      |t         t        f      t        | | ||      z  ||   z  |t         t        f      k(  sJ t        ||t         t        f      j                  |
      j                         |||   z  k(  sJ t        ||t         t        f      j                  |
      t        | | ||      z  ||   z  |t         t        f      k(  sJ t        |j                  |
      |t         t        f      t        | | ||      z  ||   z  |t         t        f      k(  sJ t        ||t         t        f      j                  |
      j                         |||   z  k(  sJ |t        ||z        z  }|j                  |
      d
|z  t        ||z        z  |z   | ||      z  k(  sJ |j                  |      d
|z  t        ||z        z  |z  k(  sJ ||	||f   z  ||   z  }|j                  |
      ||	||f   z   | ||      z  k(  sJ |j                  |      ||	||f   z  k(  sJ |j                  |	||f         |||   z  k(  sJ |j                  |	||f         | | ||      z   | ||      z  ||   z  k(  sJ |j                  |	||f         | | ||      z  ||   z  k(  sJ t        ||t         t        f      j                  |	||f         t        | | ||      z   | ||      z  ||   z  |t         t        f      k(  sJ t        ||t         t        f      j                  |	||f         j                         | | ||      z  ||   z  k(  sJ ||   j                  ||         dk(  sJ ||   j                  ||          | ||      k(  sJ t        |||   z  |t         t        f      j                  ||         t        | | ||      z  |t         t        f      k(  sJ t        |||   z  |t         t        f      j                  ||         j                         |k(  sJ t        |||   z  |t         t        f      j                  ||         t        | | ||      z  |t         t        f      k(  sJ t        |||   z  |t         t        f      j                  ||         j                         t        |z  k(  sJ y )Nr   r   zi j k lclsr;   zm, nT)r"   finitezh Lr8   r#   )(sympy.functions.special.tensor_functionsr   r   r   r   r   diffr   Zeror   r   doitr   r   )r   r1   rm   r   lr;   r   r   hLhihjexprs                r)   test_differentiationr   T  s   G,JAq!QA645DAq9995k*DAqqT1Q4BD99R=N1a000099R=N1a0000Q4"9D99R=AaD>!Q#7777799R=AaD>!Q#7777799Q<166!!!ta"b\"''+s1^Aq5I3IAPRsTV</XXXXtyy}q2#rl+s1^Aq5I3IAPRsTV</XXXXta"b\"''+002a777tyy}q2#rl+002c!a"b\6J6O6O6QQQQta"b\"''+002b888r6B;1D99R=A!H~a';;;;;99Q<27QqT>)))99Q?aff$$$ta"b\"''+s1^Aq5I3I!A$3NQRUWTWY[P\/]]]]tyy}q2#rl+s1^Aq5I3I!A$3NQRUWTWY[P\/]]]]ta"b\"''+002a!f<<<ta"b\"''+s1^Aq5I3I!A$3NQRUWTWY[P\/]]]]tyy}q2#rl+s1^Aq5I3I!A$3NQRUWTWY[P\/]]]]ta"b\"''+002a!f<<<s27|D99R=AaCBG,r1N1a4HHHHH99R=AaCBG,r1111qAw;1D99R=Aa1gInQ&:::::99R=Aa1gI%%%99Qq!tW1Q4'''99Qq!tW>!Q#7!7q!8L!LQqT!QQQQ99Qq!tW>!Q#7!7!!<<<<ta"b\"''!Q$0CN1a<P8PSabcefSg8gjklmjn8nqruwtwy{p|4}}}}ta"b\"''!Q$05571~aQR?S;SVWXYVZ;ZZZZQ499QqT?aQ499QqT?nQ2222q1vB3|$))!A$/3q19M7MPQTVSVXZ|3\\\\q1vB3|$))!A$/446!;;;q1vB3|$))!A$/3q19M7MPQTVSVXZ|3\\\\q1vB3|$))!A$/446"Q$>>>r+   c                      t        d      } t        dd      }t        | |         j                  | |         | |   | |   dz  dz  z
  | |   dz  dz  z   t	        | |   dz  | |         z   k(  sJ y )	Nrt   r1   Tr!   rV   rT   r5   x   )r   r   r   seriesr   )rt   r1   s     r)   test_indexed_seriesr     s    CAT"Aqt9AaD!QqTAaD!GAI%5!a%CeAaDRSGUVWXUYFZ%ZZZZr+   c                  |   t        d      } t        d      \  }}}| |   j                         rJ | |   j                  |      sJ | dd|z  z   |f   j                         rJ | dd|z  z   |f   j                  |      rJ | dd|z  z   |f   j                  |      sJ | dd|z  z   |f   j                  |      rJ y )Nrt   i,j,kr#   r8   )r   r   is_constant)rt   r1   rm   r   s       r)   test_indexed_is_constantr     s    CAgGAq!t!!!Q4A1Q3{&&(((1Q3{&&q)))QqsUAX;""1%%%1Q3{&&q))))r+   c                  z   t        d      } t        t        d            t        ddd      k(  sJ | d   j                  t	        d      t        d            dk(  sJ | d   j                  | t        d            dk(  sJ | d   j                  | t        d            dk(  sJ t        t        d      d      dk(  sJ y )Ndr5   r   r#   r8   )r   ranger   rd   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                  b     t        d      t        ddf       t        t         fd       y )Nr   r1   r   c                  (     j                  d      S )Ng      ?)rd   r1   r   s   r)   r*   z"test_issue_12780.<locals>.<lambda>  s    affQn r+   )r   r   r	   r:   r   s   @@r)   test_issue_12780r     s'    AC!QA
9,-r+   c                      t        d       t        d       j                  dk(  sJ t        d       j                  dk(  sJ t        d       j                   dz
  k(  sJ t        dd       t        t         fd       y )Nr   r1   r   r#   F)r   c                      t        d       S )Nr1   r'   r   s   r)   r*   z"test_issue_18604.<locals>.<lambda>  s    c#qk r+   )r   r   rA   rH   rI   r	   r:   r   s   @r)   test_issue_18604r     su    AsA;s"""sA;!!!sA;A%%%% A
9)*r+   c                  H
   t        d      } t        d      \  }}}t        d      \  }}}t        d      }t        | |   | |   | |         j	                  | |         dk(  sJ t        | |   | |   |      j	                  | |         dk(  sJ t        | |   | |   |      j	                  | |         dk(  sJ t        | |   | |   |      j	                  |      dk(  sJ t        | |   | |   |      j	                  |      dk(  sJ t        | |   | |   | |         j	                  | |         t        ||      k(  sJ t        ||| |         j	                  | |         t        ||      k(  sJ t         || |         | |   |      j	                  | |         dk(  sJ t         || |         | |   | |         j	                  | |         t         || |         | |         t        ||      z  k(  sJ t        ||| |   dz        j	                  | |         dt        ||      z  | |   z  k(  sJ t        | |   | |   | |   dz        j	                  | |         dt        ||      z  | |   z  k(  sJ t        | |   |z  || |         j	                  | |         d| |   z  k(  sJ t        | |   |z  || |         j	                  | |         d| |   z  t        ||      z  k(  sJ t        | |   |z  || |         j	                  | |         | |   | |   t        ||      z  z   k(  sJ t        | |   |z  || |         j	                  | |         | |   | |   t        ||      z  z   k(  sJ t        | |   |z  || |         j	                  | |         d| |   z  t        ||      z  k(  sJ t        | |   |z  || |         j	                  | |         t        ||      | |   z  t        ||      | |   z  z   k(  sJ t        | |   |z  | |   |      j	                  | |         dk(  sJ t        | |   |z  | |   |      j	                  | |         dk(  sJ t        | |   |z  | |   |      j	                  | |         |k(  sJ t        | |   |z  | |   |      j	                  | |         |t        ||      z  k(  sJ t        | |   |z  | |   |      j	                  | |         dk(  sJ t        | |   |z  | |   |      j	                  | |         |t        ||      z  k(  sJ y )Nrt   r   zx,y,zfr#   r   r8   )r   r   r   r   r   r   r   )rt   r1   rm   r   r$   r   zr   s           r)   test_Subs_with_Indexedr     s   CAgGAq!gGAq!A!adAaD!&&qt,111!adA##AaD)Q...!adA##AaD)Q...!adA##A&!+++!adA##A&!+++!adAaD!&&qt,q!0DDDD1ad  1&.A*>>>>!A$1q!&&qt,111!A$1qt$))!A$/:a!gqt3L^\]_`Ma3aaaa1adAg##AaD)Q~a/C-CAaD-HHHH!adAaD!G$))!A$/1^Aq5I3I!A$3NNNN!Q1Q4 %%ad+q1v555!Q1Q4 %%ad+q1vnQ6J/JJJJ!Q1Q4 %%ad+qtad>!Q;O6O/OOOO!Q1Q4 %%ad+qtad>!Q;O6O/OOOO!Q1Q4 %%ad+q1vnQ6J/JJJJ!Q1Q4 %%ad+~a/CAaD/H>Z[]^K_`abc`dKd/dddd!Q!a %%ad+q000!Q!a %%ad+q000!Q!a %%ad+q000!Q!a %%ad+q11E/EEEE!Q!a %%ad+q000!Q!a %%ad+q11E/EEEEr+   c                     t        dt              \  } }t        d      }t        d      \  }}}t        d      \  }}}}	}
}t        d      } || |   ||   z
  dz  |z        }t        dt              }|j	                  | |         j                  | |   ||   z
  t        ||      z  dz  t        t         ||      |      |f| |   ||   z
  dz  |z  f      z  |z        sJ |j	                  | |         j	                  | |         j                  dt        ||      z  t        ||      z  t        t         ||      |      |f| |   ||   z
  dz  |z  f      z  |z  d	| |   ||   z
  dz  z  t        ||      z  t        ||      z  t        t         ||      ||      |f| |   ||   z
  dz  |z  f      z  |dz  z  z         sJ y )
Nzx,yr   sigmar   zm0:6r   r8   xi_1rE   )	r   r   r   r   r   dummy_eqr   r   r   )r$   r   r   r1   rm   r   m0m1m2m3m4m5r   r   _xi_1s                  r)   (test_complicated_derivative_with_Indexedr     s#   5k*DAqGEgGAq!Br"R2AadQqTkAe#$DF&E99QrU$$	
1!nQ++		

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

 	   99QrU  2'00	.B
q"	"qx'HdQqTkAe#%	
 	 	
1Q4!A$;
>!R0021FFqx.HdQqTkAe#%	
	

 (		  r+   c                      t        dd      } t        dd      }t        d      }| d   |d   z  |d   | d   z  k(  sJ | d   |d   z  |d   | d   z  k7  sJ y )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=   rC   rJ   rL   r[   r]   rb   re   rp   rw   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+   