o
    *ήc                     @   s   d dl mZ d dlmZ d dl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 d d	lmZ d d
lmZmZ dd Zdd Zdd ZG dd deZdd ZedZdd ZedddgidZdd ZdS )    )Expr)Mul)IInteger)symbols)	conjugate)Matrix)adjointDagger)import_module)skip)OperatorIdentityOperatorc                  C   s   t ddd} t| t| ksJ tt|  t t|  ksJ t ddd}t||ks-J t d}tt|ts:J td}t||ksFJ t dd	d
}t|jd	u sUJ d S )NxT)complexi)realp   AF)commutative)r   r
   r   r   
isinstancer	   r   is_commutative)r   r   r   r    r   N/tmp/pip-target-vg8gfxp4/lib/python/sympy/physics/quantum/tests/test_dagger.pytest_scalars   s   r   c                  C   s6   t d} tt| t gddgg}t||jksJ d S )Nr         )r   r   r   r
   H)r   mr   r   r   test_matrix    s   r    c                  C   s   t d} t }t| |  t| |  ksJ t| |  | tt| | | ks(J t| t|  t| d ks8J t| t| t| ksFJ d S )NOr   )r   r   r
   r   )r!   r   r   r   r   test_dagger_mul&   s   &  r"   c                   @   s   e Zd Zdd ZdS )Fooc                 C   s   t S N)r   )selfr   r   r   _eval_adjoint1   s   zFoo._eval_adjointN)__name__
__module____qualname__r&   r   r   r   r   r#   /   s    r#   c                  C   s   t  } t| }|tksJ d S r$   )r#   r
   r   )fdr   r   r   test_eval_adjoint5   s   r,   numpyc                  C   sJ   t std t ddgddgg} |    }t| |k s#J d S )Nnumpy not installed.g      ?               @             g       @)npr   arraycopy	transposer   r
   all)aadagr   r   r   test_numpy_dagger=   s
   r8   scipyfromlistsparse)import_kwargsc                  C   sj   t std tstd ntj} | ddgddgg}|   }t j	t
||  dks3J d S )Nr.   zscipy not installed.y      ?        r/   r0   y       @        g        )r1   r   r9   r;   
csr_matrixr3   r4   r   linalgnormr
   todense)r;   r6   r7   r   r   r   test_scipy_sparse_daggerI   s   
$rA   N) sympy.core.exprr   sympy.core.mulr   sympy.core.numbersr   r   sympy.core.symbolr   $sympy.functions.elementary.complexesr   sympy.matrices.denser   sympy.physics.quantum.daggerr	   r
   sympy.externalr   sympy.testing.pytestr   sympy.physics.quantum.operatorr   r   r   r    r"   r#   r,   r1   r8   r9   rA   r   r   r   r   <module>   s&    		