From 05872559e2f883c15911d66252efeacb8b810d25 Mon Sep 17 00:00:00 2001 From: Takashi Imamichi Date: Mon, 20 Mar 2023 11:31:42 +0900 Subject: [PATCH] fix qasm with reset --- qiskit/circuit/quantumcircuit.py | 2 +- .../notes/fix-qasm-reset-ef7b07bf55875be7.yaml | 4 ++++ test/python/circuit/test_circuit_qasm.py | 12 ++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/fix-qasm-reset-ef7b07bf55875be7.yaml diff --git a/qiskit/circuit/quantumcircuit.py b/qiskit/circuit/quantumcircuit.py index f75aef9db0bd..7c304f63af4a 100644 --- a/qiskit/circuit/quantumcircuit.py +++ b/qiskit/circuit/quantumcircuit.py @@ -1683,7 +1683,7 @@ def qasm( bit_labels[clbit], ) elif operation.name == "reset": - string_temp += f"reset {bit_labels[instruction.qubits[0]]}\n" + string_temp += f"reset {bit_labels[instruction.qubits[0]]};\n" elif operation.name == "barrier": qargs = ",".join(bit_labels[q] for q in instruction.qubits) string_temp += "barrier;\n" if not qargs else f"barrier {qargs};\n" diff --git a/releasenotes/notes/fix-qasm-reset-ef7b07bf55875be7.yaml b/releasenotes/notes/fix-qasm-reset-ef7b07bf55875be7.yaml new file mode 100644 index 000000000000..b541c28b2b38 --- /dev/null +++ b/releasenotes/notes/fix-qasm-reset-ef7b07bf55875be7.yaml @@ -0,0 +1,4 @@ +--- +fixes: + - | + Fixed :meth:`~.QuantumCircuit.qasm` so that it appends ``;`` after ``reset`` instruction. diff --git a/test/python/circuit/test_circuit_qasm.py b/test/python/circuit/test_circuit_qasm.py index 8924bd1f4051..f0b069c74892 100644 --- a/test/python/circuit/test_circuit_qasm.py +++ b/test/python/circuit/test_circuit_qasm.py @@ -616,6 +616,18 @@ def test_circuit_qasm_with_permutations(self): permutation__2_1_0_ q[0],q[1],q[2];\n""" self.assertEqual(qc.qasm(), expected_qasm) + def test_circuit_qasm_with_reset(self): + """Test circuit qasm() method with Reset.""" + qc = QuantumCircuit(2) + qc.reset([0, 1]) + + expected_qasm = """OPENQASM 2.0; +include "qelib1.inc"; +qreg q[2]; +reset q[0]; +reset q[1];\n""" + self.assertEqual(qc.qasm(), expected_qasm) + if __name__ == "__main__": unittest.main()