def convert_set_frequency(self, instruction): """Return converted `SetFrequencyInstruction`. Args: instruction (PulseQobjInstruction): set frequency qobj instruction The input frequency is expressed in GHz, so it will be scaled by a factor 1e9. Returns: Schedule: Converted and scheduled Instruction """ t0 = instruction.t0 channel = self.get_channel(instruction.ch) frequency = instruction.frequency if isinstance(frequency, str): frequency_expr = parse_string_expr(frequency, partial_binding=False) def gen_sf_schedule(*args, **kwargs): _frequency = frequency_expr(*args, **kwargs) return instructions.SetFrequency( _frequency * GIGAHERTZ_TO_SI_UNITS, channel) << t0 return ParameterizedSchedule(gen_sf_schedule, parameters=frequency_expr.params) else: frequency = frequency * GIGAHERTZ_TO_SI_UNITS return instructions.SetFrequency(frequency, channel) << t0
def test_freq(self): """Test set frequency basic functionality.""" set_freq = instructions.SetFrequency(4.5e9, channels.DriveChannel(1), name='test') self.assertIsInstance(set_freq.id, int) self.assertEqual(set_freq.duration, 0) self.assertEqual(set_freq.frequency, 4.5e9) self.assertEqual(set_freq.operands, (4.5e9, channels.DriveChannel(1))) self.assertEqual(set_freq, instructions.SetFrequency(4.5e9, channels.DriveChannel(1), name='test')) self.assertNotEqual(set_freq, instructions.SetFrequency(4.5e8, channels.DriveChannel(1), name='test')) self.assertEqual(repr(set_freq), "SetFrequency(4500000000.0, DriveChannel(1), name='test')")
def test_set_frequency(self): """Test set frequency instruction.""" d0 = pulse.DriveChannel(0) with pulse.build() as schedule: pulse.set_frequency(1e9, d0) reference = pulse.Schedule() reference += instructions.SetFrequency(1e9, d0) self.assertEqual(schedule, reference)
def convert_set_frequency(self, instruction): """Return converted `SetFrequencyInstruction`. Args: instruction (PulseQobjInstruction): set frequency qobj instruction The input frequency is expressed in GHz, so it will be scaled by a factor 1e9. Returns: Schedule: Converted and scheduled Instruction """ t0 = instruction.t0 channel = self.get_channel(instruction.ch) frequency = self.disassemble_value(instruction.frequency) * GIGAHERTZ_TO_SI_UNITS return instructions.SetFrequency(frequency, channel) << t0
def convert_set_frequency(self, instruction): """Return converted `SetFrequencyInstruction`. Args: instruction (PulseQobjInstruction): set frequency qobj instruction Returns: Schedule: Converted and scheduled Instruction """ t0 = instruction.t0 channel = self.get_channel(instruction.ch) frequency = instruction.frequency * 1e9 if isinstance(frequency, str): frequency_expr = parse_string_expr(frequency, partial_binding=False) def gen_sf_schedule(*args, **kwargs): _frequency = frequency_expr(*args, **kwargs) return instructions.SetFrequency(_frequency, channel) << t0 return ParameterizedSchedule(gen_sf_schedule, parameters=frequency_expr.params) return instructions.SetFrequency(frequency, channel) << t0
def gen_sf_schedule(*args, **kwargs): _frequency = frequency_expr(*args, **kwargs) return instructions.SetFrequency(_frequency, channel) << t0
def gen_sf_schedule(*args, **kwargs): _frequency = frequency_expr(*args, **kwargs) return instructions.SetFrequency( _frequency * GIGAHERTZ_TO_SI_UNITS, channel) << t0
def test_freq_non_pulse_channel(self): """Test set frequency constructor with illegal channel""" with self.assertRaises(exceptions.PulseError): instructions.SetFrequency(4.5e9, channels.RegisterSlot(1), name="test")