diff --git a/opensquirrel/exporter/quantify_scheduler_exporter.py b/opensquirrel/exporter/quantify_scheduler_exporter.py index 2ab0ec4..cba3d15 100644 --- a/opensquirrel/exporter/quantify_scheduler_exporter.py +++ b/opensquirrel/exporter/quantify_scheduler_exporter.py @@ -102,7 +102,7 @@ def visit_measure(self, g: Measure) -> None: qubit_index = g.qubit.index bit_index = g.bit.index acq_index = self.acq_index_record[qubit_index] - self.bit_string_mapping.insert(bit_index, (acq_index, qubit_index)) + self.bit_string_mapping[bit_index] = (acq_index, qubit_index) self.schedule.add( quantify_scheduler_gates.Measure( self._get_qubit_string(g.qubit), diff --git a/test/test_integration.py b/test/test_integration.py index 290438d..eec521c 100644 --- a/test/test_integration.py +++ b/test/test_integration.py @@ -203,12 +203,13 @@ def test_hectoqubit_backend() -> None: for i, ir_measure in enumerate(ir_measures): qubit_index = ir_measure.qubit.index ir_acq_index = ir_acq_index_record[qubit_index] - ir_bit_string_mapping.insert(ir_measure.bit.index, (ir_acq_index, qubit_index)) + ir_bit_string_mapping[ir_measure.bit.index] = (ir_acq_index, qubit_index) assert qs_measures[i]["acq_channel_override"] == qubit_index assert qs_measures[i]["acq_index"] == ir_acq_index assert qs_measures[i]["acq_protocol"] == "ThresholdedAcquisition" ir_acq_index_record[qubit_index] += 1 + assert len(bit_string_mapping) == qc.bit_register_size assert bit_string_mapping == ir_bit_string_mapping @@ -311,26 +312,28 @@ def test_hectoqubit_backend_allxy() -> None: "Measure q[0]", ] - qs_measurements = [ + qs_measures = [ operation.data["gate_info"] for operation in exported_schedule.operations.values() if operation.data["gate_info"]["operation_type"] == "measure" ] - ir_measurements = [ + ir_measures = [ instruction for instruction in qc.ir.statements if isinstance(instruction, Measure) ] + ir_acq_index_record = [0] * qc.qubit_register_size ir_bit_string_mapping: list[tuple[None, None] | tuple[int, int]] = [(None, None)] * qc.bit_register_size - for i, ir_measurement in enumerate(ir_measurements): + for i, ir_measurement in enumerate(ir_measures): qubit_index = ir_measurement.qubit.index ir_acq_index = ir_acq_index_record[qubit_index] - ir_bit_string_mapping.insert(ir_measurement.bit.index, (ir_acq_index, qubit_index)) - assert qs_measurements[i]["acq_channel_override"] == qubit_index - assert qs_measurements[i]["acq_index"] == ir_acq_index - assert qs_measurements[i]["acq_protocol"] == "ThresholdedAcquisition" + ir_bit_string_mapping[ir_measurement.bit.index] = (ir_acq_index, qubit_index) + assert qs_measures[i]["acq_channel_override"] == qubit_index + assert qs_measures[i]["acq_index"] == ir_acq_index + assert qs_measures[i]["acq_protocol"] == "ThresholdedAcquisition" ir_acq_index_record[qubit_index] += 1 + assert len(bit_string_mapping) == qc.bit_register_size assert bit_string_mapping == ir_bit_string_mapping