def test_get_pulses(self): pulse_sequence = PulseSequence() self.assertListEqual(pulse_sequence.get_pulses(), []) pulse1 = DCPulse(name='dc1', amplitude=1.5, duration=10, t_start=1) pulse2 = DCPulse(name='dc2', amplitude=2.5, duration=10, t_start=1) pulse3 = TriggerPulse(name='trig', duration=12, t_start=1) pulse_sequence.add(pulse1, pulse2, pulse3) subset_pulses = pulse_sequence.get_pulses() self.assertEqual(subset_pulses[0], pulse1) self.assertListEqual(subset_pulses, [pulse1, pulse2, pulse3]) subset_pulses = pulse_sequence.get_pulses(t_start=1) self.assertListEqual(subset_pulses, [pulse1, pulse2, pulse3]) subset_pulses = pulse_sequence.get_pulses(duration=10) self.assertListEqual(subset_pulses, [pulse1, pulse2]) subset_pulses = pulse_sequence.get_pulses(amplitude=1.5) self.assertListEqual(subset_pulses, [pulse1]) subset_pulses = pulse_sequence.get_pulses(amplitude=('>', 1.5)) self.assertListEqual(subset_pulses, [pulse2]) subset_pulses = pulse_sequence.get_pulses(amplitude=('>=', 1.5)) self.assertListEqual(subset_pulses, [pulse1, pulse2]) pulse = pulse_sequence.get_pulse(amplitude=1.5) self.assertEqual(pulse, pulse1) pulse = pulse_sequence.get_pulse(duration=12) self.assertEqual(pulse, pulse3) with self.assertRaises(RuntimeError): pulse_sequence.get_pulse(duration=10)
def test_get_pulses_connection_label(self): pulse_sequence = PulseSequence() pulse1, pulse2 = pulse_sequence.add( Pulse('pulse1', duration=1, connection_label='connection'), Pulse('pulse1', duration=2)) retrieved_pulse = pulse_sequence.get_pulse( connection_label='connection') self.assertEqual(retrieved_pulse, pulse1) retrieved_pulse = pulse_sequence.get_pulse( name='pulse1', connection_label='connection') self.assertEqual(retrieved_pulse, pulse1)
def test_get_pulse(self): pulse_sequence = PulseSequence() p = Pulse('p1', duration=1) p1_added, = pulse_sequence.add(p) self.assertIs(pulse_sequence.get_pulse(name='p1'), p1_added) p2_added, = pulse_sequence.add(p) with self.assertRaises(RuntimeError): pulse_sequence.get_pulse(name='p1') self.assertIs(pulse_sequence.get_pulse(name='p1[0]'), p1_added) self.assertIs(pulse_sequence.get_pulse(name='p1[1]'), p2_added)
def test_pulse_sequence_id(self): pulse_sequence = PulseSequence() pulse_sequence.add(Pulse(name='read', duration=1)) p1_read = pulse_sequence['read'] self.assertIsNone(p1_read.id) pulse_sequence.add(Pulse(name='load', duration=1)) self.assertIsNone(p1_read.id) pulse_sequence.add(Pulse(name='read', duration=1)) self.assertEqual(p1_read.id, 0) self.assertEqual(pulse_sequence.get_pulse(name='read', id=0), p1_read) self.assertEqual(pulse_sequence.get_pulse(name='read[0]'), p1_read) p2_read = pulse_sequence['read[1]'] self.assertNotEqual(p2_read, p1_read) pulse_sequence.add(Pulse(name='read', duration=1)) p3_read = pulse_sequence['read[2]'] self.assertNotEqual(p3_read, p1_read) self.assertNotEqual(p3_read, p2_read)
def test_get_pulses_connection(self): connection = SingleConnection(output_instrument='ins1', output_channel=Channel('ins1', 'ch1'), input_instrument='ins2', input_channel=Channel('ins1', 'ch1'), label='connection') pulse_sequence = PulseSequence() pulse1, pulse2 = pulse_sequence.add( Pulse('pulse1', duration=1, connection=connection), Pulse('pulse1', duration=2)) retrieved_pulse = pulse_sequence.get_pulse(connection=connection) self.assertEqual(retrieved_pulse, pulse1) retrieved_pulse = pulse_sequence.get_pulse( name='pulse1', connection_label='connection') self.assertEqual(retrieved_pulse, pulse1) pulse2.connection_label = 'connection' self.assertEqual(len(pulse_sequence.get_pulses(connection=connection)), 2)