o
    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)commutativec                  C   sD   t tt} | jdu sJ t| t sJ | ttt ttks J d S )NF)CommABis_commutative
isinstancesubsC)c r   _/var/www/vscode/kcb/lib/python3.10/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J t ttdksJ t ttdks&J t ttt tt ks3J t tt tt tt  ksDJ t ttt jddt ttt tt tt  ks_J 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sJ t ttd jddt ttt tt tt  ksJ 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sJ  J t ttd jddt tdt dt  jdd	ttksJ t tt tt jddt ttt tt t tt t tt ks@J t ttt jddt ttt tt ksXJ t tt
 tjddt tt
 tksmJ t tt ttt tt tt t tt tt } |   dksJ d S )Nr   T
commutator      )r   ar   br   doitr   expandDreplacer   )er   r   r   test_commutator_identities   s2   ("6F6(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s,J d S )NTr   )r   r   r   r   r   r   )commr   r   r   test_commutator_dagger-   s   r$   c                   @      e Zd Zdd ZdS )Fooc                 C      t dS )Nr   r   )selfbarr   r   r   _eval_commutator_Bar6      zFoo._eval_commutator_BarN)__name__
__module____qualname__r*   r   r   r   r   r&   4       r&   c                   @   s   e Zd ZdS )BarN)r,   r-   r.   r   r   r   r   r0   :   s    r0   c                   @   r%   )Tamc                 C   r'   )Nr   r   )r(   foor   r   r   _eval_commutator_Foo@   r+   zTam._eval_commutator_FooN)r,   r-   r.   r3   r   r   r   r   r1   >   r/   r1   c                  C   s|  t d} td}td}t| | dksJ t||  dks"J t| | dks-J t||  dks8J t|| || ||  ksIJ t| d |jdd	 dksZJ t| d |jdd	 d
|  ksmJ t| |d jdd	 d
| ksJ t|d | jdd	 d| ksJ t|d | d jdd	 d|  | |  d| d  |  d| | d   ksJ d S )NFr   Tr   r   r   Tr   r      )r&   r0   r1   r   r   r   )r4   r   r5   r   r   r   test_eval_commutatorD   s   ""&&&Vr8   N)sympy.core.numbersr   sympy.core.symbolr   sympy.physics.quantum.daggerr    sympy.physics.quantum.commutatorr   r   sympy.physics.quantum.operatorr   r   r   r   r   r   r   r   r   r   r"   r$   r&   r0   r1   r8   r   r   r   r   <module>   s    