def convert_set_phase(self, instruction): """Return converted `SetPhase`. Args: instruction (PulseQobjInstruction): phase set qobj instruction Returns: Schedule: Converted and scheduled Instruction """ t0 = instruction.t0 channel = self.get_channel(instruction.ch) phase = instruction.phase # This is parameterized if isinstance(phase, str): phase_expr = parse_string_expr(phase, partial_binding=False) def gen_fc_sched(*args, **kwargs): # this should be real value _phase = phase_expr(*args, **kwargs) return instructions.SetPhase(_phase, channel) << t0 return ParameterizedSchedule(gen_fc_sched, parameters=phase_expr.params) return instructions.SetPhase(phase, channel) << t0
def test_default(self): """Test basic SetPhase.""" set_phase = instructions.SetPhase(1.57, channels.DriveChannel(0)) self.assertIsInstance(set_phase.id, int) self.assertEqual(set_phase.name, None) self.assertEqual(set_phase.duration, 0) self.assertEqual(set_phase.phase, 1.57) self.assertEqual(set_phase.operands, (1.57, channels.DriveChannel(0))) self.assertEqual( set_phase, instructions.SetPhase(1.57, channels.DriveChannel(0), name="test")) self.assertNotEqual( set_phase, instructions.SetPhase(1.57j, channels.DriveChannel(0), name="test")) self.assertEqual(repr(set_phase), "SetPhase(1.57, DriveChannel(0))")
def test_set_phase(self): # pylint: disable=no-member """Test set phase instruction.""" d0 = pulse.DriveChannel(0) with pulse.build() as schedule: pulse.set_phase(3.14, d0) reference = pulse.Schedule() reference += instructions.SetPhase(3.14, d0) # pylint: disable=no-member self.assertEqual(schedule, reference)
def test_set_phase(self): """Test set phase instruction.""" d0 = pulse.DriveChannel(0) with pulse.build() as schedule: pulse.set_phase(3.14, d0) reference = pulse.Schedule() reference += instructions.SetPhase(3.14, d0) self.assertScheduleEqual(schedule, reference)
def convert_set_phase(self, instruction): """Return converted `SetPhase`. Args: instruction (PulseQobjInstruction): phase set qobj instruction Returns: Schedule: Converted and scheduled Instruction """ t0 = instruction.t0 channel = self.get_channel(instruction.ch) phase = self.disassemble_value(instruction.phase) return instructions.SetPhase(phase, channel) << t0
def gen_fc_sched(*args, **kwargs): # this should be real value _phase = phase_expr(*args, **kwargs) return instructions.SetPhase(_phase, channel) << t0
def test_set_phase_non_pulse_channel(self): """Test shift phase constructor with illegal channel""" with self.assertRaises(exceptions.PulseError): instructions.SetPhase(1.57, channels.RegisterSlot(1), name="test")