
    g?                        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- ZFd.S )/    )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          k    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           d S )Ni a bTinteger   r   xFc                  "    t                     S Nr   r$   s   [/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/tensor/tests/test_indexed.py<lambda>z'test_Idx_construction.<locals>.<lambda>   s    c!ff     c                       t          d          S Ng      ?r'    r+   r)   r*   z'test_Idx_construction.<locals>.<lambda>   s    c#hh r+   c                  $    t                     S r&   r'   ir$   s   r)   r*   z'test_Idx_construction.<locals>.<lambda>   s    c!Qii r+   c                  $    t           d          S r-   r'   r1   s   r)   r*   z'test_Idx_construction.<locals>.<lambda>   s    c!Skk r+   c                  (    t           df          S )N   r'   r0   s   r)   r*   z'test_Idx_construction.<locals>.<lambda>       c!aVnn 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=      sX   gt,,,GAq!q66SAYYq!99A1q5z******q"::QB((((U###A
9nnnn%%%
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 d S )Nr    Tr!   r1   r8   zi + 2foo)r   r   
is_integernamer1   r;   r<   s      r)   test_Idx_propertiesrC   $   s    gt,,,GAq!q66q66;#q1u::?g%%%%u::?e######r+   c                  z   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 d S )	Nr    Tr!   r   r#   r5      r#   r5   r   r   lowerupperr   rB   s      r)   test_Idx_boundsrJ   ,   s   gt,,,GAq!q66<q66<q!99?aq!99?a!e####q!99?aq!99?aq"::q    q"::r!!!!q1a&>>1$$$$q1a&>>1$$$$q&>>1$$$$q&>>1$$$$qB3)"rc))))qB3)"b((((((r+   c                  |   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 d S )	Nzi a b xTr!   r   r#   r5   rE   rF   rG   )r1   r;   r<   r$   s       r)   test_Idx_fixed_boundsrL   >   s   D111JAq!Qq66<q66<q!99?aq!99?a!e####q!99?aq!99?aq"::q    q"::r!!!!q1a&>>1$$$$q1a&>>1$$$$q&>>1$$$$q&>>1$$$$qB3)"rc))))qB3)"b((((((r+   c                     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	k    rJ d	| k    sJ d	| k    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
k    rJ t          | dk    t                    sJ | dk     rJ | dk    sJ t          | dk    t                    sJ | dk    rJ | dk     rJ | dk    sJ | dk    sJ ddlm} t          | |k     t                    sJ t          | |k    t                    sJ t          | |k    t                    sJ t          | |k    t                    sJ | |k     sJ | |k    sJ | |k    rJ | |k    rJ | |k    sJ t          | |k     t                    sJ t          | |k    t                    sJ | |k    rJ t          | |k     t                    sJ t          | |k    t                    sJ t          | |k    t                    sJ t          | |k    t                    sJ t          d          }t          d          }t          ||k     t                    sJ t          ||k    t                    sJ t          ||k    t                    sJ t          ||k    t                    sJ d S )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!88887777qa8888s7777SCC#q!!!!!3""""" a(((((!8888cAg~.....cQh,,,,,acQh)))))a!8888cAg011111qa!88887777cAg~.....cAg011111cQh)))))cQh,,,,,9999#::::c				s



#::::cCi00000cSj+.....c				cCi00000cCi!233333cSj(+++++cSj+.....]]F]]Ffvo~66666fvo'899999f&11111f&4444444r+   c                      t          dd          } t          d          | k    sJ t          d          | k    sJ t          d          | k    rJ t          d          | k     rJ d S )NrN   rO   r5   )r   r   )rN   s    r)   #test_Idx_inequalities_current_failsr]      sa    
eV

