
    oVh                         d dl mZ d dlmZmZmZ d dlmZmZm	Z	 d dl
mZ d dlmZmZmZ d dlmZmZ  ed      \  ZZd Zd	 Zd
 Zy)    )Ne)DummySymbolsymbols)adjoint	conjugate	transpose)	Piecewise)EijkKroneckerDelta
LeviCivita)evaluate_deltasFzx yc                     t        ddd      t        ddd      k(  sJ t        ddd      dk(  sJ t        t        d      t        d      t        d            dk(  sJ t        ddd      dk(  sJ t        ddd      dk(  sJ t        d      \  } }}t        | ||      t        | ||d      k(  sJ t        | ||       dk(  sJ t        d| |       dk(  sJ t        | ||      j	                         || z
  || z
  z  ||z
  z  dz  k(  sJ t        dddd      dk(  sJ t        d	d
ddd      dk(  sJ t        d	d
ddd      dk(  sJ t        | ||      j
                  du sJ t        t        | ||            t        | ||      k(  sJ t        t        | ||            t        | ||      k(  sJ t        t        | ||            t        | ||      k(  sJ y )N         r   zi j kF)evaluate      T)	r   r   intr   doit
is_integerr   r   r	   )ijks      c/home/dcms/DCMS/lib/python3.12/site-packages/sympy/functions/special/tests/test_tensor_functions.pytest_levicivitar      s   1a=Jq!Q////aA!###c!fc!fc!f-222aA"$$$aA!###gGAq!aA*Q1u"EEEEaA!###aA!###aA##%!a%!a%!a%)@)BBBBaAq!Q&&&aAq!$)))aAq!$***aA))T111:aA&':aA+>>>>Z1a()Z1a-@@@@Z1a()Z1a-@@@@    c                     t        d      \  } }t        dd      }t        dd      dk(  sJ t        dd      dk(  sJ t        |d      dk(  sJ t        t        t              dk(  sJ t        t        dz  t        dz  z
  t        dz  t        dz  z
        dk(  sJ t        | |       dk(  sJ t        | | dz         dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        | |z   |       dk(  sJ t        | |z   | |z         dk(  sJ t        | |z   | dz   |z         dk(  sJ t        | |      j                  ddd      dk(  sJ t        | |      j                  d	d	d      dk(  sJ t        | |      dz  dk(  sJ t        dd
      D ]B  }t        | |      |z  t        | |      k(  sJ t        | |      | z  dt        | |      z  k(  rBJ  t        | |      j                  du sJ t        t        | |            t        | |      k(  sJ t        t        | |            t        | |      k(  sJ t        t        | |            t        | |      k(  sJ t        | |      t        ||       k(  dk(  sJ t        | |      j                  t              t        dt        | |      fd      k(  sJ t        | |d| f      j                  | |d| ffk(  sJ t        | || | f      j                  | | fk(  sJ t        | |d| dz
  f      dk(  sJ t        d|d| dz
  f      dk(  sJ t        |dd| dz
  f      dk(  sJ t        || d| dz
  f      dk(  sJ y )Nzi jr   T)nonzeror   r   r   )r   r   r   
   )r   Tr   )r   r   r   xysubsranger   r   r   r	   rewriter
   r   argsdelta_range)r   r   r   ns       r   test_kronecker_deltar,   "   s   5>DAqsD!A!Q1$$$!Q1$$$!Q1$$$!Q1$$$!Q$A+q!tad{3q888!Q1$$$!QU#q(((!Q1$$$!Q1$$$!a%#q(((!a%Q'1,,,!a%Q+q000!Q$$11%56!;;;!Q$$11%56!;;;!Q"a'''1b\ Ba#Q&.A*>>>>a#aR'1^Aq-A+AAAAB !Q**d222>!Q'(N1a,@@@@^Aq)*nQ.BBBB^Aq)*nQ.BBBB1a N1a$88TAAA!Q''	2iBq!Hy6YYYY !QA',,A1v>>>!Q!Q(44!Q??? !QAaC)Q..."a!QqS*a///!R!QqS*a///!QAaC)Q...r    c                  R   t         } t        ddt              \  }}}}t        ddt              \  }}}}t        dt              \  }	}
}} | ||      dk(  sJ  | ||      dk(  sJ  | ||      j                  d	u sJ  | ||      j                  du sJ  | |	|
      j                  du sJ  | ||
      j                  d	u sJ  | |
|      j                  d	u sJ  | |
|      j                  d	u sJ  | ||
      j                  du sJ  | ||      j                  du sJ  | ||      j                  d	u sJ  | |	|
      j                  du sJ  | |	|      j                  du sJ  | |
|      j                  d	u sJ  | ||      j
                  d	u sJ  | ||      j
                  du sJ  | |	|
      j
                  d	u sJ  | ||
      j
                  d	u sJ  | |
|      j
                  d	u sJ  | ||
      j
                  du sJ  | ||      j                  du sJ  | ||      j                  d	u sJ  | |	|
      j                  d	u sJ  | |	|      j                  du sJ  | |
|      j                  d	u sJ  | ||
      j                  rJ  | ||
      j                  rJ  | |	|
      j                  sJ  | ||      j                  sJ  | ||      j                  sJ  | |
|      j                  |k(  sJ  | |
|      j                  |
k(  sJ  | |
|      j                  |k(  sJ  | |
|      j                  |
k(  sJ  | |
|      j                  |k(  sJ  | |
|      j                  |
k(  sJ  | |
|      j                  |k(  sJ  | |
|      j                  |
k(  sJ  | |
|	      j                  |	k(  sJ  | |
|	      j                  |
k(  sJ t        } | | ||
      t        |
      z        t        |      k(  sJ  | | ||
      t        |
      z        t        |      k(  sJ  | | ||
      t        |      z         | ||
      t        |      z  k(  sJ  | | ||
      t        |      z         | ||
      t        |      z  k(  sJ  | | ||      t        |      z        t        |      k(  sJ  | | ||      t        |      z        t        |      k(  sJ  | | ||      t        |      z        t        |      k(  sJ  | | ||      t        |      z        t        |      k(  sJ  | | |	|
      t        |
      z        t        |	      k(  sJ  | | |	|
      t        |	      z        t        |
      k(  sJ  | | |	|       | |	|      z  t        |      z        t        |      k(  sJ  | | |	|       | |	|      z  t        |      z        t        |      k(  sJ  | | |	|
       | |	|      z        t        |      z   | |
|      t        |      z  k(  sJ y
)zsecondquant-specific methodszi j v wT)below_fermiclsza b t u)above_fermir/   zp q r s)r/   r   FN)r   r   r   is_above_fermiis_below_fermiis_only_above_fermiis_only_below_fermi!indices_contain_equal_informationpreferred_indexkillable_indexr   r   )Dr   r   vwabtupqrsEVs                 r    test_kronecker_delta_secondquantrD   N   sS   A%@JAq!Q%@JAq!Q.JAq!QQ7a<<Q7a<<Q7!!U***Q7!!T)))Q7!!T)))Q7!!U***Q7!!U***Q7!!U***Q7!!T)))Q7!!T)))Q7!!U***Q7!!T)))Q7!!T)))Q7!!U***Q7&&%///Q7&&$...Q7&&%///Q7&&%///Q7&&%///Q7&&$...Q7&&$...Q7&&%///Q7&&%///Q7&&$...Q7&&%///Aw8888Aw8888Q74444Q74444Q74444Q7""a'''Q7!!Q&&&Q7""a'''Q7!!Q&&&Q7""a'''Q7!!Q&&&Q7""a'''Q7!!Q&&&Q7""a'''Q7!!Q&&&	Ba1gadlqt###a1gadlqt###a1gadlqAwqt|+++a1gadlqAwqt|+++a1gadlqt###a1gadlqt###a1gadlqt###a1gadlqt###a1gadlqt###a1gadlqt###a1ga1goad"#qt+++a1ga1goad"#qt+++a1ga1goqt#qAwqt|333r    N)sympy.core.relationalr   sympy.core.symbolr   r   r   $sympy.functions.elementary.complexesr   r   r	   $sympy.functions.elementary.piecewiser
   (sympy.functions.special.tensor_functionsr   r   r   sympy.physics.secondquantr   r   r$   r%   r   r,   rD    r    r   <module>rL      s?    $ 6 6 P P : W W 8u~1A,)/XC4r    