o
    h                     @   s   d dl mZmZmZmZmZmZmZmZm	Z	 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 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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 )&    )	Qasm
flip_indextrim	get_indexnonblank	fullsplit
fixcommandstripquotes	read_qasm)XZHST)CNOTSWAPCPHASECGateCGateS)Mzc                  C   s.   d} t | }| tddtd ksJ d S )Nz;    qubit q_0
    qubit q_1
    h q_0
    cnot q_0,q_1
       r   )r
   get_circuitr   r   )
qasm_linesq r   [/var/www/html/ai/venv/lib/python3.10/site-packages/sympy/physics/quantum/tests/test_qasm.pytest_qasm_readqasm   s   "r   c                  C   s0   t dddd} |  tddtd ksJ d S )Nqubit q0qubit q1zh q0
cnot q0,q1r   r   )r   r   r   r   r   r   r   r   test_qasm_ex1   s   "r!   c                  C   sR   t  } | d | d | d | dd |  tddtd ks'J d S )Nq_0q_1r   r   )r   qubithcnotr   r   r   r    r   r   r   test_qasm_ex1_methodcalls   s   


"r'   c                  C   s>   t ddddd} |  tddtdd tdd ksJ d S )Nr   r   r   z
cnot q1,q0r   r   )r   r   r   r    r   r   r   test_qasm_swap   s   .r(   c                  C   s|   t ddddddddd	d
d} |  tdtdtdtd td td td tdd tdd td ks<J d S )N	qubit q_0	qubit q_1z	qubit q_2zh  q_1zcnot q_1,q_2zcnot q_0,q_1zh q_0zmeasure q_1zmeasure q_0zc-x q_1,q_2zc-z q_0,q_2   r   r   )r   r   r   r   r   r   r   r   r    r   r   r   test_qasm_ex2"   s   
`r,   c                  C   sX   dt fdtfdtfdtfdtfdtffD ]\} }tdd|  }| |d	ks)J qd S )
Nxzr%   stmeasurer)   z%s q_0r   )r   r   r   r   r   r   r   r   symbolgater   r   r   r   test_qasm_1q)   s   0r5   c                  C   sJ   dt fdtfdtffD ]\} }tddd|  }| |ddks"J qd S )	Nr&   swapcphaser)   r*   z
%s q_0,q_1r   r   )r   r   r   r   r   r2   r   r   r   test_qasm_2q.   s   r8   c                  C   s,   t dddd} |  tdtdksJ d S )Nr   r   zqubit q2ztoffoli q2,q1,q0)r   r   r+   )r   r   r   r   r    r   r   r   test_qasm_3q3   s   r9   c                   C   s(   t dddks	J t dddksJ d S )Nr   r+   r   )r   r   r   r   r   test_qasm_flip_index7   s   r:   c                   C   $   t ddksJ t ddksJ d S )Nznothing happens herezSomething #happens herez
Something )r   r   r   r   r   test_qasm_trim;      r<   c                   C   s0   t dddgdksJ t dddgdksJ d S )Nq0q1r   r   )r   r   r   r   r   test_qasm_get_index?   s   r@   c                   C   s4   t tdt dksJ t tdt dksJ d S )Nabcdzabc abc)listr   r   r   r   r   test_qasm_nonblankC   s   rD   c                   C   s   t ddg dfksJ d S )Nzg q0,q1,q2,  q3g)r>   r?   q2q3)r   r   r   r   r   test_qasm_fullsplitG   s   rH   c                   C   r;   )Nfoodefqdef)r   r   r   r   r   test_qasm_fixcommandJ   r=   rL   c                   C   s4   t ddksJ t ddksJ t ddksJ d S )Nz'S'r   z"S")r	   r   r   r   r   test_qasm_stripquotesN   s   rM   c                  C   sF   t ddd} t|  dksJ t dddd} t|  dks!J d S )	Nz	def Q,0,Qr   zQ q0zQ(0)z
def CQ,1,Qr   zCQ q0,q1zC((1),Q(0)))r   strr   r    r   r   r   test_qasm_qdefS   s   rO   N)'sympy.physics.quantum.qasmr   r   r   r   r   r   r   r	   r
   sympy.physics.quantum.gater   r   r   r   r   r   r   r   r   r   !sympy.physics.quantum.circuitplotr   r   r!   r'   r(   r,   r5   r8   r9   r:   r<   r@   rD   rH   rL   rM   rO   r   r   r   r   <module>   s(   , 
