
    MZd                         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 Zd Zd Z G d de      Zd Z ed      Zd Z edddgi      Zd Zy)    )Expr)Mul)IInteger)symbols)	conjugate)Matrix)adjointDagger)import_module)skip)OperatorIdentityOperatorc                     t        dd      } t        |       t        |       k(  sJ t        t        | z        t         t        |       z  k(  sJ t        dd      }t        |      |k(  sJ t        d      }t	        t        |      t
              sJ t        d      }t        |      |k(  sJ t        dd	
      }t        |      j                  d	u sJ y )NxT)complexi)realp   AF)commutative)r   r   r   r   
isinstancer
   r   is_commutative)r   r   r   r   s       I/usr/lib/python3/dist-packages/sympy/physics/quantum/tests/test_dagger.pytest_scalarsr      s    T"A!9	!$$$!A#;1"Yq\/)))$A!9>>AfQi)))
A!9>>'A!9##u,,,    c                      t        d      } t        t        | t        z  gddgg      }t        |      |j                  k(  sJ y )Nr         )r   r	   r   r   H)r   ms     r   test_matrixr#       s<    AAaC1a&!"A!9r   c                  ^   t        d      } t               }t        |       | z  t        |       | z  k(  sJ t        |       | z  |z  t        t        |       |       |z  k(  sJ t        |       t        |       z  t        |       dz  k(  sJ t        |       t        |      z  t        |       k(  sJ y )NOr   )r   r   r   r   )r%   r   s     r   test_dagger_mulr&   &   s    AA!9Q;&)A+%%%!9Q;q=Cq	1-a////!9VAY&)Q,...!9VAY&)+++r   c                       e Zd Zd Zy)Fooc                     t         S N)r   )selfs    r   _eval_adjointzFoo._eval_adjoint1   s    r   N)__name__
__module____qualname__r,    r   r   r(   r(   /   s    r   r(   c                  D    t               } t        |       }|t        k(  sJ y r*   )r(   r   r   )fds     r   test_eval_adjointr4   5   s    Aq	A6M6r   numpyc                      t         st        d       t         j                  ddgddgg      } | j                         j	                         j                         }t        |       |k(  j                         sJ y )Nnumpy not installed.g      ?               @             g       @)npr   arraycopy	transposer   r   all)aadags     r   test_numpy_daggerrA   =   sa    #$
3+s|,-A668))+D1I""$$$r   scipyfromlistsparse)import_kwargsc                  l   t         st        d       t        st        d       nt        j                  }  j	                  ddgddgg      }|j                         j                         j                         }t         j                  j                  t        |      |z
  j                               dk(  sJ y )Nr7   zscipy not installed.y      ?        r8   r9   y       @        g        )r:   r   rB   rD   
csr_matrixr<   r=   r   linalgnormr   todense)rD   r?   r@   s      r   test_scipy_sparse_daggerrK   I   s    #$#$J-z/BCDA668))+D99>>6!9t+44673>>>r   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(   r4   r:   rA   rB   rK   r0   r   r   <module>rV      sn       + % : ' 8 ( % E-$,$ 
 7% 	gj8*-EF
?r   