CQ443;;;;Q44#::::!!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 d S )Nr    Tr!   )r   r   funcargs)r1   r;   r<   iis       r)   test_Idx_func_argsrb      s    gt,,,GAq!	QB27BG""""	QB27BG""""	QAB27BG""""""r+   c                  d   t          dd          \  } }}t          | |                              ||          t          | |          k    sJ t          | |                              | |          t          ||          k    sJ t          |                               | d          t          d          k    sJ t          | |                              |d          t          | d          k    sJ t          | ||f                              | d          t          d||f          k    sJ d S )Nr    Tr!   r8   )r   r   subsrB   s      r)   test_Idx_subsre      s   gt,,,GAq!q!99>>!Q3q!99,,,,q!99>>!Q3q!99,,,,q66;;q!A&&&&q!99>>!Q3q!99,,,,q1a&>>q!$$A1v666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 d S )Ni jTr!   r;   c              3   $   K   | ]}|j         V  d S r&   )
is_Integer).0r;   s     r)   	<genexpr>z)test_IndexedBase_sugar.<locals>.<genexpr>   s$      77q|777777r+   )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!QKK    77RX]122%67777777777r+   c                  0   t          dd          } t          d          \  }}t          |          }t          |          }||          ||                              ||          k    sJ ddi}|d         |d                             ||          k    sJ d S )Nr1   Tr!   a br#   r8   r   r   rd   )r1   r;   r<   ABCs         r)   test_IndexedBase_subsrw      s    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         k    sJ |f         f                             ||           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                                                 k    sJ t          t          fd	           d S )
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      s   D111JAq!QC1v&&&AC1v&&&A7eAqkk!!!!QT7a1gQT7a1gll1a((((((1616?a1QT7<1a4&!AqD'1111
><<<<<(((
>------...Cq!!!A7eAhhQ499Q??ad""""
>??????+++++r+   c                     t          dd          } t          d          }t          |d          }|||          fD ]Z}|j        sJ |j        sJ |j        rJ |j        sJ |j        sJ |j        sJ t          t          |                    |k    sJ [|t          |          k    sJ |t          |dd          k    sJ ||          t          ||           k    sJ d S )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    y|>!!!|3q66{{aAA4888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 d S )NITr!   )r   r   r@   label)r   	I_inherit
I_explicits      r)   (test_IndexedBase_assumptions_inheritancer      s    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 dS )z`Regression test issue #17652.

    IndexedBase.label should not upcast subclasses of Symbol
    c                       e Zd ZdS )"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77hq>>D77h
x''''''r+   c                  |    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 d S )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00>aq!4444444r+   c                      t          dd          \  } }t          d          }t          || |          }| |j        |j         k    sJ d S )Nrg   Tr!   r;   )r   r   r_   r`   )r1   rm   r;   rt   s       r)   test_Indexed_func_argsr     sU    5$'''DAqA1aAr+   c                  @   t          dd          \  } }}t          d          \  }}t          |          }t          |          }|| |f         || |f                             ||          k    sJ || |f         || |f                             ||          k    sJ d S )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           d S )Nrg   Tr!   rt   zA[i, j]r8   c                       j         S r&   ry   )rt   s   r)   r*   z)test_Indexed_properties.<locals>.<lambda>&  s	    17 r+   n mr   r#   c                  f    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		3q66#B#B#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6Y6Q;;;;9A6[%%%%%%8d|####
>????+++5$'''DAq3	1 1ayy  U1a!e__eAq1uoo$FG G G G3Aq		3q!99--3uQ{{BBBB
>HHHHHHIIII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 d S )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   /  s   5$'''DAq5$'''DAq5$'''DAqC1v&&&A7eAqkk!!!!	3q!99c!Qii! !!'E!QUOOU1a!e__+MN N N N1c!QiiQ++1U1a[[@@@@	3q!99c!ff $q!a%,(GH H H H1c!QiiQ((.%1++======r+   c                      t          dd          \  } }t          d| | |z             }|j        dk    sJ |j        | | |z   fk    sJ d S )Nrg   Tr!   rt   r8   )r   r   r   r   r1   rm   rt   s      r)   test_complex_indicesr   =  s]    5$'''DAqQAA6Q;;;;9AE
""""""r+   c                  x    t          dd          \  } }t          d| | |z             }t          |          rJ d S )Nrg   Tr!   rt   )r   r   r
   r   s      r)   test_not_interabler   D  sE    5$'''DAqQAA{{r+   c                  @   t          dd          } | }t          d|dz
            }t          d|f          }d||dz            z  ||         z                      ||                   }||         ||dz            z                      ||                   }||k    sJ d S )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666666r+   c                     ddl m}  t          dt                    \  }}}}t          d          }t          ddd          \  }}|j        sJ t          d	t
                    \  }}	||         ||         }}
|
}|                    |           | ||          k    sJ |                    |
           | ||          k    sJ t          d
          |
z  }|                    |          t          d
           | ||          z  k    sJ |                    |
          t          d
           | ||          z  k    sJ |                    |          t          j        u sJ t          ||t           t          f                              |          t          d
 | ||          z  |t           t          f          k    sJ t          |                    |          |t           t          f          t          d
 | ||          z  |t           t          f          k    sJ t          ||t           t          f                              |                                          d
k    sJ t          |                    |
          |t           t          f                                          t          d
|t           t          f                                          k    sJ t          ||t           t          f                              |
                                          t          u sJ ||z  |z  t          d
          z  }|                    |
          |||         z   | ||          z  k    sJ |                    |          ||z  t          d
          z  k    sJ |                    |d
          t          j        u sJ t          ||t           t          f                              |
          t          | | ||          z  ||         z  |t           t          f          k    sJ t          |                    |
          |t           t          f          t          | | ||          z  ||         z  |t           t          f          k    sJ t          ||t           t          f                              |
                                          |||         z  k    sJ t          ||t           t          f                              |
          t          | | ||          z  ||         z  |t           t          f          k    sJ t          |                    |
          |t           t          f          t          | | ||          z  ||         z  |t           t          f          k    sJ t          ||t           t          f                              |
                                          |||         z  k    sJ |t          ||z            z  }|                    |
          d
|z  t          ||z            z  |z   | ||          z  k    sJ |                    |          d
|z  t          ||z            z  |z  k    sJ ||	||f         z  ||         z  }|                    |
          ||	||f         z   | ||          z  k    sJ |                    |          ||	||f         z  k    sJ |                    |	||f                   |||         z  k    sJ |                    |	||f                   | | ||          z   | ||          z  ||         z  k    sJ |                    |	||f                   | | ||          z  ||         z  k    sJ t          ||t           t          f                              |	||f                   t          | | ||          z   | ||          z  ||         z  |t           t          f          k    sJ t          ||t           t          f                              |	||f                                                   | | ||          z  ||         z  k    sJ ||                             ||                   dk    sJ ||                             ||                    | ||          k    sJ t          |||         z  |t           t          f                              ||                   t          | | ||          z  |t           t          f          k    sJ t          |||         z  |t           t          f                              ||                                                   |k    sJ t          |||         z  |t           t          f                              ||                   t          | | ||          z  |t           t          f          k    sJ t          |||         z  |t           t          f                              ||                                                   t          |z  k    sJ d S )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GGGGG,,,JAq!QA64555DAq95k***DAqqT1Q4BD99R==NN1a00000099R==NN1a000000Q44"9D99R==AaDD>>!Q#7#77777799R==AaDD>>!Q#7#77777799Q<<16!!!!ta"b\""''++s1^^Aq5I5I3IAPRsTV</X/XXXXXtyy}}q2#rl++s1^^Aq5I5I3IAPRsTV</X/XXXXXta"b\""''++0022a7777tyy}}q2#rl++0022c!a"b\6J6J6O6O6Q6QQQQQta"b\""''++0022b8888r6B;1D99R==A!H~~a';';;;;;;99Q<<27QqTT>))))99Q??af$$$$ta"b\""''++s1^^Aq5I5I3I!A$3NQRUWTWY[P\/]/]]]]]tyy}}q2#rl++s1^^Aq5I5I3I!A$3NQRUWTWY[P\/]/]]]]]ta"b\""''++0022a!f<<<<ta"b\""''++s1^^Aq5I5I3I!A$3NQRUWTWY[P\/]/]]]]]tyy}}q2#rl++s1^^Aq5I5I3I!A$3NQRUWTWY[P\/]/]]]]]ta"b\""''++0022a!f<<<<s27||D99R==AaCBG,r1NN1a4H4HHHHHH99R==AaCBG,r11111qAw;1D99R==Aa1gInnQ&:&::::::99R==Aa1gI%%%%99Qq!tW1Q4''''99Qq!tW>>!Q#7#7!7q!8L8L!LQqT!QQQQQ99Qq!tW>>!Q#7#7!7!!<<<<<ta"b\""''!Q$00CNN1a<P<P8PSaSabcefSgSg8gjklmjn8nqruwtwy{p|4}4}}}}}ta"b\""''!Q$0055771~~aQR?S?S;SVWXYVZ;ZZZZZQ499QqT??aQ499QqT??nnQ222222q1vB3|$$))!A$//3q19M9M7MPQTVSVXZ|3\3\\\\\q1vB3|$$))!A$//4466!;;;;q1vB3|$$))!A$//3q19M9M7MPQTVSVXZ|3\3\\\\\q1vB3|$$))!A$//4466"Q$>>>>>>r+   c                  6   t          d          } t          dd          }t          | |                                       | |                   | |         | |         dz  dz  z
  | |         dz  dz  z   t	          | |         dz  | |                   z   k    sJ d S )	Nrt   r1   Tr!   rV   rT   r5   x   )r   r   r   seriesr   )rt   r1   s     r)   test_indexed_seriesr     s    CAT"""Aqt99AaD!!QqTAaD!GAI%5!a%CeAaDRSGUVWXUYFZFZ%ZZZZZZZr+   c                     t          d          } t          d          \  }}}| |                                         rJ | |                             |          sJ | dd|z  z   |f                                         rJ | dd|z  z   |f                             |          rJ | dd|z  z   |f                             |          sJ | dd|z  z   |f                             |          rJ d S )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                      t          d          } t          t          d                    t          ddd          k    sJ | d                             t	          d          t          d                    dk    sJ | d                             | t          d                    dk    sJ | d                             | t          d                    dk    sJ t          t          d          d          dk    sJ d S )Ndr5   r   r#   r8   )r   ranger   rd   r   r   )r   s    r)   test_issue_12533r     s    CAuQxx  E!QNN2222Q499VC[[%((++q0000Q499Qa!!Q&&&&Q499Qa!!Q&&&&588Q1$$$$$$r+   c                  ~     t          d          t          ddf           t          t           fd           d S )Nr   r1   r   c                  0                          d          S )Ng      ?)rd   r1   r   s   r)   r*   z"test_issue_12780.<locals>.<lambda>  s    affQnn r+   )r   r   r	   r:   r   s   @@r)   test_issue_12780r     sE    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           d S )Nr   r1   r   r#   F)r   c                  $    t          d           S )Nr1   r'   r   s   r)   r*   z"test_issue_18604.<locals>.<lambda>  s    c#qkk r+   )r   r   rA   rH   rI   r	   r:   r   s   @r)   test_issue_18604r     s    AsA;;s""""sA;;!!!!sA;;A%%%%%   A
9))))*****r+   c                  v   t          d          } t          d          \  }}}t          d          \  }}}t          d          }t          | |         | |         | |                                       | |                   dk    sJ t          | |         | |         |                              | |                   dk    sJ t          | |         | |         |                              | |                   dk    sJ t          | |         | |         |                              |          dk    sJ t          | |         | |         |                              |          dk    sJ t          | |         | |         | |                                       | |                   t          ||          k    sJ t          ||| |                                       | |                   t          ||          k    sJ t           || |                   | |         |                              | |                   dk    sJ t           || |                   | |         | |                                       | |                   t           || |                   | |                   t          ||          z  k    sJ t          ||| |         dz                                | |                   dt          ||          z  | |         z  k    sJ t          | |         | |         | |         dz                                | |                   dt          ||          z  | |         z  k    sJ t          | |         |z  || |                                       | |                   d| |         z  k    sJ t          | |         |z  || |                                       | |                   d| |         z  t          ||          z  k    sJ t          | |         |z  || |                                       | |                   | |         | |         t          ||          z  z   k    sJ t          | |         |z  || |                                       | |                   | |         | |         t          ||          z  z   k    sJ t          | |         |z  || |                                       | |                   d| |         z  t          ||          z  k    sJ t          | |         |z  || |                                       | |                   t          ||          | |         z  t          ||          | |         z  z   k    sJ t          | |         |z  | |         |                              | |                   dk    sJ t          | |         |z  | |         |                              | |                   dk    sJ t          | |         |z  | |         |                              | |                   |k    sJ t          | |         |z  | |         |                              | |                   |t          ||          z  k    sJ t          | |         |z  | |         |                              | |                   dk    sJ t          | |         |z  | |         |                              | |                   |t          ||          z  k    sJ d S )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1!adA##AaD))Q....!adA##AaD))Q....!adA##A&&!++++!adA##A&&!++++!adAaD!!&&qt,,q!0D0DDDDD1ad  1&&.A*>*>>>>>!A$1q!!&&qt,,1111!A$1qt$$))!A$//:aa!ggqt3L3L^\]_`MaMa3aaaaa1adAg##AaD))Q~a/C/C-CAaD-HHHHH!adAaD!G$$))!A$//1^Aq5I5I3I!A$3NNNNN!Q1Q4  %%ad++q1v5555!Q1Q4  %%ad++q1vnQ6J6J/JJJJJ!Q1Q4  %%ad++qtad>!Q;O;O6O/OOOOO!Q1Q4  %%ad++qtad>!Q;O;O6O/OOOOO!Q1Q4  %%ad++q1vnQ6J6J/JJJJJ!Q1Q4  %%ad++~a/C/CAaD/H>Z[]^K_K_`abc`dKd/ddddd!Q!a  %%ad++q0000!Q!a  %%ad++q0000!Q!a  %%ad++q0000!Q!a  %%ad++q11E1E/EEEEE!Q!a  %%ad++q0000!Q!a  %%ad++q11E1E/EEEEEEEr+   c                     t          dt                    \  } }t          d          }t          d          \  }}}t          d          \  }}}}	}
}t          d          } || |         ||         z
  dz  |z            }t          dt                    }|                    | |                                       | |         ||         z
  t          ||          z  dz  t          t           ||          |          |f| |         ||         z
  dz  |z  f          z  |z            s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 d S )
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1adQqTkAe#$$DF&&&E99QrU$$	
1!nQ+++		

qqxx''HdQqTkAe#%
 
	

 	     99QrU  2''00	.B

q"	"qqxx''HdQqTkAe#% 	
 	 	
1Q4!A$;
>!R00021F1FFqqxx..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  k    sJ d S )NtF)commutativeuvr   )r   )r   r   r   s      r)   test_IndexedBase_commutativer     s    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     sT   8 8 8 8 8 8 8 8 8 8 8 8 8 8 / / / / / / ' ' ' ' ' ' . . . . . . * ) ) ) ) ) : : : : : : : : : :! ! ! ! ! ! ! ! ! ! ! ! " " " " " " ; ; ; ; ; ; ; ; = = = = = = = = C C C C C C $ $ $ $ $ $ & & & & & & : : : : : : : : : :0 0 0 $ $ $) ) )$) ) )$@5 @5 @5F  # # #7 7 7	8 	8 	8# # #, , ,"! ! !$	# 	# 	#( ( (5 5 5     ) ) )J J J"> > ># # #    9? 9? 9?x[ [ [* * *% % %. . .+ + +F F FB  B" " " " "r+   