U
    ZÊ¹j0  ã                   @   s    d dl mZmZmZmZmZ d dlmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZ edƒZdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )é    )ÚlabellerÚrender_labelÚMzÚCreateOneQubitGateÚCreateCGate)ÚCNOTÚHÚSWAPÚCGateÚSÚT)Úimport_module)ÚskipZ
matplotlibc                   C   s*   t dƒdkst‚t dddiƒdks&t‚d S )NÚq0z$\left|q0\right\rangle$Ú0z,$\left|q0\right\rangle=\left|0\right\rangle$)r   ÚAssertionError© r   r   úk/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/physics/quantum/tests/test_circuitplot.pyÚtest_render_label	   s    r   c                   C   s   t tdƒƒdkst‚d S )Nr   zMz(0))Ústrr   r   r   r   r   r   Útest_Mz   s    r   c                  C   s    t dƒ} t| dƒƒdkst‚d S )NÚQr   zQ(0))r   r   r   ©ZQgater   r   r   Útest_create1   s    r   c                  C   s$   t dƒ} t| dgdƒƒdks t‚d S )Nr   é   r   zC((1),Q(0)))r   r   r   r   r   r   r   Útest_createc   s    r   c                   C   s0   t dƒddgkst‚t ddƒdddgks,t‚d	S )
zTest the labeller utilityé   Úq_1Úq_0é   ÚjÚj_2Új_1Új_0N)r   r   r   r   r   r   Útest_labeller   s    r$   c                  C   sž   t stdƒ nddlm}  | tddƒdtdƒd�}|jdks@t‚|jdksNt‚|j	ddgks`t‚| tddƒdƒ}|jdks~t‚|jdksŒt‚|j	g ksšt‚d	S )
zƒTest a simple cnot circuit. Right now this only makes sure the code doesn't
    raise an exception, and some simple properties
    úmatplotlib not installedr   ©ÚCircuitPlotr   r   ©Úlabelsr   r   N)
Úmplr   Ú!sympy.physics.quantum.circuitplotr'   r   r   Úngatesr   Únqubitsr)   ©r'   Úcr   r   r   Ú	test_cnot   s    
r0   c                  C   sl   t stdƒ nddlm}  | tddƒtdƒ dtdƒd�}|jdksHt‚|j	dksVt‚|j
ddgksht‚d S )	Nr%   r   r&   r   r   r(   r   r   )r*   r   r+   r'   r   r   r   r,   r   r-   r)   r.   r   r   r   Útest_ex10   s    
 r1   c                  C   sª   t stdƒ nddlm}  | tddƒtdƒ tdtdƒƒ tdƒ tdtdƒƒ tdtdƒƒ tdƒ dt	dd	ƒd
�}|j
dks„t‚|jdks’t‚|jdddgks¦t‚d S )Nr%   r   r&   r   )r   r   )r   r   r    r(   é   r!   r"   r#   )r*   r   r+   r'   r	   r   r
   r   r   r   r,   r   r-   r)   r.   r   r   r   Útest_ex4;   s    
6ÿÿ ÿr3   N)r+   r   r   r   r   r   Zsympy.physics.quantum.gater   r   r	   r
   r   r   Zsympy.externalr   Zsympy.testing.pytestr   r*   r   r   r   r   r$   r0   r1   r3   r   r   r   r   Ú<module>   s    