
    Qi                         d dl 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 d d	lmZ d d
lmZmZmZ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$ d dl%m&Z&m'Z' d dl(m)Z) d dl*m+Z+ d dl,m-Z-  G d de          Z. G d de          Z/ e.            Z0 e/            Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:dS )     )
DerivativeFunctiondiff)Mul)Integerpi)Symbolsymbols)sympify)sin)QExpr)Dagger)HilbertSpace)OperatorUnitaryOperatorHermitianOperatorOuterProductDifferentialOperatorIdentityOperator)KetBraWavefunction)qapply)	represent)JzKetJzBra)Tr)eye)warns_deprecated_sympyc                   $    e Zd Zed             ZdS )	CustomKetc                     dS )N)t selfs    /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/physics/quantum/tests/test_operator.pydefault_argszCustomKet.default_args       v    N__name__
__module____qualname__classmethodr(   r$   r*   r'   r!   r!      -          [  r*   r!   c                   $    e Zd Zed             ZdS )CustomOpc                     dS )N)Tr$   r%   s    r'   r(   zCustomOp.default_args   r)   r*   Nr+   r$   r*   r'   r2   r2      r0   r*   r2   c                  V   t          d          } t          d          }t          d          }t          | t                     sJ t          | t                    sJ | j        t	          d          fk    sJ | j        du sJ | j        t                      k    sJ | |z  || z  k    sJ | ||z   z                                  | |z  | |z  z   k    sJ | |z   dz                                  | dz  | |z  z   || z  z   |dz  z   k    sJ t          j        d         t	          t          
                                d                   k    sJ t                      t          d          k    sJ t                      5  | t                      z  | k    sJ 	 d d d            d S # 1 swxY w Y   d S )NABCF   r   O)r   
isinstancer   labelr	   is_commutativehilbert_spacer   expandt_opr(   r   r   )r6   r7   r8   s      r'   test_operatorrA   '   s   AAAa"""""a7vc{{n$$$$u$$$$?lnn,,,,Q3!A#::::q1uI1Q319,,,,UQJ  AqD1Q3J1$4q!t$;;;;;:a=F4#4#4#6#6q#9::::::::#&&&&		!	! ) )!###q((((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   8FF"%F"c                      t          d          } | |                                 z  dk    sJ |                                 | z  dk    sJ d S )Nr6      )r   inv)r6   s    r'   test_operator_invrE   ?   sC    AQUUWW9>>>>557719>>>>>>r*   c                  $   t          d          } t          | t                     sJ t          | t                    sJ t          |           | k    sJ |                                 | k    sJ | j        du sJ t          |           j        du sJ d S )NHF)r   r;   r   r   rD   r=   )rG   s    r'   test_hermitianrH   E   s    #Aa*+++++a"""""!99>>>>5577a<<<<u$$$$!99#u,,,,,,r*   c                  t   t          d          } t          | t                     sJ t          | t                    sJ |                                 t	          |           k    sJ | t	          |           z  dk    sJ t	          |           | z  dk    sJ | j        du sJ t	          |           j        du sJ d S )NUrC   F)r   r;   r   rD   r   r=   )rJ   s    r'   test_unitaryrK   Q   s    Aa)))))a"""""5577fQiiVAYY;!!99Q;!u$$$$!99#u,,,,,,r*   c                  n   t                      5  t                      } t          d          }t          d          }t	          d          }t          | t                    sJ t          | t                    sJ | |z  |k    sJ || z  |k    sJ | t          |          z  t          |          k    sJ t          |          | z  t          |          k    sJ t          | | z  t                    sJ || z  |k    sJ | |z  |k    sJ |                                 | k    sJ t          |           | k    sJ t          | |z            |k    sJ t          || z            |k    sJ dD ]1}t          t          |                    t          |          k    sJ 2	 d d d            d S # 1 swxY w Y   d S )Nr:   x   )r9   rN      )r   r   r   r	   r   r;   r   rD   r   r   r   )Ir:   rM   threens        r'   test_identityrS   ^   s   		!	! < <SMM3KK

!-.....!X&&&&&1uzzzz1uzzzz6!99}q		))))ayy1}q		))))!a%!122222qyE!!!!1uzzzzuuww!||||ayyA~~~~a!e}}!!!!a!e}}!!!! 	< 	<A-a0011SVV;;;;;	<+< < < < < < < < < < < < < < < < < <s   FF**F.1F.c            	          t          d          } t          d          }t          | |          }t          |t                    sJ t          |t                    sJ |j        | k    sJ |j        |k    sJ |j        | |fk    sJ |j        du sJ | |z  }t          |t                    sJ t          |t                    sJ |j        | k    sJ |j        |k    sJ |j        | |fk    sJ |j        du sJ d| z  |z  }|t          t          d          | |          k    sJ d| |z  z  }|t          t          d          t          | |                    k    sJ t          | |z            t          t          |          t          |                     k    sJ t          | |z            j        du sJ t          t          t          dd          t          dd                                                              dk    sJ t          d| z  |          dt          | |          z  k    sJ t          | d|z            dt          | |          z  k    sJ t          d          t          d          }}t          d          t          d	          }}t          ||z   |          t          ||          t          ||          z   k    sJ t          |||z             t          ||          t          ||          z   k    sJ t          d|z  d|z  z   d
|z  d|z  z             d
t          ||          z  dt          ||          z  z   dt          ||          z  z   dt          ||          z  z   k    sJ d S )NkbFr9   rC   k1k2b1b2rN            )r   r   r   r;   r   ketbrar<   r=   r   r   r   r   r   r   doit)rU   rV   oprW   rX   rY   rZ   s          r'   test_outer_productrb   x   s   CACA	a		Bb,'''''b(#####6Q;;;;6Q;;;;81v%%%%	
1Bb,'''''b(#####6Q;;;;6Q;;;;81v%%%%	
1QBWQZZA&&&&&&	
AaCBWQZZa!3!3444444!A#;;,vayy&))<<<<<<!A#;;%.... l5A;;a4455::<<AAAA Aq!!Qa););%;;;;;1q5!!Qa););%;;;;; YYD		BYYD		Bb"%%R  <B#7#778 8 8 8R"W%%R  <B#7#778 8 8 8R!b&!b&1r6/::R$$$R$$$%R$$$% R$$$%% % % % % %r*   c                  f   t          d          } t          d          }t          | |z            t          |          t          |           z  k    sJ t          | |z             t          |           t          |          z   k    sJ t          | dz            t          |           dz  k    sJ d S )Nr6   r7   r9   )r   r   )r6   r7   s     r'   test_operator_daggerrd      s    AA!A#;;&))F1II-----!a%==F1IIq		11111!Q$<<6!99a<''''''r*   c                     t          d          } t          d          }t          t           ||           |            ||                     }t	          | dz  |           }t          ||z            t	          d| z  |           k    sJ |j        t           ||           |           k    sJ |j         ||           k    sJ |j        | fk    sJ t          ||           t          t           ||           | d           ||                     k    sJ t          t           ||           | d           ||                     }t	          | dz  |           }t          ||z            t	          d| z  |           k    sJ |j        t           ||           | d          k    sJ |j         ||           k    sJ |j        | fk    sJ t          ||           t          t           ||           | d           ||                     k    sJ t          d| z  t           ||           |           z   ||                     }|j        d| z  t           ||           |           z  k    sJ |j         ||           k    sJ |j        | fk    sJ t          ||           t          t          d| z  t           ||           |           z  |            ||                     k    sJ t          ||z            t	          d| z  |           k    sJ t          d          }t          t           || |          | d          t           || |          |d          z    || |                    }t	          | dz  |dz  z  |dz  | dz  z  z   | |          }|j        t           || |          | d          t           || |          |d          z   k    sJ |j         || |          k    sJ |j        | |fk    sJ t          ||           t          t          |j        |            || |                    k    sJ t          ||          t          t          |j        |           || |                    k    sJ t          ||z            t	          d| dz  z  d| z  |dz  z  z   d| dz  z  |z  z   d|dz  z  z   | |          k    sJ t          d          \  }}t          d|z  t          |t           |||          |          z  |          z  d|dz  z  t           |||          |d          z  z    |||                    }t	          |dz  t          |          z  ||d	t          f          }|j        d|z  t          |t           |||          |          z  |          z  d|dz  z  t           |||          |d          z  z   k    sJ |j         |||          k    sJ |j        ||fk    sJ t          ||          t          t          |j        |           |||                    k    sJ t          ||          t          t          |j        |           |||                    k    sJ t          ||z            t	          dt          |          z  ||d	t          f          k    sJ d S )
NrM   fr9   rN   r\   rC   yzr thr   )r	   r   r   r   r   r   exprfunction	variablesr   r
   r   r   )rM   rf   dgrg   wrths           r'   test_differential_operatorrp      s4   sAAZ!a00!!A$$77AQT1A!A#;;,qsA......6Z!a((((((:1;1$1::-j1q!.D.DaaddKKKKKKZ!a33QQqTT::AQT1A!A#;;,qsA......6Z!a++++++:1;1$1::-j1q!.D.DaaddKKKKKKQqSAAaDD!!4!44aadd;;A6QqSAAaDD!,,,,,,,:1;1$1::Z!JqqttQ,?,?(?CCQQqTTJJK K K K!A#;;,qsA...... 	sAZ!QA66'!QA66789!Q	A 	AAQT!Q$YAad*Aq11A6Z!QA..AAaGGQ1J1JJJJJJ:1a    ;1a&    1::Z22AAaGG<<= = = =1::Z22AAaGG<<= = = =!A#;;,qAv!AqD'81QT6!8'Ca1f'L'(!- - - - - - FOOEArQqSAj1b1.E.E,Eq!I!II1Xj1b2q&A&AABCD1Q88	M 	MAQT#b''\1r1bk22A6	!JqAAaHHa000!444	1a4AAaHHb!,,,	-- - - - :1b!!!!;1b'!!!!1::Z22AAaHH==> > > >2;;Z33QQq"XX>>? ? ? ?!A#;;,qRy!b!R[AAAAAAAAr*   c                     ddl m}  ddlm} t	          d          }t          d          }t          d          }|dz  |                                k    sJ |dz  |                                k    sJ |dz  |                                k    sJ t          dd	
          } || ||          sJ ||z   | ||          k    sJ  | ||           | ||d          k    sJ ddl	m
}  |d          } || ||          sJ ||z   | ||          k    sJ  | ||d           | ||          k    sJ t          dd	d	          }||z  dk    sJ t          dd	d	          }||z  |k    sJ t          dd	          } || ||          sJ ||z   | ||          k    sJ  | ||d           | ||          k    sJ |dz  dk    sJ |dz  |k    sJ d S )Nr   )Pow)	unchangedr:   rJ   rG   rM   T)commutativeF)evaluate)XGaterR   )integerevenrC   )rx   odd)rx   r[      )
sympy.corerr   sympy.core.exprrs   r   r   r   rD   r
   sympy.physics.quantum.gaterw   )	rr   rs   r:   rJ   rG   rM   rw   XrR   s	            r'   test_eval_powerr      s   ))))))AA#Ab5AEEGGb5AEEGGb5AEEGG4(((A9S!Qa433q!993q88ss1a%0000000000000aA9S!Qa433q!993q!e$$$Aq		1111T---Aa419999Tt,,,Aa419999T"""A9S!Qa433q!993q!e$$$cc!Qii////a419999a41999999r*   N);sympy.core.functionr   r   r   sympy.core.mulr   sympy.core.numbersr   r   sympy.core.symbolr	   r
   sympy.core.sympifyr   (sympy.functions.elementary.trigonometricr   sympy.physics.quantum.qexprr   sympy.physics.quantum.daggerr   sympy.physics.quantum.hilbertr   sympy.physics.quantum.operatorr   r   r   r   r   r   sympy.physics.quantum.stater   r   r   sympy.physics.quantum.qapplyr   sympy.physics.quantum.representr   sympy.physics.quantum.spinr   r   sympy.physics.quantum.tracer   sympy.matricesr   sympy.testing.pytestr   r!   r2   t_ketr@   rA   rE   rH   rK   rS   rb   rd   rp   r   r$   r*   r'   <module>r      s   < < < < < < < < < <       , , , , , , , , / / / / / / / / & & & & & & 8 8 8 8 8 8 - - - - - - / / / / / / 6 6 6 6 6 6> > > > > > > > > > > > > > > > ? > > > > > > > > > / / / / / / 5 5 5 5 5 5 3 3 3 3 3 3 3 3 * * * * * *       7 7 7 7 7 7               
 		xzz) ) )0  	- 	- 	-
- 
- 
-< < <44& 4& 4&n( ( (8B 8B 8Bv    r*   