Skip to content

Commit

Permalink
Fix bug list insert does not overwrite
Browse files Browse the repository at this point in the history
  • Loading branch information
elenbaasc committed Oct 17, 2024
1 parent 8c07174 commit 7bcb02b
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 9 deletions.
2 changes: 1 addition & 1 deletion opensquirrel/exporter/quantify_scheduler_exporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down
19 changes: 11 additions & 8 deletions test/test_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -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


Expand Down Expand Up @@ -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

0 comments on commit 7bcb02b

Please sign in to comment.