def test_export_import(): qc = QubitCircuit(3) qc.add_gate("CRY", targets=1, controls=0, arg_value=np.pi) qc.add_gate("CRX", targets=1, controls=0, arg_value=np.pi) qc.add_gate("CRZ", targets=1, controls=0, arg_value=np.pi) qc.add_gate("CNOT", targets=1, controls=0) qc.add_gate("TOFFOLI", targets=2, controls=[0, 1]) # qc.add_gate("SQRTNOT", targets=0) qc.add_gate("CS", targets=1, controls=0) qc.add_gate("CT", targets=1, controls=0) qc.add_gate("SWAP", targets=[0, 1]) qc.add_gate("QASMU", targets=[0], arg_value=[np.pi, np.pi, np.pi]) qc.add_gate("RX", targets=[0], arg_value=np.pi) qc.add_gate("RY", targets=[0], arg_value=np.pi) qc.add_gate("RZ", targets=[0], arg_value=np.pi) qc.add_gate("SNOT", targets=[0]) qc.add_gate("X", targets=[0]) qc.add_gate("Y", targets=[0]) qc.add_gate("Z", targets=[0]) qc.add_gate("S", targets=[0]) qc.add_gate("T", targets=[0]) # qc.add_gate("CSIGN", targets=[0], controls=[1]) read_qc = read_qasm(circuit_to_qasm_str(qc), strmode=True) props = qc.propagators() read_props = read_qc.propagators() for u0, u1 in zip(props, read_props): assert (u0 - u1).norm() < 1e-12
def test_qasm_str(): expected_qasm_str = ('// QASM 2.0 file generated by QuTiP\n\nOPENQASM 2.0;' '\ninclude "qelib1.inc";\n\nqreg q[2];\ncreg c[1];\n\n' 'x q[0];\nmeasure q[1] -> c[0]\n') simple_qc = QubitCircuit(2, num_cbits=1) simple_qc.add_gate("X", targets=[0]) simple_qc.add_measurement("M", targets=[1], classical_store=0) assert circuit_to_qasm_str(simple_qc) == expected_qasm_str