o
    h                     @   s  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\Z4Z5Z6Z7e$dd Z8e$ddZ9e$ddZ:edZ;G dd deZ<dd Z=dd Z>dd Z?d d! Z@d"d# ZAd$d% ZBd&d' ZCd(d) ZDd*d+ ZEd,d- ZFd.d/ ZGd0d1 ZHd2d3 ZId4S )5    )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                   @   s   e Zd Zdd ZdS )Fooc                 K   s   |S )N )selfketoptionsr'   r'   ]/var/www/html/ai/venv/lib/python3.10/site-packages/sympy/physics/quantum/tests/test_qapply.py_apply_operator_JzKet!   s   zFoo._apply_operator_JzKetN)__name__
__module____qualname__r,   r'   r'   r'   r+   r&       s    r&   c                   C   s8  t tt tt ksJ t tt tt td tt td  ks$J t tt	 t td tt tt  ks:J t ttt  tt tt  ksLJ t tt tt  tt tt  ks`J t t	t	 t dtd  t ksrJ t td t dtd  t ksJ t td t	d  t dtd  t ksJ d S N      )
r   r   por   r   zr   mor   r   r'   r'   r'   r+   
test_basic%   s   0,$($$0r6   c                  C   s  t jt t  } ttt |  tt |  ksJ ttt  |  tt td tt	 td  |  ks3J tt
t t  td |  tt |  tt	 |   ksOJ tttt	  |  tt |  tt	 |   ksgJ ttt |  tt	 |   tt |  tt	 |   ksJ ttt t |  dtd  t	 |  ksJ tt
d t	 |  dtd  t |  ksJ tt
d td  t |  dtd  t |  ksJ d S r0   )r4   dualr%   r   r   r3   r   r   r   r5   r   r   )extrar'   r'   r+   
test_extra0   s    808,,8r9   c                   C   sF   t tjt t ddttjt  ksJ t tjt t tks!J d S )NFip_doit)r   r3   r7   r   r   r'   r'   r'   r+   test_innerproduct=   s   (r<   c                   C   s(   t ddksJ t tddksJ d S )Nr   )r   r   r'   r'   r'   r+   	test_zeroB   s   r=   c                   C   s   t tttt t ttd  t ksJ t tttt t dks$J t ttt	dt dks3J t tt	dtt dksBJ d S )N   r   F)
r   r
   r   r   r   r3   r   r   r   r&   r'   r'   r'   r+   test_commutatorG   s   *"r@   c                   C   sP   t tttdt dt t ksJ t ttdtt dt t ks&J d S )Nr?   r1   )r   r	   r   r&   r3   r   r'   r'   r'   r+   test_anticommutatorN   s   &*rA   c                  C   sz   t ttj  t  t } t| td  t ksJ t| ddtd  tjt  t ks,J t|  td  t ks;J d S )Nr1   Fr:   )r   r5   r3   r7   r   r   doit)er'   r'   r+   test_outerproductS   s   ("rD   c                  C   sV  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 | td| ksHJ tt| t|| | d| ks[J t|t| ||  ddtd| kspJ t||  tj	ks}J tt| || | td| ksJ ttt| || | ddtdt| ksJ d S )Nabr#   r1   r   Tdagger)
r   r   r    r!   r   r   r   rB   r   One)rE   rF   ket1ket2ket3bra1bra2r'   r'   r+   test_tensorproductZ   s*   &&
&rO   c                  C   sX   t tdt td } t tdtd t tdtd  }t| dd|ks*J d S )Nr   r#   r1   TrG   )r   r   r   r   r   )lhsrhsr'   r'   r+   test_daggerl   s   (rR   c                  C   sR   t ddd\} }t| |}td}t||ksJ t|j| |j| ks'J d S )Nzx yF)commutativeB)r   r   r   r   r7   )xyr%   rT   r'   r'   r+   test_issue_6073r   s
   
 rW   c                  C   sF   t tt dgtt dg} t| t t t dgtt dgks!J d S )Ng      ?)r   r   r5   r3   r   r   )dr'   r'   r+   test_densityz   s   ,rY   c                  C   s   t tttdtj td tttjtj } ttjtdddtj t	d }|t tddttjtj9 }t
| |ks?J d S )Nr1   r#   r2   r$   )r   r   r   r   NegativeOner   Halfr   r   r   r   )expr1resultr'   r'   r+   test_issue3044   s   0 r^   c                  C   sX  t dtd } t| | ksJ tdtd } t| | ks J ttdttdtdtd}t|tdtd ks?J t|dd}t|ddtdksQJ tdtdtd  td }t|dd}|tdksoJ t 0 ttdt  tdksJ tt	dtdtd  tdtd ksJ W d    d S 1 sw   Y  d S )Nr   rE   r#   TrG   )
r    r   r   r   r   r   r   r"   r   r   )PP1P2r'   r'   r+   test_issue24158_ket_times_op   s   " 2"rb   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mpr4   r3   r5   r%   r&   r6   r9   r<   r=   r@   rA   rD   rO   rR   rW   rY   r^   rb   r'   r'   r'   r+   <module>   sL    $


