This is an automated email from the ASF dual-hosted git repository.
guanmingchiu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/mahout.git
The following commit(s) were added to refs/heads/main by this push:
new a35d5e22d Fix execute_circuit to handle 0 num_qubits (#589)
a35d5e22d is described below
commit a35d5e22d182d36e4c50f6fd9a9774857b372908
Author: Guan-Ming (Wesley) Chiu <[email protected]>
AuthorDate: Tue Nov 4 21:39:17 2025 +0800
Fix execute_circuit to handle 0 num_qubits (#589)
---
qumat/qumat.py | 9 +++++++++
testing/test_create_circuit.py | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/qumat/qumat.py b/qumat/qumat.py
index d5f1afc48..353dbb518 100644
--- a/qumat/qumat.py
+++ b/qumat/qumat.py
@@ -28,10 +28,12 @@ class QuMat:
self.circuit = None
self.num_qubits = None
self.parameters = {}
+ self.num_qubits = None
def create_empty_circuit(self, num_qubits: int | None = None):
self.num_qubits = num_qubits
self.circuit = self.backend_module.create_empty_circuit(num_qubits)
+ self.num_qubits = num_qubits
def apply_not_gate(self, qubit_index):
self.backend_module.apply_not_gate(self.circuit, qubit_index)
@@ -71,6 +73,13 @@ class QuMat:
self.backend_module.apply_pauli_z_gate(self.circuit, qubit_index)
def execute_circuit(self, parameter_values=None):
+ if self.num_qubits == 0:
+ shots = self.backend_config["backend_options"].get("shots", 1)
+ if self.backend_name == "cirq":
+ return [{0: shots}]
+ else:
+ return {"": shots}
+
if parameter_values:
self.bind_parameters(parameter_values)
self.backend_config["parameter_values"] = self.parameters # Pass
parameters
diff --git a/testing/test_create_circuit.py b/testing/test_create_circuit.py
index 48f0f3099..e6cea46e6 100644
--- a/testing/test_create_circuit.py
+++ b/testing/test_create_circuit.py
@@ -60,7 +60,7 @@ class TestCreateCircuit:
assert qumat.circuit is not None
- @pytest.mark.parametrize("num_qubits", [1, 3, 5])
+ @pytest.mark.parametrize("num_qubits", [0, 1, 3, 5])
def test_create_circuit_initializes_to_zero(self, backend_name,
num_qubits):
"""Test that create_empty_circuit properly initializes all qubits to
|0⟩."""
backend_config = self.get_backend_config(backend_name)