예제 #1
0
    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)
예제 #2
0
    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'])