
    sgU                        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 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 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'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z-  ed      \  Z.Z/Z0 G d de"      Z1 G d de"      Z2 G d de$      Z3 G d de$      Z4d Z5d Z6d Z7d Z8d Z9d Z:d  Z;d! Z<y")#    )Add)diff)Mul)IIntegerRationaloopi)Pow)S)Symbolsymbols)sympify)	conjugate)sqrt)sin)raises)Dagger)QExpr)
KetBra
TimeDepKet
TimeDepBraKetBaseBraBase	StateBaseWavefunctionOrthogonalKetOrthogonalBra)HilbertSpacezx,y,tc                       e Zd Zed        Zy)	CustomKetc                      y)N)test selfs    Y/var/www/html/venv/lib/python3.12/site-packages/sympy/physics/quantum/tests/test_state.pydefault_argszCustomKet.default_args   s        N__name__
__module____qualname__classmethodr)   r%   r*   r(   r"   r"      s     r*   r"   c                       e Zd Zed        Zy)CustomKetMultipleLabelsc                      y)N)rthetaphir%   r&   s    r(   r)   z$CustomKetMultipleLabels.default_args!   s    $r*   Nr+   r%   r*   r(   r1   r1       s    % %r*   r1   c                       e Zd Zed        Zy)CustomTimeDepKetc                      y)N)r$   tr%   r&   s    r(   r)   zCustomTimeDepKet.default_args'   s    r*   Nr+   r%   r*   r(   r7   r7   &   s     r*   r7   c                       e Zd Zed        Zy)CustomTimeDepKetMultipleLabelsc                      y)N)r3   r4   r5   r9   r%   r&   s    r(   r)   z+CustomTimeDepKetMultipleLabels.default_args-   s    )r*   Nr+   r%   r*   r(   r;   r;   ,   s    * *r*   r;   c                     t        d      } t        | t               sJ t        | t              sJ t        | t              sJ t        | t              sJ | j
                  t        d      fk(  sJ | j                  t               k(  sJ | j                  du sJ t        d      } | j
                  t        d      fk(  sJ t        t        t              } | j
                  t        t        fk(  sJ | j                  t               k(  sJ | j                  du sJ | j                         t        k(  sJ | j                  t        t        t              k(  sJ | j                  t        t              t        t        t              k(  sJ t!               } | t!        d      k(  sJ t#               } | t#        ddd      k(  sJ t               t        d      k(  sJ y )	N0Fr
   r$   r3   r4   r5   psi)r   
isinstancer   r   r   labelr   hilbert_spacer    is_commutativexy
dual_classr   dualsubsr"   r1   ks    r(   test_ketrK   2   s   CAaa!!!a###a77vc{n$$$??ln,,,u$$$ 	D	A77vd|o%%%Aq	A77q!f??ln,,,u$$$<<>S   66SAY66!Q<3q!9$$$A	&!!!!!A'We<<<<5CJr*   c                  8   t        d      } t        | t               sJ t        | t              sJ t        | t              sJ t        | t              sJ | j
                  t        d      fk(  sJ | j                  t               k(  sJ | j                  du sJ t        d      } | j
                  t        d      fk(  sJ t        t        t              } | j
                  t        t        fk(  sJ | j                  t               k(  sJ | j                  du sJ | j                         t        k(  sJ | j                  t        t        t              k(  sJ | j                  t        t              t        t        t              k(  sJ t               t        d      k(  sJ y )Nr>   Fr
   r?   )r   r@   r   r   r   rA   r   rB   r    rC   rD   rE   rF   r   rG   rH   )bs    r(   test_brarN   T   sU   CAaa!!!a###a77vc{n$$$??ln,,,u$$$ 	D	A77vd|o%%%Aq	A77q!f??ln,,,u$$$<<>S   66SAY66!Q<3q!9$$$5CJr*   c                     t        d      } t        d      }dt        z  | z  t        t        d      z  |z  z
  }|t	        t        dt        |       t        t        dd      t        t        dt        j                        |            k(  sJ y )Nr         )
r   r   rD   r   r   r   r   r   r   Half)k0k1rJ   s      r(   test_opsrV   p   ss    	QB	QB	!B!DG)RAC1bMHROQAqvv35 5 5 5r*   c                  8   t        dt              } t        | t               sJ t        | t              sJ t        | t              sJ t        | t
              sJ | j                  t        d      fk(  sJ | j                  t        d      t        fk(  sJ | j                  t        k(  sJ | j                         t        k(  sJ | j                  t        dt              k(  sJ | j                  t        d      t        dd      k(  sJ t        t        d      } | j                  t        fk(  sJ | j                  t        t        d      fk(  sJ t!               } | j                  t#        d      fk(  sJ | j                  t#        d      k(  sJ | t!        dd      k(  sJ t%               } | j                  t#        d      t#        d      t#        d      fk(  sJ | j                  t#        d      k(  sJ | t%        dddd      k(  sJ t               t        d	d      k(  sJ y )
Nr   rQ         ?r$   r9   r3   r4   r5   r?   )r   r9   r@   r   r   r   rA   r   argstimerF   r   rG   rH   rD   r   r7   r   r;   rI   s    r(   test_time_dep_ketr[   x   s   1aAa$$$a!!!a###a77wqzm###66gaj!_$$$66Q;;<<>Z'''66Z1%%%%66!Q<:a++++1cA77qd??66a&&&&A77vf~''''66VC[    ----&(A77vc{F7OVE]CCCC66VC[   .sGUCHHHH<:eS1111r*   c                     t        dt              } t        | t               sJ t        | t              sJ t        | t              sJ t        | t
              sJ | j                  t        d      fk(  sJ | j                  t        d      t        fk(  sJ | j                  t        k(  sJ | j                         t        k(  sJ | j                  t        dt              k(  sJ t        t        d      }|j                  t        fk(  sJ |j                  t        t        d      fk(  sJ t               t        dd      k(  sJ y )Nr   rX   r?   r9   )r   r9   r@   r   r   r   rA   r   rY   rZ   rF   r   rG   rD   r   )rM   rJ   s     r(   test_time_dep_brar]      s   1aAa$$$a!!!a###a77wqzm###66gaj!_$$$66Q;;<<>Z'''66Z1%%%%1cA77qd??66a&&&&<:eS1111r*   c                     t        dd      } t        d      }t        d      }t        |      t        d      k(  sJ t        |      t        d      k(  sJ t        |      j                  du sJ t        d      }dt
        z  |z  | |z  z   }t        |      t        |       t        |      z  dt
        z  t        |      z  z
  k(  sJ y )	NrD   T)complexrJ   rM   Fk2rQ   )r   r   r   r   rC   r   r   )rD   rJ   rM   r`   es        r(   test_bra_ket_daggerrb      s    T"ACACA!9C   !9C   !9##u,,,	TB	!A"A!9	!VBZ/!A#fQi-????r*   c                  @   t        dd      \  } }t        dd      }t        ddd      }t        | dz  |       j                         }j                  }j                  d	u sJ j
                  t        u sJ  d
      dk(  sJ  |d
      dk(  sJ ||    t         t        fk(  sJ t        |       t        d| z  |       k(  sJ t        t        fd       t              t        t        j                        |       k(  sJ t              t              k(  sJ t        | dz  |z  |dz  | z  z   | ddf|ddf      }|j                  }||    dk(  sJ ||   dk(  sJ |j                  d	u sJ |j
                  t        d      dz  k(  sJ  |dd      dk(  sJ  |dd      dk(  sJ t        t        ||       |      t        d| z  d|z  z   | ddf|ddf      k(  sJ t        |      t        t        |j                        g|j                  dd   k(  sJ t        |      t        |      k(  sJ t        t        d      | dz  z  | ddf      }|j                  du sJ |j                         |k(  sJ t        |      t        t        |j                        | ddf      k(  sJ t        |      t        |      k(  sJ t        t!        |t"        z  | z  |z        | d|f      }	|	j
                  t        |dz        k(  sJ  |	|dz         dk(  sJ  |	d      t!        d|z  t"        z  |z        k(  sJ  |	ddd      t!        dt"        z        k(  sJ |	j                         t        t        d      t        |      z  t!        |t"        z  | z  |z        z  | d|f      k(  sJ t        |	      t        t        |	j                        | d|f      k(  sJ t        |	      t        |	      k(  sJ t        | dz  d      }
t%        |
j&                  d         t(        k(  sJ y )Nzx yT)realL)positiven)integerrf   rQ   F
   d   i'  c                  $     j                         S )N)	normalize)fs   r(   <lambda>z#test_wavefunction.<locals>.<lambda>   s     r*   r   rP   )r   rP   )r   rQ   *            rX   )rg   re   rD   )r   r   problimitsis_normalizednormr	   r   r   NotImplementedErrorr   exprr   r   rY   rl   r   r
   type	variablesr   )rD   rE   re   rg   plimsglims_ghpiabrJ   rm   s              @r(   test_wavefunctionr      s   5t$DAqd#ATD1AQT1A	A88D??e###66R<<R5C<<R5E>>7sBi1:ac1----
 56Q<<	!&&(91====Q<6!9$$$QT!Vad1f_q!Qi!Q;AXXF!9!9??e###66T"XaZQ7a<<Q7a<<Q
A,qsQqSy1a)aAY"OOOOQ<<	!&&(9GAFF12JGGGGQ<6!9$$$T!WQT\Aq!9-A??d""";;=AQ<<	!&&(9Aq!9EEEEQ<6!9$$$AbDF1H1ay1D99QqS	!!!A;!9CE"HQJ'''qA#c"f+--->>T!WT!W_S2a]2Q1I>? ? ?T?l9TYY+?!QKKKKT?fTl***QT3AA6)))r*   c                  B   t        t              t        t              z  } | j                         dk(  sJ t        t              t        t        dz         z  } | j                         dk(  sJ t        t              t        t              z  } | j                         | k(  sJ y )NrP   r   )r   rD   r   doitrE   )brakets    r(   test_orthogonal_statesr      s~    1a 00F;;=A1ac 22F;;=A1a 00F;;=F"""r*   N)=sympy.core.addr   sympy.core.functionr   sympy.core.mulr   sympy.core.numbersr   r   r   r	   r
   sympy.core.powerr   sympy.core.singletonr   sympy.core.symbolr   r   sympy.core.sympifyr   $sympy.functions.elementary.complexesr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   sympy.testing.pytestr   sympy.physics.quantum.daggerr   sympy.physics.quantum.qexprr   sympy.physics.quantum.stater   r   r   r   r   r   r   r   r   r   sympy.physics.quantum.hilbertr    rD   rE   r9   r"   r1   r7   r;   rK   rN   rV   r[   r]   rb   r   r   r%   r*   r(   <module>r      s     $  = =   " / & : 9 8 ' / -  
 7
'
1a %c %z *Z *D852D2,
@1*f#r*   