
    g!&hH
                         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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 d Z!d Z"y)    )Expr)Mul)IInteger)symbols)	conjugate)Matrix)adjointDagger)import_module)skipwarns_deprecated_sympy)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   is_commutative)r   r   r   r   s       }/var/www/pru.catia.catastroantioquia-mas.com/valormas/lib/python3.12/site-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        |       | z  t        |       | z  k(  sJ t               5  t               }t        |       | z  |z  t	        t        |       |       |z  k(  sJ 	 d d d        t        |       t        |       z  t        |       dz  k(  sJ t        |       t              z  t        |       k(  sJ y # 1 sw Y   WxY w)NOr"   )r   r   r   r   r   )r(   r   s     r   test_dagger_mulr)   &   s    A!9Q;&)A+%%%		! 4ay{1}F1Iq 1! 33334 !9VAY&)Q,...!9VAY&)+++	4 4s   7CCc                       e Zd Zd Zy)Fooc                     t         S N)r   )selfs    r   _eval_adjointzFoo._eval_adjoint2   s    r    N)__name__
__module____qualname__r/    r    r   r+   r+   0   s    r    r+   c                  D    t               } t        |       }|t        k(  sJ y r-   )r+   r   r   )fds     r   test_eval_adjointr7   6   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_daggerrD   >   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 )Nr:   zscipy not installed.y      ?        r;   r<   y       @        g        )r=   r   rE   rG   
csr_matrixr?   r@   r   linalgnormr   todense)rG   rB   rC   s      r   test_scipy_sparse_daggerrN   J   s    #$#$J-z/BCDA668))+D99>>6!9t+44673>>>r    c                  x    t        dd      } t        |       }|j                  | fk(  rt        |t              sJ y)zCheck treatment of unknown objects.
    Objects without adjoint or conjugate/transpose methods
    are sympified and wrapped in dagger.
    r   Fr   Nr   r   argsr   r
   r   results     r   test_unknownrT   W   s9    
 	'AAYF;;1$:fg#>>>#>r    c                      t        dd      } t        |       | k(  sJ t        | d      }|j                  | fk(  rt        |t              sJ y)z:Check that evaluate=False returns unevaluated Dagger.
    r   Tr   F)evaluateNrP   rR   s     r   test_unevaluatedrW   a   sL     	$A!9>>A&F;;1$:fg#>>>#>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   r   sympy.physics.quantum.operatorr   r   r   r&   r)   r+   r7   r=   rD   rE   rN   rT   rW   r3   r    r   <module>rb      sx       + % : ' 8 ( = E-$,$ 
 7% 	gj8*-EF
???r    