def test_create_item_checks_type_of_leaves(self): first = self.writer.append({'x': 3, 'y': 2}) second = self.writer.append({'x': 3, 'y': 2}) # History automatically transforms data and thus should be valid. self.writer.create_item( 'table', 1.0, { 'x': self.writer.history['x'][0], # Just one step. 'y': self.writer.history['y'][:], # Two steps. }) # Columns can be constructed explicitly. self.writer.create_item( 'table', 1.0, { 'x': trajectory_writer.TrajectoryColumn([first['x']]), 'y': trajectory_writer.TrajectoryColumn( [first['y'], second['y']]) }) # But all leaves must be TrajectoryColumn. with self.assertRaises(TypeError): self.writer.create_item( 'table', 1.0, { 'x': trajectory_writer.TrajectoryColumn([first['x']]), 'y': first['y'], })
def test_validates_squeeze(self): # Exactly one is valid. trajectory_writer.TrajectoryColumn([FakeWeakCellRef(1)], squeeze=True) # Zero is not fine. with self.assertRaises(ValueError): trajectory_writer.TrajectoryColumn([], squeeze=True) # Neither is two (or more). with self.assertRaises(ValueError): trajectory_writer.TrajectoryColumn( [FakeWeakCellRef(1), FakeWeakCellRef(2)], squeeze=True)
def test_dtype(self, data): expected_dtype = np.asarray(data).dtype column = trajectory_writer.TrajectoryColumn([FakeWeakCellRef(data)]) self.assertEqual(column.dtype, expected_dtype)
def test_shape(self, data): expected_shape = np.asarray(data).shape for i in range(1, 10): column = trajectory_writer.TrajectoryColumn( [FakeWeakCellRef(data)] * i) self.assertEqual(column.shape, (i, *expected_shape))
def test_none_raises(self): with self.assertRaisesRegex(ValueError, r'cannot contain any None'): trajectory_writer.TrajectoryColumn([None]) with self.assertRaisesRegex(ValueError, r'cannot contain any None'): trajectory_writer.TrajectoryColumn([FakeWeakCellRef(1), None])
def test_len(self): for i in range(1, 10): column = trajectory_writer.TrajectoryColumn([FakeWeakCellRef(1)] * i) self.assertLen(column, i)
def test_shape_squeezed(self): expected_shape = (2, 5) data = np.arange(10).reshape(*expected_shape) column = trajectory_writer.TrajectoryColumn([FakeWeakCellRef(data)], squeeze=True) self.assertEqual(column.shape, expected_shape)