U
    ZŹ¹j  ć                   @   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 e	d\Z2Z3Z4Z5e$dd Z6e$ddZ7e$ddZ8edZ9G dd deZ:dd Z;dd Z<dd Z=dd  Z>d!d" Z?d#d$ Z@d%d& ZAd'd( ZBd)d* ZCd+d, ZDd-d. ZEd/d0 ZFd1d2 ZGd3S )4é    )Ś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ŚBosonFockBraz	j j' m m'é   é’’’’ŚAc                   @   s   e Zd Zdd ZdS )ŚFooc                 K   s   |S )N© )ŚselfZketŚoptionsr&   r&   śf/var/www/html/bwave/python/venv/lib/python3.8/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   s<  t tt tt kstt tt tt td tt td  ksHtt t	t
 t td tt tt  ksttt ttt  tt tt  kstt tt tt  tt tt  ksĄtt t
t
 t dtd  t ksätt t	d t dtd  t ks
tt t	d t
d  t dtd  t ks8td S ©Né   é   )r   r   Śpor   ŚAssertionErrorr   Śzr   Śmor   r   r&   r&   r&   r)   Ś
test_basic$   s    0,$($&r5   c                  C   s  t jt t  } ttt |  tt |  ks.tttt  |  tt t	d tt
 t	d  |  ksftttt t  t	d |  tt |  tt
 |   ksttttt
  |  tt |  tt
 |   ksĪtttt |  tt
 |   tt |  tt
 |   kstttt t |  dtd  t
 |  ks6tttd t
 |  dtd  t |  ksdtttd td  t |  dtd  t |  kstd S r.   )r3   Śdualr$   r   r   r1   r   r2   r   r   r4   r   r   )Śextrar&   r&   r)   Ś
test_extra/   s     8’’0:..r8   c                   C   sF   t tjt t ddttjt  ks(tt tjt t tksBtd S )NF©Zip_doit)r   r1   r6   r   r   r2   r&   r&   r&   r)   Śtest_innerproduct<   s    (r:   c                   C   s(   t ddkstt tddks$td S )Nr   )r   r2   r   r&   r&   r&   r)   Ś	test_zeroA   s    r;   c                   C   s   t tttt t ttd  t ks*tt tt	tt t dksHtt ttt
dt dksftt tt
dtt dkstd S )Né   r   ŚF)r   r
   r   r   r   r1   r   r   r2   r   r%   r&   r&   r&   r)   Śtest_commutatorF   s    *r>   c                   C   sP   t tttdt dt t ks&tt ttdtt dt t ksLtd S )Nr=   r/   )r   r	   r   r%   r1   r   r2   r&   r&   r&   r)   Śtest_anticommutatorM   s    &r?   c                  C   sz   t ttj  t  t } t| td  t ks0tt| ddtd  tjt  t ksXtt|  ” td  t ksvtd S )Nr/   Fr9   )r   r4   r1   r6   r   r   r2   Śdoit)Śer&   r&   r)   Śtest_outerproductR   s    (rB   c                  C   s^  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sttt| t|| | d| ks¶tt|t| ||  ddtd| ksątt||  ” tddksžttt| || | td| ks&tttt| || | ddtdt| ksZtd S )NŚaŚbr"   r/   r   T©Śdagger)	r   r   r    r!   r   r   r2   r   r@   )rC   rD   Zket1Zket2Zket3Zbra1Zbra2r&   r&   r)   Śtest_tensorproductY   s*    &&’
’(’’rG   c                  C   sX   t tdt td } t tdtd t tdtd  }t| dd|ksTtd S )Nr   r"   r/   TrE   )r   r   r   r   r   r2   )ŚlhsŚrhsr&   r&   r)   Śtest_daggerk   s    (rJ   c                  C   sR   t ddd\} }t| |}td}t||ks2tt|j| |j| ksNtd S )Nzx yF)ZcommutativeŚB)r   r   r   r   r2   r6   )ŚxŚyr$   rK   r&   r&   r)   Śtest_issue_6073q   s
    
rN   c                  C   sF   t tt dgtt dg} t| t t t dgtt dgksBtd S )Ng      ą?)r   r   r4   r1   r   r   r2   )Śdr&   r&   r)   Śtest_densityy   s    rP   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~td S )Nr/   r"   r0   r#   )r   r   r   r   ZNegativeOner   ZHalfr   r   r   r   r2   )Zexpr1Śresultr&   r&   r)   Śtest_issue3044~   s    0 rR   c                  C   s<  t dtd } t| | ks ttdtd } t| | ks@tttdttdtdtd}t|tdtd ks~tt|dd}t|ddtdks¢ttdtd td td }t|dd}t|ddtdksętttdt  tdksttt	dtdtd  tdtd ks8td S )Nr   rC   r"   TrE   )
r    r   r   r2   r   r   r   r   r   r   )ŚPZP1ZP2r&   r&   r)   Śtest_issue24158_ket_times_op   s    "  rT   N)HZsympy.core.mulr   Zsympy.core.numbersr   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.physics.quantum.anticommutatorr	   Z sympy.physics.quantum.commutatorr
   Zsympy.physics.quantum.constantsr   Zsympy.physics.quantum.daggerr   Zsympy.physics.quantum.gater   r   r   Zsympy.physics.quantum.operatorr   r   Zsympy.physics.quantum.qapplyr   Zsympy.physics.quantum.spinr   r   r   r   r   r   r   Z#sympy.physics.quantum.tensorproductr   Zsympy.physics.quantum.stater   Zsympy.physics.quantum.densityr   Zsympy.physics.quantum.qubitr   r   Zsympy.physics.quantum.bosonr   r    r!   ŚjŚjpŚmŚmpr3   r1   r4   r$   r%   r5   r8   r:   r;   r>   r?   rB   rG   rJ   rN   rP   rR   rT   r&   r&   r&   r)   Ś<module>   sH   $


