diff --git a/qiskit_aqt_provider/aqt_job.py b/qiskit_aqt_provider/aqt_job.py index 70c20528..bb5b5797 100644 --- a/qiskit_aqt_provider/aqt_job.py +++ b/qiskit_aqt_provider/aqt_job.py @@ -17,7 +17,6 @@ import time import requests - from qiskit.providers import JobV1 from qiskit.providers import JobError from qiskit.providers import JobTimeoutError @@ -77,6 +76,13 @@ def _build_memory_mapping(self): return qu2cl qubit_map = {} count = 0 + + # If a list of quantum circuits use the first element + # since we only can have a maximum of a single + # circuit per job. + if isinstance(self.qobj, list): + self.qobj = self.qobj[0] + for bit in self.qobj.qubits: qubit_map[bit] = count count += 1 diff --git a/test/test_job.py b/test/test_job.py index be7b2080..84fb4175 100644 --- a/test/test_job.py +++ b/test/test_job.py @@ -14,7 +14,6 @@ # pylint: disable=protected-access import unittest - import numpy as np from qiskit import QuantumCircuit, transpile @@ -47,6 +46,20 @@ def test_job_counts_measurement_mapping(self): self.assertEqual(mapping[0], perm[0]) self.assertEqual(mapping[2], perm[2]) + def test_job_counts_measurement_mapping_with_circuit_list(self): + """Are measurements correctly mapped to counts with circuit list""" + perm = np.random.permutation(5) + qc = QuantumCircuit(5, 5) + qc.x(0) + qc.x(2) + qc.measure(range(5), perm) + + job = _FakeJob([qc]) + mapping = job._build_memory_mapping() + + self.assertEqual(mapping[0], perm[0]) + self.assertEqual(mapping[2], perm[2]) + def test_job_result_counts(self): qc = QuantumCircuit(2, 2) qc.x(range(2))