U
    ZÊ¹jS
  ã                   @   sœ   d dl mZmZ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 d dlmZ d dlmZ dd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )é    )ÚHilbertSpaceÚComplexSpaceÚL2Ú	FockSpaceÚTensorProductHilbertSpaceÚDirectSumHilbertSpaceÚTensorPowerHilbertSpace)Úoo)ÚSymbol)Úsrepr)Ússtr)ÚIntervalc                  C   s8   t ƒ } t| t ƒst‚t| ƒdks$t‚t| ƒdks4t‚d S )NÚHzHilbertSpace())r   Ú
isinstanceÚAssertionErrorr   r   )Úhs© r   úg/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/physics/quantum/tests/test_hilbert.pyÚtest_hilbert_space   s    r   c                  C   s¬   t dƒ} t| t ƒst‚| jdks$t‚t| ƒdks4t‚t| ƒdksDt‚tdƒ}t |ƒ}t|t ƒsbt‚|j|kspt‚t|ƒdks€t‚t|ƒdks�t‚| |d¡t dƒks¨t‚d S )Né   zC(2)zComplexSpace(Integer(2))ÚnzC(n)zComplexSpace(Symbol('n')))r   r   r   Ú	dimensionr   r   r
   Úsubs)Úc1r   Úc2r   r   r   Útest_complex_space   s    r   c                  C   s¬   t tt dƒƒ} t| t ƒst‚| jtks,t‚| jtt dƒksBt‚tddd�}tddd�}t t||ƒƒ}|jtksvt‚|jt||ƒksŠt‚| |d¡t td|ƒƒks¨t‚d S )Né   ÚxT)ÚrealÚyéÿÿÿÿ)	r   r   r	   r   r   r   Úintervalr
   r   )Úb1r   r   Úb2r   r   r   Útest_L2$   s    r$   c                  C   s8   t ƒ } t ƒ }t| t ƒst‚| jtks(t‚| |ks4t‚d S )N)r   r   r   r   r	   )Úf1Úf2r   r   r   Útest_fock_space2   s
    r'   c                  C   sº   t dƒ} tdƒ}t| ƒ}|| }t|tƒs.t‚|jd|  ks@t‚|j||fksRt‚|| }t|tƒsht‚|j|ksvt‚|j	dks„t‚|j| d ks–t‚t
ƒ }|| | }|jtks¶t‚d S ©Nr   r   )r
   r   r   r   r   r   Úspacesr   ÚbaseÚexpr   r	   ©r   Úhs1Úhs2ÚhÚfr   r   r   Útest_tensor_product:   s    r1   c                  C   s    t dƒ} tdƒ}t| ƒ}|d }t|tƒs.t‚|j|ks<t‚|jdksJt‚|jdksXt‚|d }t|tƒsnt‚|j|ks|t‚|jdksŠt‚|j| d ksœt‚d S )Nr   r   é   é   )r
   r   r   r   r   r*   r+   r   )r   r-   r.   r/   r   r   r   Útest_tensor_powerO   s    r4   c                  C   sŠ   t dƒ} tdƒ}t| ƒ}|| }t|tƒs.t‚|jd|  ks@t‚|j||fksRt‚tƒ }|| | }|jtksrt‚|j|||fks†t‚d S r(   )	r
   r   r   r   r   r   r)   r   r	   r,   r   r   r   Útest_direct_suma   s    r5   N)Zsympy.physics.quantum.hilbertr   r   r   r   r   r   r   Zsympy.core.numbersr	   Zsympy.core.symbolr
   Zsympy.printing.reprr   Zsympy.printing.strr   Zsympy.sets.setsr   r   r   r$   r'   r1   r4   r5   r   r   r   r   Ú<module>   s   $