U
    L?h
                     @   s   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
 ed\ZZZeddd	Zed
dd\ZZZZdd Zdd Zdd ZG dd de
ZG dd de
ZG dd de
Zdd ZdS )    Integer)symbols)Dagger)
Commutator)Operatorza,b,cnT)integerzA,B,C,DF)Zcommutativec                  C   sD   t tt} | jdkstt| t s&t| ttt ttks@td S )NF)CommABZis_commutativeAssertionError
isinstancesubsC)c r   ]/var/www/html/venv/lib/python3.8/site-packages/sympy/physics/quantum/tests/test_commutator.pytest_commutator   s    
r   c                  C   s*  t tt tt tt t tt ks(tt ttdks:tt ttdksLtt ttt tt ksftt tt tt tt  kstt ttt jddt ttt tt tt  kstt tt tt	 jddtt t tt	 tt tt t	  tt tt	 t  t ttt	 t  ks&tt ttd jddt ttt tt tt  ks^tt td td jddt tt tt	 jdd
tt
t	t  krtt t tt tt tt t  tt tt t  t ttt t  ksn tt ttd jddt tdt dt	  jdd
t	tks>tt tt tt	 jddt ttt tt	 t tt t tt	 kstt ttt jddt ttt tt kstt tt tjddt tt tkstt tt ttt tt tt t tt tt } |   dks&td S )Nr   TZ
commutator      )r
   ar   br   r   doitr   expandDreplacer   )er   r   r   test_commutator_identities   s2    ("6F
8(
F$
&
0*0r    c                  C   s\   t tt t} t| jddt tttt tt ttt tttt  ksXtd S )NTr   )r
   r   r   r   r   r   r   )Zcommr   r   r   test_commutator_dagger-   s    r!   c                   @   s   e Zd Zdd ZdS )Fooc                 C   s   t dS )Nr   r   )selfbarr   r   r   _eval_commutator_Bar6   s    zFoo._eval_commutator_BarN)__name__
__module____qualname__r%   r   r   r   r   r"   4   s   r"   c                   @   s   e Zd ZdS )BarN)r&   r'   r(   r   r   r   r   r)   :   s   r)   c                   @   s   e Zd Zdd ZdS )Tamc                 C   s   t dS )Nr   r   )r#   Zfoor   r   r   _eval_commutator_Foo@   s    zTam._eval_commutator_FooN)r&   r'   r(   r+   r   r   r   r   r*   >   s   r*   c                  C   s  t d} td}td}t| | dks.tt||  dksDtt| | dksZtt||  dksptt|| || ||  kstt| d |jdd	 dkstt| d |jdd	 d
|  kstt| |d jdd	 d
| kstt|d | jdd	 d| ks*tt|d | d jdd	 d|  | |  d| d  |  d| | d   ks~td S )NFr   Tr   r   r   Tr   r      )r"   r)   r*   r
   r   r   r   )r,   r   r-   r   r   r   test_eval_commutatorD   s    ""&((r0   N)Zsympy.core.numbersr   Zsympy.core.symbolr   Zsympy.physics.quantum.daggerr   Z sympy.physics.quantum.commutatorr   r
   Zsympy.physics.quantum.operatorr   r   r   r   r   r   r   r   r   r   r    r!   r"   r)   r*   r0   r   r   r   r   <module>   s   