Пример #1
0
    def test_length_computation(self):
        program = AlazarProgram()
        for name, data in self.masks.items():
            program.set_measurement_mask(name, self.sample_factor, *data)

        self.assertEqual(program.total_length, 130 + 81)
        self.assertIsNone(program._total_length)
        program.total_length = 17
        self.assertEqual(program.total_length, 17)
Пример #2
0
    def test_set_measurement_mask(self):
        program = AlazarProgram()

        begins, lengths = self.masks['sorted']
        with self.assertRaises(AssertionError):
            program.set_measurement_mask('foo', self.sample_factor,
                                         begins.astype(int), lengths)

        expected_unsorted = np.array([0, 1, 10]).astype(np.uint64), np.array(
            [1, 8, 99]).astype(np.uint64)
        result = program.set_measurement_mask('unsorted', self.sample_factor,
                                              *self.masks['unsorted'])

        np.testing.assert_equal(program._masks,
                                {'unsorted': expected_unsorted})
        np.testing.assert_equal(result, expected_unsorted)
        self.assertFalse(result[0].flags.writeable)
        self.assertFalse(result[1].flags.writeable)

        with self.assertRaisesRegex(RuntimeError, 'differing sample factor'):
            program.set_measurement_mask('sorted', self.sample_factor * 5 / 4,
                                         *self.masks['sorted'])

        result = program.set_measurement_mask('sorted', self.sample_factor,
                                              *self.masks['sorted'])
        np.testing.assert_equal(result, self.expected['sorted'])
Пример #3
0
    def test_masks(self):
        program = AlazarProgram()
        for name, data in self.masks.items():
            program.set_measurement_mask(name, self.sample_factor, *data)

        names = []
        def make_mask(name, *data):
            np.testing.assert_equal(data, self.expected[name])
            assert name not in names
            names.append(name)
            return name

        result = program.masks(make_mask)

        self.assertEqual(names, result)
Пример #4
0
    def test_iter(self):
        program = AlazarProgram()
        program._masks = [4, 5, 6]
        program.operations = [1, 2, 3]
        program.total_length = 13
        program.masks = mock.MagicMock(return_value=342)

        mask_maker = mock.MagicMock()

        a, b, c = program.iter(mask_maker)

        self.assertEqual(a, 342)
        self.assertEqual(b, [1, 2, 3])
        self.assertEqual(c, 13)
        program.masks.assert_called_once_with(mask_maker)
Пример #5
0
    def test_iter(self):
        args = ([], [], 0)

        program = AlazarProgram(*args)
        for x, y in zip(program, args):
            self.assertIs(x, y)