
    sh                         S SK JrJrJrJr  S SKJr  S SKJr  S SK	J
r
Jr  S SKJr  S SKJrJr  S rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rg)    )symbolsSPowFunction)exp)raises)IdxIndexedBase)IndexConformanceException)get_contraction_structureget_indicesc                     [        S5      u  p[        U 5      [        5       0 4:X  d   e[        X-  5      [        5       0 4:X  d   e[        X-   5      [        5       0 4:X  d   e[        X-  5      [        5       0 4:X  d   eg )Nzx y)r   r   set)xys     y/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/sympy/tensor/tests/test_index_methods.pytest_trivial_indicesr   
   sv    5>DAq>ceR[(((qsr{***qu#%,,,qt+++    c                      [        S5      n [        S5      [        S5      p![        XU4   5      X10 4:X  d   e[        XU4   5      X!10 4:X  d   eg )Nr   ijr
   r	   r   )r   r   r   s      r   test_get_indices_Indexedr      sY    CAs8SXqqAwQFB<///qAwQFB<///r   c                      [        S5      n [        S5      [        S5      p![        U " U5      U-  5      X10 4:X  d   e[        U " X!5      5      X!10 4:X  d   e[        U " U5      U-  5      [        5       0 4:X  d   eg )Nfr   r   )r   r	   r   r   )r   r   r   s      r   test_get_indices_Idxr      sy    As8SXqqtAvA62,...qwQFB<///qtAv35"+---r   c                      [        S5      n [        S5      n[        S5      [        S5      p2[        X   X   -  5      X#10 4:X  d   e[        X   X   -  5      X#10 4:X  d   eg Nr   r   r   r   r   r   r   r   r   s       r   test_get_indices_mulr    !   sg    CACAs8SXqqtADy!qfb\111qtADy!qfb\111r   c                     ^ ^^^ [        S5      m[        S5      m[        S5      [        S5      sm m[        [        U UUU4S j5        g )Nr   r   r   r   c                  ,   > [        TT    TT   -   5      $ )N)r   r   r   r   r   s   r   <lambda>-test_get_indices_exceptions.<locals>.<lambda>-   s    k!A$1+.Fr   )r
   r	   r   r   r#   s   @@@@r   test_get_indices_exceptionsr&   )   s6    CACAs8SXDAq
$&FGr   c                      [        S5      n [        S5      n[        S5      [        S5      p2[        X   XU4   -   5      U10 4:X  d   e[        X   XU4   -   5      U10 4:X  d   eg r   r   r   s       r   test_scalar_broadcastr(   0   so    CACAs8SXqqta1g~&A3)333qta1g~&A3)333r   c                     [        S5      n [        S5      n[        S5      n[        S5      [        S5      [        S5      pTn[        X   SX   -  -   5      U10 4:X  d   e[        X   SX#U4   -  X   -  -   5      U10 4:X  d   e[        X   SX   X#U4   X   -  -   -  -   5      U10 4:X  d   e[        X   X   X$U4   S-   -  -   5      U10 4:X  d   e[        X   X   X   -  X   X$U4   X   -  -   -  -   5      U10 4:X  d   eg )	Nr   r   Ar   r   k      r   r   r   r*   r   r   r+   s         r   test_get_indices_addr/   8   s?   CACACA#hC#c(!Aqtaf}%1#r222qtaQ$in,-1#r:::qtaQ$!4556A3)CCCqtadAdGaK001qc2Y>>>	qtADy!$a4-..056C9= = =r   c            	         [        S5      n [        S5      n[        S5      n[        S5      [        S5      [        S5      pTn[        [        X   X   5      5      X410 4:X  d   e[        [        XU4   XU4   5      5      X4U10 4:X  d   e[        [        X#U4   X   X%U4   X   -  -   5      5      X510 4:X  d   e[        [        SX   5      5      [        [	        X   5      5      :X  d   e[        [        X   S5      5      U10 4:X  d   eg )Nr   r   r*   r   r   r+   r,   )r
   r	   r   r   r   r.   s         r   test_get_indices_Powr1   E   s
   CACACA#hC#c(!As14'QFB<777s1T7AdG,-1)R@@@s1T7AD1T714<$789qfb\IIIs1ad|$CI(>>>> s14|$!b	111r   c                     [        S5      n [        S5      n[        S5      [        S5      p2[        X   X   -  5      S X   X   -  10:X  d   e[        X   X   -   5      S X   X   10:X  d   e[        X   X   -  5      U4X   X   -  10:X  d   e[        SX   X   -  -   5      S [        R                  1U4X   X   -  10:X  d   e[        X   X   -  5      S X   X   -  10:X  d   eg )Nr   r   r   r   r-   )r
   r	   r   r   Oner   s       r   $test_get_contraction_structure_basicr4   S   s   CACAs8SXq$QT!$Y/D149+3FFFF$QTAD[1dQT14L5IIII$QT!$Y/QD149+3FFFF$	ADI!%%1$ad<= = =$QT14Z0TAD!$J<4HHHHr   c                  `   [        S5      n [        S5      n[        S5      n[        S5      [        S5      [        S5      pTnX   X#U4   X   -  -   nS X   1U4X#U4   X   -  10n[        U5      U:X  d   eXbXS4   -  X   -   nS X   1U4XbXS4   -  1XbXS4   -  U/0n	[        U5      U	:X  d   eg )Nr   r   r*   r   r   r+   r
   r	   r   )
r   r   r*   r   r   r+   expr1d1expr2d2s
             r   &test_get_contraction_structure_complexr;   _   s    CACACA#hC#c(!AD1T714<E
qAwqt|n	-B$U+r111AD'MAD E
uqtW}ouqtW}rd	CB$U+r111r   c            	      ^   [        S5      n [        S5      n[        S5      [        S5      [        S5      pCnXU4   XU4   -  n[        U5      S U1UU4XU4   10U4XU4   10/0:X  d   eXU4   XU4   -  n[        U5      S XU4   XU4   -  1XU4   XU4   -  U4XU4   10/0:X  d   eg Nr   r   r   r   r+   r6   )r   r   r   r   r+   ii_jjii_jks          r   %test_contraction_structure_simple_Powr@   l   s
   CACA#hC#c(!AdGQ!tWE$U+ugTAdG9TAdG9
0    dGQ!tWE$U+qAwQ$ 	Q$a4TAdG9
0   r   c                     [        S5      n [        S5      n[        S5      [        S5      [        S5      pCnX   X   X   -  -  n[        U5      S U10:X  d   eX   X   -  X   -  n[        U5      S U10:X  d   eX   X   X   -  X   -  -  n[        U5      U4U10:X  d   eX   X   X   X   -  -  -  n[        U5      U4U10:X  d   eX   X   -  [        X   XU4   -  5      -  n	[        U	5      n
U4U	1U	S [        X   XU4   -  5      1[        X   XU4   -  5      S X   XU4   -  1X   XU4   -  U4XU4   10/0/0/0nX:X  d   eg r=   )r
   r	   r   r   )r   r   r   r   r+   i_jiij_ij_ij_ij_i_ji
ij_exp_kkiresultexpecteds               r   &test_contraction_structure_Mul_and_PowrI      s   CACA#hC#c(!A4!$qt)D$T*tdVn<<<DID$T*tdVn<<<T149%%F$V,!x0@@@@T!$ad##F$V,!x0@@@@ad3qtAdG|,,J&z2F	
zlCQ!tW-.ADa4L!14Q$<.Da4LQD1T7)#4"5% $ 
	H r   c            
         [        S5      n [        S5      n[        S5      [        S5      [        S5      pCnSXU4   -   SXU4   -   -  nS U1US [        R                  1U4XU4   10S [        R                  1U4XU4   10/0n[	        U5      nXv:X  d   eSXU4   -   SXU4   -   -  nS XU4   S-   XU4   S-   -  1US [        R                  1U4XU4   10/0n	[	        U5      n
X:X  d   eg )Nr   r   r   r   r+   r-   )r
   r	   r   r3   r   )r   r   r   r   r+   	s_ii_jj_srH   rG   	s_ii_jk_s
expected_2result_2s              r   %test_contraction_structure_Add_in_PowrO      s3   CACA#hC#c(!AQ!tWAdG,IykAEE7QD1T7),AEE7QD1T7),
H 'y1FQ!tW!a1g+.IQ$!qAw{+,AEE7QD1T7),
J )3H!!!r   c                  L   [        S5      n [        S5      n[        S5      n[        S5      [        S5      [        S5      pTnXU4   XU4   X%U4   -  -  nS U1UU4XU4   10S XU4   X%U4   -  1XU4   X%U4   -  U4XU4   10U4X%U4   10/0/0n[        U5      U:X  d   eg )Nr   r   zr   r   r+   r6   )r   r   rQ   r   r   r+   ii_jj_kkrH   s           r   %test_contraction_structure_Pow_in_PowrS      s    CACACA#hC#c(!AAwQ$a4((HxjTAdG9qAwQ$'(Q$a4 TAdG9%TAdG9%#	
H %X.(:::r   c            	         [        S5      n [        S5      n[        S5      n[        S5      n[        S5      [        S5      pT[        S5      n[	        U " X$   5      5      U10 4:X  d   e[	        U " X$   X5   5      5      XE10 4:X  d   e[	        U " X4   5      U" X$   5      -  5      [        5       0 4:X  d   e[	        U " XbU   5      5      U10 4:X  d   e[	        U " XcU   X%   5      U" X$   5      -  5      U10 4:X  d   e[	        U" U " X$   5      5      5      U10 4:X  d   e[        U " X$   5      5      S U " X$   5      10:X  d   e[        U " X4   5      U" X$   5      -  5      U4U " X4   5      U" X$   5      -  10:X  d   e[        U " X4   5      U" U " X$   5      5      -  5      U4U " X4   5      U" U " X$   5      5      -  10:X  d   e[        U " X%   X4   5      U" X$   5      -  5      U4U " X%   X4   5      U" X$   5      -  10:X  d   eg )Nr   gr   r   r   r   a)r   r
   r	   r   r   r   r   )r   rU   r   r   r   r   rV   s          r   test_ufunc_supportrW      s2   AACACAs8SXqAqwQC9,,,qqt}%1&"555qwqw'CE2;666qaDz"sBi///qaD!$'!$/0aS"I===q14z"sBi///$QqtW-$14	1BBBB$	!$!$TAadGAadGO#456 6 6$	!$!AD'
!"qwq14z'9&:;< < <$	!$ag$%4!AD!$-!$*?)@"AB B Br   N)
sympy.corer   r   r   r   sympy.functionsr   sympy.testing.pytestr   sympy.tensor.indexedr	   r
   sympy.tensor.index_methodsr   r   r   r   r   r   r    r&   r(   r/   r1   r4   r;   r@   rI   rO   rS   rW    r   r   <module>r^      sh    0 0  ' 1 @ O,0.2H4
=2	I
2,8"4;,Br   