o
    GZhL                     @   st  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mZmZmZ d dlmZmZmZmZmZmZmZ d dlmZmZ d dlmZ e e e ZZZed	ed	ed	ZZZ ed
ed
ed
Z!Z"Z#e e Z$Z%ed	ed	Z&Z'ededZ(Z)dd Z*dd Z+dd Z,dd Z-dd Z.dd Z/dd Z0dd Z1dd Z2dd  Z3d!d" Z4d#d$ Z5d%S )&    )Mul)I)Matrix)latex)Dagger
CommutatorAntiCommutatorqapplyOperator	represent)SigmaOpBaseSigmaXSigmaYSigmaZ
SigmaMinus	SigmaPlusqsimplify_pauli)	SigmaZKet	SigmaZBra)raises      ABc                   C   s|   t ttr
t ttsJ t ttrt ttsJ t ttr"t tts$J t ttr.t tt	s0J t t
tr:t t
ts<J d S N)
isinstancesxr   r   syr   szr   smr   spr    r!   r!   U/var/www/auris/lib/python3.10/site-packages/sympy/physics/quantum/tests/test_pauli.pytest_pauli_operators_types   s
   r#   c                   C   s^   t tt dt t ksJ t tt dt t ksJ t tt dt t ks-J d S Nr   )r   r   r   doitr   r   r!   r!   r!   r"   test_pauli_operators_commutator    s   "r&   c                   C   s   t tt dt t ksJ t tt dt t ksJ t tt dt t ks-J t tt dt t ks<J t tt dt t ksKJ t tt dt t ksZJ t tt dkseJ t tt dkspJ t tt dks{J d S )Nr   r   )	r   sx1sy1r%   r   sz1sx2sy2sz2r!   r!   r!   r"   +test_pauli_operators_commutator_with_labels'   s   r-   c                   C   s\   t tt dksJ t tt dksJ t tt dks!J t tt dks,J d S )Nr   r   )r   r   r   r%   r   r   r    r!   r!   r!   r"   #test_pauli_operators_anticommutator6   s   r.   c                   C   s4   t ttksJ t ttksJ t ttksJ d S r   )r   r   r   r   r!   r!   r!   r"   test_pauli_operators_adjoint>   s   r/   c                   C   sd   t ttksJ t ttksJ t ttksJ t ttks J t ttks(J t ttks0J d S r   )r   r'   r(   r)   r*   r+   r,   r!   r!   r!   r"   (test_pauli_operators_adjoint_with_labelsE   s   r0   c                   C   s   t tt dks
J t tt dksJ t tt dksJ t tt tt ks*J t tt tt ks6J t tt tt ksBJ t tt t t ksOJ t tt t t ks\J t tt t t ksiJ d S Nr   )r   r   r   r   r   r!   r!   r!   r"   #test_pauli_operators_multiplicationP   s   r2   c                   C   s   t tt dks
J t tt dksJ t tt dksJ ttt ts'J ttt ts0J ttt ts9J t tt t t t t ksJJ t tt t t t t ks[J d S r1   )	r   r'   r(   r)   r   r*   r   r+   r,   r!   r!   r!   r"   /test_pauli_operators_multiplication_with_labels_   s   "&r3   c                  C   s2  t  t } }td}td}t| | |ksJ t| | |ks#J t|| |ks-J t|| | ks8J td}td}t||  dd|ksLJ t||  dd|ksXJ t|| dd|ksdJ t|| dd| ksqJ ttdtdks}J ttdtdksJ ttdd  ttdd  d S )Nr   r   T)daggerc                   S      t dS r$   )r   r!   r!   r!   r"   <lambda>       z#test_pauli_states.<locals>.<lambda>c                   S   r5   r$   )r   r!   r!   r!   r"   r6      r7   )r   r   r   r	   r   r   r   
ValueError)r   r   upZdownr!   r!   r"   test_pauli_statesm   s"   r:   c                   C   s<   t jdu sJ tjdu sJ tjdu sJ tjdu sJ d S )NFT)r   Zuse_namesm1r   r'   r!   r!   r!   r"   test_use_name   s   r<   c                   C   s   t tdksJ t tdksJ t tdksJ t tdks J t tdks(J t tdks0J t tdks8J t tdks@J t t	d	ksHJ t t
d
ksPJ d S )Nz
{\sigma_x}z{\sigma_x^{(1)}}z
{\sigma_y}z{\sigma_y^{(1)}}z
{\sigma_z}z{\sigma_z^{(1)}}z
{\sigma_-}z{\sigma_-^{(1)}}z
{\sigma_+}z{\sigma_+^{(1)}})r   r   r'   r   r(   r   r)   r   r;   r    sp1r!   r!   r!   r"   test_printing   s   r>   c                   C   s   t ttddgddggksJ t ttdt gtdggks!J t ttddgddggks1J t ttddgddggksAJ t ttddgddggksQJ d S )Nr   r   )r   r   r   r   r   r   r   r    r!   r!   r!   r"   test_represent   s
    "  $r@   N)6Zsympy.core.mulr   Zsympy.core.numbersr   Zsympy.matrices.denser   Zsympy.printing.latexr   Zsympy.physics.quantumr   r   r   r	   r
   r   Zsympy.physics.quantum.paulir   r   r   r   r   r   r   r   r   Zsympy.testing.pytestr   r   r   r   r'   r(   r)   r*   r+   r,   r   r    r;   r=   r   r   r#   r&   r-   r.   r/   r0   r2   r3   r:   r<   r>   r@   r!   r!   r!   r"   <module>   s4     $	