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)
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'])
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)
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)
def test_iter(self): args = ([], [], 0) program = AlazarProgram(*args) for x, y in zip(program, args): self.assertIs(x, y)