Пример #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_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)
Пример #3
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'])