§
    OŠtj   ã                   óÖ   — 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     úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/physics/quantum/tests/test_qasm.pyÚtest_qasm_readqasmr      sI   € ð€Jõ 	�*ÑÔ€AØ�=Š=‰?Œ?�d 1 Q™iœi­¨!©¬™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Ø�=Š=‰?Œ?�d 1 Q™iœi­¨!©¬™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Ø‡G‚GˆE�N„N€NØ‡G‚GˆE�N„N€NØ‡C‚Cˆ�J„J€JØ‡F‚Fˆ5�%ÑÔÐØ�=Š=‰?Œ?�d 1 Q™iœi­¨!©¬™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ÔN€AØ�=Š=‰?Œ?�d 1 Q™iœi­¨Q¨q©	¬	Ñ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ð �=Š=‰?Œ?�e A¥a¨¡d¤d™mœm­E°!µA°a±D´D©M¬MÑ9½"¸Q¹%¼%Ñ?ÅÀ1ÁÄÑEÅaÈÁdÄdÑJÍ4ÐPQÐRSÉ9Ì9ÑTÕUYÐZ[Ð\]Ñ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­ 8¨cµ1¨X¸½Q°xÀ#ÅqÀÈIÕWYÈ?Ð[ð *ð *‰ˆ�Ý�˜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   € Ø ¥$˜¨&µ$¨¸(ÅFÐ9KÐ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˜ ZÐ1CÑDÔD€AØ�=Š=‰?Œ?�f U­1¨Q©4¬4Ñ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   € Ý�T˜D $˜<Ñ(Ô(¨AÒ-Ð-Ð-Ð-Ý�T˜D $˜<Ñ(Ô(¨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.   € ÝÐ&Ñ'Ô'¨CÐ1IÐ1IÐ1IÐ+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   