
    Qi                     
   d dl 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 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 d dlmZ d dlmZmZ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,m-Z- d dl.m/Z/m0Z0m1Z1 d dl2m3Z3  e	d          \  Z4Z5Z6Z7 e$dd           Z8 e$dd          Z9 e$dd          Z: ed          Z; G d de          Z<d Z=d Z>d Z?d Z@d ZAd ZBd  ZCd! ZDd" ZEd# ZFd$ ZGd% ZHd& ZId'S )(    )Mul)IIntegerRational)S)symbols)sqrt)AntiCommutator)
Commutator)hbar)Dagger)HXGateIdentityGate)OperatorIdentityOperator)qapply)JxJyJzJplusJminusJ2JzKet)TensorProduct)Ket)Density)QubitQubitBra)BosonOpBosonFockKetBosonFockBra)warns_deprecated_sympyz	j j' m m'   Ac                       e Zd Zd ZdS )Fooc                     |S )N )selfketoptionss      /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/physics/quantum/tests/test_qapply.py_apply_operator_JzKetzFoo._apply_operator_JzKet!   s    
    N)__name__
__module____qualname__r/   r*   r0   r.   r(   r(       s#            r0   r(   c                  l   t          t          t          z            t          t          z  k    sJ t          t          t
          z            t          t          z  t          d          z  t          t          z  t          d          z  z   k    sJ t          t          t          z   t
          z  t          d          z            t          t          z  t          t          z  z   k    sJ t          t          t          t          z   z            t          t          z  t          t          z  z
  k    sJ t          t          t          z  t          t          z  z             t          t          z  t          t          z  z
  k    sJ t          t          t          z  t          z            dt          dz  z  t          z  k    sJ t          t          dz  t          z            dt          dz  z  t          z  k    sJ t          t          dz  t          dz  z  t          z            dt          dz  z  t          z  k    sJ d S N      )
r   r   por   r   zr	   mor   r   r*   r0   r.   
test_basicr;   %   s   "R%==DG####"Q$<<47477?T"WT!WW_<<<<<56>1$T!WW,--b471BBBBB"b2g,47T"W#44444"R%"R%-  DGd2g$55555&-"##qqy|3333%(2+!D!G)B,....%(619$R'((AdAgIbL888888r0   c                     t           j        t          z  t           z  } t          t          t
          z  | z            t          t
          z  | z  k    sJ t          t          t           z  | z            t          t
          z  t          d          z  t          t          z  t          d          z  z   | z  k    sJ t          t          t          z   t           z  t          d          z  | z            t          t
          z  | z  t          t          z  | z  z   k    sJ t          t          t
          t          z   z  | z            t          t
          z  | z  t          t          z  | z  z
  k    sJ t          t          t
          z  | z  t          t          z  | z  z             t          t
          z  | z  t          t          z  | z  z
  k    sJ t          t          t          z  t
          z  | z            dt          dz  z  t          z  | z  k    sJ t          t          dz  t          z  | z            dt          dz  z  t
          z  | z  k    sJ t          t          dz  t          dz  z  t
          z  | z            dt          dz  z  t
          z  | z  k    sJ d S r5   )r9   dualr&   r   r   r8   r   r   r	   r:   r   r   )extras    r.   
