def test_multiple_acquires(self): """Test for multiple acquires.""" sched = pulse.Schedule() acq_q0 = pulse.Acquire(1200, AcquireChannel(0), MemorySlot(0)) sched += acq_q0 sched += acq_q0 << sched.duration sched = transforms.add_implicit_acquires(sched, meas_map=[[0]]) self.assertEqual(sched.instructions, ((0, acq_q0), (2400, acq_q0)))
def test_add_implicit(self): """Test that implicit acquires are made explicit according to the meas map.""" sched = transforms.add_implicit_acquires(self.sched, [[0, 1]]) acquired_qubits = set() for _, inst in sched.instructions: if isinstance(inst, Acquire): acquired_qubits.add(inst.acquire.index) self.assertEqual(acquired_qubits, {0, 1})
def test_add_across_meas_map_sublists(self): """Test that implicit acquires in separate meas map sublists are all added.""" sched = transforms.add_implicit_acquires(self.sched, [[0, 2], [1, 3]]) acquired_qubits = set() for _, inst in sched.instructions: if isinstance(inst, Acquire): acquired_qubits.add(inst.acquire.index) self.assertEqual(acquired_qubits, {0, 1, 2, 3})
def test_dont_add_all(self): """Test that acquires aren't added if no qubits in the sublist aren't being acquired.""" sched = transforms.add_implicit_acquires(self.sched, [[4, 5], [0, 2], [1, 3]]) acquired_qubits = set() for _, inst in sched.instructions: if isinstance(inst, Acquire): acquired_qubits.add(inst.acquire.index) self.assertEqual(acquired_qubits, {0, 1, 2, 3})