
    g                         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 Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%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                      d} t          |           }|                                t          dd          t          d          z  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qs     a/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/physics/quantum/tests/test_qasm.pytest_qasm_readqasmr      sI    J 	*A==??d1Qii!n,,,,,,    c                      t          dddd          } |                                 t          dd          t          d          z  k    sJ d S )Nqubit q0qubit q1zh q0
cnot q0,q1r   r   )r   r   r   r   r   s    r   test_qasm_ex1r$      sF    ZV\::A==??d1Qii!n,,,,,,r   c                  <   t                      } |                     d           |                     d           |                     d           |                     dd           |                                 t          dd          t          d          z  k    sJ d S )Nq_0q_1r   r   )r   qubithcnotr   r   r   r#   s    r   test_qasm_ex1_methodcallsr+      s}    AGGENNNGGENNNCCJJJFF5%==??d1Qii!n,,,,,,r   c                      t          ddddd          } |                                 t          dd          t          dd          z  t          dd          z  k    sJ d S )Nr    r!   r"   z
cnot q1,q0r   r   )r   r   r   r#   s    r   test_qasm_swapr-      sX    Z\<NNA==??d1QiiQq		1$q));;;;;;;r   c                     t          ddddddddd	d
d          } |                                 t          dt          d                    t          dt	          d                    z  t          d          z  t          d          z  t          d          z  t          dd          z  t          dd          z  t          d          z  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#   s    r   test_qasm_ex2r2   "   s    [+{H^WMM	+ 	+A ==??eAaddmmE!AaDDMM9"Q%%?1EaddJ4PQRS99TUYZ[\]U^U^^_`ab_c_ccccccccr   c                      dt           fdt          fdt          fdt          fdt          fdt
          ffD ];\  } }t          dd| z            }|                                 |d	          k    sJ <d S )
Nxzr)   stmeasurer/   z%s q_0r   )r   r   r   r   r   r   r   r   symbolgater   s      r   test_qasm_1qr<   )   s}    qC8c1XQx#qIWY?[ * *h/00}}$$q'')))))* *r   c                      dt           fdt          fdt          ffD ]=\  } }t          ddd| z            }|                                 |dd          k    sJ >d S )	Nr*   swapcphaser/   r0   z
%s q_0,q_1r   r   )r   r   r   r   r   r9   s      r   test_qasm_2qr@   .   so     $&$(F9KL , ,k<&+@AA}}$$q))+++++, ,r   c                      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   r1   )r   r   r   r   r#   s    r   test_qasm_3qrB   3   sE    ZZ1CDDA==??fU1Q4400000000r   c                  ^    t          dd          dk    sJ t          dd          dk    sJ d S )Nr   r1   r   )r    r   r   test_qasm_flip_indexrE   7   s>    aq    aq      r   c                  Z    t          d          dk    sJ t          d          dk    sJ d S )Nznothing happens herezSomething #happens herez
Something )r   rD   r   r   test_qasm_trimrG   ;   s=    &''+AAAAA)**l::::::r   c                  f    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   rD   r   r   test_qasm_get_indexrK   ?   sF    TD$<((A----TD$<((A------r   c                      t          t          d                    t          d          k    sJ t          t          d                    t          d          k    sJ d S )Nabcdzabc abc)listr   rD   r   r   test_qasm_nonblankrP   C   sV      !!T&\\1111  !!T%[[000000r   c                  8    t          d          dg dfk    sJ d S )Nzg q0,q1,q2,  q3g)rI   rJ   q2q3)r   rD   r   r   test_qasm_fullsplitrU   G   s.    &''C1I1I1I+JJJJJJJr   c                  Z    t          d          dk    sJ t          d          dk    sJ d S )Nfoodefqdef)r	   rD   r   r   test_qasm_fixcommandrZ   J   s:    e%%%%e&&&&&&r   c                      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
   rD   r   r   test_qasm_stripquotesr\   N   sS    u$$$$u$$$$ss""""""r   c                      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#   s    r   test_qasm_qdefr_   S   sn    [F++Aq}}6))))\:z:>>Aq}}=000000r   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-   r2   r<   r@   rB   rE   rG   rK   rP   rU   rZ   r\   r_   rD   r   r   <module>rc      s  H H H H H H H H H H H H H H H H H H H H H H 4 4 4 4 4 4 4 4 4 4 4 4 4 4 H H H H H H H H H H H H H H 0 0 0 0 0 0- - -- - -- - -< < <
d d d* * *
, , ,
1 1 1! ! !; ; ;. . .1 1 1K K K' ' '# # #
1 1 1 1 1r   