test_extrar?   0   s   F1HQJE"R%+$r'%-////"Q$u*$r'$q''/DGDGGO"CU!JJJJJ	477"5(* *-1"WU]T"WU]-JK K K K"b2g,u$%%bb)FFFFF"R%+2e+,,RR0MMMMM&-"5())QtQwYr\%-?????%(2+e#$$$'	"U(:::::%(619$R'-..!D!G)B,u2DDDDDDDr0   c                     t          t          j        t          z  t          z  d          t          t          j        t          z  z  k    sJ t          t          j        t          z  t          z            t          k    sJ d S )NFip_doit)r   r8   r=   r   r   r*   r0   r.   test_innerproductrC   =   s^    "'"*R-///43DDDDD"'"*R-  D((((((r0   c                  t    t          d          dk    sJ t          t          d                    dk    sJ d S )Nr   )r   r   r*   r0   r.   	test_zerorE   B   s:    !99>>>>'!**""""""r0   c                     t          t          t          t                    t          z  t
          z            t          t          dz  z  t
          z  k    sJ t          t          t          t                    t          z  t
          z            dk    sJ t          t          t          t          d                    t
          z            dk    sJ t          t          t          d          t                    t
          z            dk    sJ d S )N   r   F)
r   r   r   r   r   r8   r   r   r   r(   r*   r0   r.   test_commutatorrI   G   s    *R$$R'*++qqy|;;;;*R$$R'*++q0000*RS**2-..!3333*SXXr**2-..!333333r0   c                  :   t          t          t          t          d                    t          z            dt
          z  t          z  k    sJ t          t          t          d          t                    t          z            dt
          z  t          z  k    sJ d S )NrH   r6   )r   r
   r   r(   r8   r   r*   r0   r.   test_anticommutatorrK   N   st    .SXX..r122afRi????.S2..r122afRi??????r0   c                     t           t          t          j        z  z  t           z  t          z  } t	          |           t
          dz   t          z  k    sJ t	          | d          t
          dz   t          j        t          z  z  t          z  k    sJ t	          |                                           t
          dz   t          z  k    sJ d S )Nr6   FrA   )r   r:   r8   r=   r   r   doit)es    r.   test_outerproductrO   S   s    
BrwJ2A!99q####!U###ax'<R'?????!99>>ax{******r0   c            	         t          d          } t          d          }t          t          d          t          d                    }t          t          d          t          d                    }t          t          d          t          d                    }t          t          d          t          d                    }t          t          d          t          d                    }t	          t          | |dz            |z            t          d          |z  k    sJ t	          t          | t          |          |z            |z            d|z  k    sJ t	          |t          | ||z            z  d          t          d          |z  k    sJ t	          ||z                                            t          j	        k    sJ t	          t          | ||z            |z            t          d          |z  k    sJ t	          t          t          | ||z            |z            d          t          d          t          |          z  k    sJ d S )Nabr$   r6   r   Tdagger)
r    r   r!   r"   r   r	   r   rM   r   One)rQ   rR   ket1ket2ket3bra1bra2s          r.   test_tensorproductr[   Z   s   AAa,q//::Da,q//::Da,q//::Da,q//::Da,q//::D-16**T122d1ggnDDDD-6!99q=11D899QXEEEE$q!a%000  "&q''D.1 1 1 1$+##%%....-1q5))D011T!WWt^CCCC&q!a%004788  "&q''F4LL"89 9 9 9 9 9r0   c                  X   t          t          d                    t          t          d                    z  } t          t          d                    t          d          z  t          t          d                    t          d          z  z   }t	          | d          |k    sJ d S )Nr   r$   r6   TrS   )r   r   r   r	   r   )lhsrhss     r.   test_daggerr_   l   s    
q

6!A$$<<
'C
q

477
"VE!HH%5%5d1gg%=
=C#d###s******r0   c                      t          dd          \  } }t          | |          }t          d          }t          |          |k    sJ t          |j        |z            |j        |z  k    sJ d S )Nzx yF)commutativeB)r   r   r   r   r=   )xyr&   rb   s       r.   test_issue_6073re   r   sn    5e,,,DAqAq		AA!99>>>>!&(qvax''''''r0   c                      t          t          t          z  dgt          t          z  dg          } t	          |           t          t
           t          z  dgt
          t          z  dg          k    sJ d S )Ng      ?)r   r   r:   r8   r   r   )ds    r.   test_densityrh   z   sZ    Br"ucl++A!99$r3$r'3@@@@@@@@r0   c                  "   t          t          t          t          d          t          j                  z  t          d          z  t          t          t          j        t          j                  z            } t          t          j        t          dd          dt          j        z  t          dz            }|t          t          dd          t          t          j        t          j                            z  }t          |           |k    sJ d S )Nr6   r$   r7   r%   )r   r   r   r   NegativeOner	   Halfr   r   r   r   )expr1results     r.   test_issue3044rn      s    "U1Q44666tAww>5PQPVCWCW@WXXEA16	47CCF
mE!BKKqvaf)=)=>>>F%==F""""""r0   c            	         t          d          t          d          z  } t          |           | k    sJ t          d          t	          d          z  } t          |           | k    sJ t          t          d          t          t          d          t          d                    t	          d                    }t          |          t          d          t	          d          z  k    sJ t          |d          }t          |d          t          d          k    sJ t          d          t          d          t          d          z  z  t	          d          z  }t          |d          }|t          d          k    sJ t                      5  t          t          d          t                      z            t          d          k    sJ t          t          d          t          d          t          d          z   z            t          d          t          d          z   k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   rQ   r$   TrS   )
r!   r    r   r   r   r   r   r#   r   r   )PP1P2s      r.   test_issue24158_ket_times_oprs      s9   Q'#,,&A!99>>>>a588A!99>>>>	Xa[[#hqkk58844eAhh	?	?B"::!uQxx/////	T	"	"	"B"t$$$3333	!eAhh.	/%((	:B	T	"	"	"B!		!	! T Thqkk"2"4"4455!DDDDl1oouQxx%((':;<<a5QR88@SSSSSST T T T T T T T T T T T T T T T T Ts   BII	IN)Jsympy.core.mulr   sympy.core.numbersr   r   r   sympy.core.singletonr   sympy.core.symbolr   (sympy.functions.elementary.miscellaneousr	   $sympy.physics.quantum.anticommutatorr
    sympy.physics.quantum.commutatorr   sympy.physics.quantum.constantsr   sympy.physics.quantum.daggerr   sympy.physics.quantum.gater   r   r   sympy.physics.quantum.operatorr   r   sympy.physics.quantum.qapplyr   sympy.physics.quantum.spinr   r   r   r   r   r   r   #sympy.physics.quantum.tensorproductr   sympy.physics.quantum.stater   sympy.physics.quantum.densityr   sympy.physics.quantum.qubitr   r   sympy.physics.quantum.bosonr    r!   r"   sympy.testing.pytestr#   jjpmmpr9   r8   r:   r&   r(   r;   r?   rC   rE   rI   rK   rO   r[   r_   re   rh   rn   rs   r*   r0   r.   <module>r      s         5 5 5 5 5 5 5 5 5 5 " " " " " " % % % % % % 9 9 9 9 9 9 ? ? ? ? ? ? 7 7 7 7 7 7 0 0 0 0 0 0 / / / / / / = = = = = = = = = = E E E E E E E E / / / / / / K K K K K K K K K K K K K K K K K K = = = = = = + + + + + + 1 1 1 1 1 1 7 7 7 7 7 7 7 7 K K K K K K K K K K 7 7 7 7 7 7 w{##2q"	E!QKK
U1a[[
U1b\\HSMM    (   
9 9 9
E 
E 
E) ) )
# # #
4 4 4@ @ @
+ + +9 9 9$+ + +( ( (A A A
# # #T T T T Tr0   