Ë
    7^(h   ã                   óÔ   — 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&y)é    )	ÚQasmÚ
flip_indexÚtrimÚ	get_indexÚnonblankÚ	fullsplitÚ
fixcommandÚstripquotesÚ	read_qasm)ÚXÚZÚHÚSÚT)ÚCNOTÚSWAPÚCPHASEÚCGateÚCGateS)ÚMzc                  ót   — d} t        | «      }|j                  «       t        dd«      t        d«      z  k(  sJ ‚y )Nz;    qubit q_0
    qubit q_1
    h q_0
    cnot q_0,q_1
    é   r   )r   Úget_circuitr   r   )Ú
qasm_linesÚqs     úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/physics/quantum/tests/test_qasm.pyÚtest_qasm_readqasmr      s7   € ð€Jô 	�*Ó€AØ�=‰=‹?œd 1 Q›i¬¨!«™nÒ,Ð,Ñ,ó    c                  óv   — t        dddd«      } | j                  «       t        dd«      t        d«      z  k(  sJ ‚y )Núqubit q0úqubit q1zh q0ú
cnot q0,q1r   r   )r   r   r   r   ©r   s    r   Útest_qasm_ex1r$      s4   € ÜˆZ˜ V¨\Ó:€AØ�=‰=‹?œd 1 Q›i¬¨!«™nÒ,Ð,Ñ,r   c                  óø   — t        «       } | j                  d«       | j                  d«       | j                  d«       | j                  dd«       | j	                  «       t        dd«      t        d«      z  k(  sJ ‚y )NÚq_0Úq_1r   r   )r   ÚqubitÚhÚcnotr   r   r   r#   s    r   Útest_qasm_ex1_methodcallsr+      sZ   € Ü‹€AØ‡G�GˆE„NØ‡G�GˆE„NØ‡C�Cˆ„JØ‡F�Fˆ5�%ÔØ�=‰=‹?œd 1 Q›i¬¨!«™nÒ,Ð,Ñ,r   c                  ó”   — t        ddddd«      } | j                  «       t        dd«      t        dd«      z  t        dd«      z  k(  sJ ‚y )Nr    r!   r"   z
cnot q1,q0r   r   )r   r   r   r#   s    r   Útest_qasm_swapr-      sD   € ÜˆZ˜ \°<ÀÓN€AØ�=‰=‹?œd 1 Q›i¬¨Q¨q«	Ñ1´$°q¸³)Ñ;Ò;Ð;Ñ;r   c                  ó>  — t        ddddddddd	d
d«      } | j                  «       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 ‚y )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ð �=‰=‹?œe A¤a¨£d›m¬E°!´A°a³D«MÑ9¼"¸Q»%Ñ?ÄÀ1ÃÑEÄaÈÃdÑJÌ4ÐPQÐRSË9ÑTÔUYÐZ[Ð\]ÓU^Ñ^Ô_`ÐabÓ_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  «      }|j                  «        |d	«      k(  rŒ/J ‚ y )
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<   )   sd   € Øœq˜ C¬ 8¨c´1¨X¸¼Q°xÀ#ÄqÀÈIÔWYÈ?Ð[ò *‰ˆ�Ü�˜h¨Ñ/Ó0ˆØ�}‰}‹¡$ q£'Ó)Ð)Ð)ñ*r   c                  óš   — dt         fdt        fdt        ffD ]1  \  } }t        ddd| z  «      }|j	                  «        |dd«      k(  rŒ1J ‚ y )	Nr*   ÚswapÚcphaser/   r0   z
%s q_0,q_1r   r   )r   r   r   r   r   r9   s      r   Útest_qasm_2qr@   .   sV   € Ø ¤$˜¨&´$¨¸(ÄFÐ9KÐLò ,‰ˆ�Ü�˜k¨<¸&Ñ+@ÓAˆØ�}‰}‹¡$ q¨£)Ó+Ð+Ð+ñ,r   c                  óp   — t        dddd«      } | j                  «       t        dt        d«      «      k(  sJ ‚y )Nr    r!   zqubit q2ztoffoli q2,q1,q0)r   r   r1   )r   r   r   r   r#   s    r   Útest_qasm_3qrB   3   s2   € ÜˆZ˜ ZÐ1CÓD€AØ�=‰=‹?œf U¬1¨Q«4Ó0Ò0Ð0Ñ0r   c                  óH   — t        dd«      dk(  sJ ‚t        dd«      dk(  sJ ‚y )Nr   r1   r   )r   © r   r   Útest_qasm_flip_indexrE   7   s,   € Ü�a˜Ó˜qÒ Ð Ð Ü�a˜Ó˜qÒ Ð Ñ r   c                  óD   — t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚y )Nznothing happens herezSomething #happens herez
Something )r   rD   r   r   Útest_qasm_trimrG   ;   s+   € ÜÐ&Ó'Ð+AÒAÐAÐAÜÐ)Ó*¨lÒ:Ð:Ñ:r   c                  óP   — t        dddg«      dk(  sJ ‚t        dddg«      dk(  sJ ‚y )NÚq0Úq1r   r   )r   rD   r   r   Útest_qasm_get_indexrK   ?   s4   € Ü�T˜D $˜<Ó(¨AÒ-Ð-Ð-Ü�T˜D $˜<Ó(¨AÒ-Ð-Ñ-r   c                  óŒ   — t        t        d«      «      t        d«      k(  sJ ‚t        t        d«      «      t        d«      k(  sJ ‚y )NÚabcdzabc Úabc)Úlistr   rD   r   r   Útest_qasm_nonblankrP   C   s:   € Ü”˜Ó Ó!¤T¨&£\Ò1Ð1Ð1Ü”˜Ó Ó!¤T¨%£[Ò0Ð0Ñ0r   c                  ó,   — t        d«      dg d¢fk(  sJ ‚y )Nzg q0,q1,q2,  q3Úg)rI   rJ   Úq2Úq3)r   rD   r   r   Útest_qasm_fullsplitrU   G   s   € ÜÐ&Ó'¨CÒ1IÐ+JÒJÐJÑJr   c                  óD   — t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚y )NÚfooÚdefÚqdef)r	   rD   r   r   Útest_qasm_fixcommandrZ   J   s(   € Ü�eÓ Ò%Ð%Ð%Ü�eÓ Ò&Ð&Ñ&r   c                  ód   — t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚y )Nz'S'r   z"S")r
   rD   r   r   Útest_qasm_stripquotesr\   N   s;   € Ü�uÓ Ò$Ð$Ð$Ü�uÓ Ò$Ð$Ð$Ü�sÓ˜sÒ"Ð"Ñ"r   c                  ó²   — t        ddd«      } t        | j                  «       «      dk(  sJ ‚t        dddd«      } t        | j                  «       «      dk(  sJ ‚y )	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   sR   € äˆ[˜ FÓ+€AÜˆq�}‰}‹Ó 6Ò)Ð)Ð)äˆ\˜: z°:Ó>€AÜˆq�}‰}‹Ó =Ò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      sx   ð÷H÷ Hõ Hç 4Õ 4ß HÕ HÝ 0ò-ò-ò-ò<ò
dò*ò
,ò
1ò!ò;ò.ò1òKò'ò#ó
1r   