U
    ZÊ¹j  ã                   @   sâ   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZmZmZmZmZmZ d dlmZ d dlmZ eddgd	d
ggƒZdd„ Zdd„ ZedƒZdd„ Zdd„ Zedddgid�Zdd„ ZdZdd„ Zdd„ Zdd „ Z d!S )"é    )Úrandint)ÚInteger)ÚMatrixÚonesÚzeros)Úto_sympyÚto_numpyÚto_scipy_sparseÚmatrix_tensor_productÚmatrix_to_zeroÚmatrix_zerosÚnumpy_ndarrayÚscipy_sparse_matrix)Úimport_module)Úskipé   é   é   é   c                   C   s   t tƒtkst‚d S )N)r   ÚmÚAssertionError© r   r   úk/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/physics/quantum/tests/test_matrixutils.pyÚtest_sympy_to_sympy   s    r   c                   C   s8   t tƒtkst‚t tddgddggƒƒtdƒks4t‚d S )Nr   )r   r   r   r   r   r   r   r   r   Útest_matrix_to_zero   s    r   Únumpyc                  C   s>   t stdƒ t jddgddggdd�} ttƒ| k ¡ s:t‚d S )Núnumpy not installed.r   r   r   r   Úcomplex©Zdtype)Únpr   Úarrayr   r   Úallr   )Úresultr   r   r   Útest_to_numpy   s    r#   c                  C   s¢  t stdƒ tdƒ} tdƒD ]}d| | |< qtdƒ}tdƒD ]}|||< q>tdƒ}tdƒD ]}|||< q\tdddgƒ}t  |  ¡ ¡}t  | ¡ ¡}t  ||¡}| |g}t|Ž }	| ¡ |	 ¡ ksÄt	‚t  ||¡}|| g}t|Ž }	| ¡ |	 ¡ ksôt	‚t  | ¡ ¡}t  ||¡}| |g}t|Ž }	| ¡ |	 ¡ k�s4t	‚t  ||¡}|| g}t|Ž }	| ¡ |	 ¡ k�sft	‚t  | ¡ ¡}t  ||¡}| |g}t|Ž }	| ¡ |	 ¡ k�s¦t	‚t  ||¡}|| g}t|Ž }	| ¡ |	 ¡ k�sØt	‚t j
 tddƒtddƒ¡}
t j
 tddƒtddƒ¡}t  |
|¡}t|
 ¡ ƒt| ¡ ƒg}t|Ž }	|	t| ¡ ƒ  ¡ t|	j|	jƒt  ¡ k�rht	‚t| ||ƒ}	t  | t  ||¡¡}| ¡ |	 ¡ k�sžt	‚d S )Nr   r   é   r   r   r   é   )r   r   r   Úranger   r    ÚtolistZkronr
   r   ÚrandomZrandr   r   ÚrowsÚcolsÚepsilon)Úl1ÚiÚl2Úl3ZvecZnumpyl1Znumpyl2Znumpy_productÚargsZsympy_productZrandom_matrix1Zrandom_matrix2r   r   r   Útest_matrix_tensor_product$   sf    

ÿ
r1   ÚscipyÚfromlistÚsparse)Zimport_kwargsc                  C   s^   t stdƒ tstdƒ ntj} | jddgddggdd�}t j ttƒ|  	¡ ¡d	ksZt
‚d S )
Nr   úscipy not installed.r   r   r   r   r   r   g        )r   r   r2   r4   Z
csr_matrixZlinalgZnormr	   r   Ztodenser   )r4   r"   r   r   r   Útest_to_scipy_sparseh   s    
r6   g�íµ ÷Æ°>c                  C   s    t dddd�} t| tƒst‚d S )Nr   Zsympy©Úformat)r   Ú
isinstancer   r   )Úsymr   r   r   Útest_matrix_zeros_sympyv   s    r;   c                  C   s,   t stdƒ tdddd�} t| tƒs(t‚d S )Nr   r   r   r7   )r   r   r   r9   r   r   )Únumr   r   r   Útest_matrix_zeros_numpyz   s    r=   c                  C   s8   t stdƒ tstdƒ tdddd�} t| tƒs4t‚d S )Nr   r5   r   zscipy.sparser7   )r   r   r2   r   r9   r   r   )Zscir   r   r   Útest_matrix_zeros_scipy�   s    r>   N)!Zsympy.core.randomr   Zsympy.core.numbersr   Zsympy.matrices.denser   r   r   Z!sympy.physics.quantum.matrixutilsr   r   r	   r
   r   r   r   r   Zsympy.externalr   Zsympy.testing.pytestr   r   r   r   r   r#   r1   r2   r6   r+   r;   r=   r>   r   r   r   r   Ú<module>   s"   (A