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)

Reply via email to