def test_single_float32(self): x = np.arange(0, 10, 0.25, dtype=np.float32) b = array_storage.pack({3: x}, sample_count=43) y, c = array_storage.unpack(b) self.assertEqual(c, 43) self.assertIn(3, y) np.testing.assert_equal(y[3], x)
def test_single_u8(self): x = np.arange(256, dtype=np.uint8) b = array_storage.pack({2: x}, sample_count=42) y, c = array_storage.unpack(b) self.assertEqual(c, 42) self.assertIn(2, y) np.testing.assert_equal(y[2], x)
def test_multiple(self): x_u8 = np.arange(256, dtype=np.uint8) x_f32 = np.arange(0, 10, 0.25, dtype=np.float32) x = {9: x_u8, 5: x_f32} b = array_storage.pack(x, sample_count=44) y, c = array_storage.unpack(b) self.assertEqual(c, 44) self.assertEqual(len(y), 2) np.testing.assert_equal(y[9], x_u8) np.testing.assert_equal(y[5], x_f32)
def test_truncated(self): x = np.arange(0, 10, 0.25, dtype=np.float32) b = array_storage.pack({3: x}, sample_count=43) with self.assertRaises(ValueError): array_storage.unpack(b[:-16])
def test_unpack_invalid(self): with self.assertRaises(ValueError): array_storage.unpack(np.zeros(100, dtype=np.uint8))
def test_empty(self): b = array_storage.pack({}, sample_count=0) y, c = array_storage.unpack(b) self.assertEqual(c, 0) self.assertEqual(len(y), 0)