def test_from_entry_list(self): entries = { 0: [(0, 9, HoldInterpolationStrategy()), (1, 2, HoldInterpolationStrategy()), (4, 1, LinearInterpolationStrategy())], 1: [(0, 8, HoldInterpolationStrategy()), (1, 1, HoldInterpolationStrategy()), (4, 2, LinearInterpolationStrategy())], 2: [(0, 7, HoldInterpolationStrategy()), (1, 3, HoldInterpolationStrategy()), (4, 3, LinearInterpolationStrategy())] } tpt = TablePulseTemplate.from_entry_list([(0, 9, 8, 7), (1, 2, 1, 3, 'hold'), (4, 1, 2, 3, 'linear')], identifier='tpt') self.assertEqual(tpt.entries, entries) self.assertEqual(tpt.identifier, 'tpt') tpt = TablePulseTemplate.from_entry_list([(0, 9, 8, 7, 'hold'), (1, 2, 1, 3, 'hold'), (4, 1, 2, 3, 'linear')], identifier='tpt2') self.assertEqual(tpt.entries, entries) entries = {k: entries[i] for k, i in zip('ABC', [0, 1, 2])} tpt = TablePulseTemplate.from_entry_list([(0, 9, 8, 7), (1, 2, 1, 3, 'hold'), (4, 1, 2, 3, 'linear')], identifier='tpt3', channel_names=['A', 'B', 'C']) self.assertEqual(tpt.entries, entries) self.assertEqual(tpt.identifier, 'tpt3') entries = { 0: [(0, 9, HoldInterpolationStrategy()), (1, 2, HoldInterpolationStrategy()), (4, 1, HoldInterpolationStrategy())], 1: [(0, 8, HoldInterpolationStrategy()), (1, 1, HoldInterpolationStrategy()), (4, 2, HoldInterpolationStrategy())], 2: [(0, 7, HoldInterpolationStrategy()), (1, 3, HoldInterpolationStrategy()), (4, 3, HoldInterpolationStrategy())] } tpt = TablePulseTemplate.from_entry_list([(0, 9, 8, 7), (1, 2, 1, 3), (4, 1, 2, 3)], identifier='tpt4') self.assertEqual(tpt.entries, entries)
def test_from_entry_list_exceptions(self): TablePulseTemplate.from_entry_list([(1, 2, 3, 'hold'), (2, 2, 2)], channel_names=['A', 'B']) with self.assertRaises(ValueError): TablePulseTemplate.from_entry_list([(1, 2, 3, 'hold'), (2, 2)]) with self.assertRaises(ValueError): TablePulseTemplate.from_entry_list([(1, 2, 3, 'hold'), (2, 2, 2)], channel_names=['A']) with self.assertWarns(AmbiguousTablePulseEntry): TablePulseTemplate.from_entry_list([(1, 2, 3, 'hold'), (2, 2, 'linear')], channel_names=['A', 'B'])