diff --git a/src/qc_compiler/cost_model.py b/src/qc_compiler/cost_model.py index fd49dcd..3ff22e7 100644 --- a/src/qc_compiler/cost_model.py +++ b/src/qc_compiler/cost_model.py @@ -475,7 +475,7 @@ def _get_measured_qubits(self, circuit: QuantumCircuit) -> list[int]: for qubit in instr.qubits: measured.add(circuit.find_bit(qubit).index) if not measured: - measured = set(range(circuit.num_qubits)) + return [] return sorted(measured) def estimate_fidelity( diff --git a/tests/test_cost_model.py b/tests/test_cost_model.py index 1b85e70..d67e572 100644 --- a/tests/test_cost_model.py +++ b/tests/test_cost_model.py @@ -167,7 +167,24 @@ def test_measurement_error_no_measure(self): qc.h(0) qc.cx(0, 1) error = model.estimate_measurement_error(qc) + assert error == 0.0 + + def test_measurement_error_only_measured_qubits(self): + model = CostModel() + device = DeviceCharacterization( + backend_name="test", + num_qubits=3, + readout_errors={0: 0.01, 1: 0.02, 2: 0.03}, + ) + model = CostModel() + model.device = device + qc = QuantumCircuit(3, 1) + qc.h(0) + qc.cx(0, 1) + qc.measure(0, 0) + error = model.estimate_measurement_error(qc) assert error > 0 + assert error < 0.02 def test_fidelity_bell_state(self): model = CostModel()