def test_shapes_nfields(example_grid): """ test single component field """ for num in [1, 3]: fields = [ScalarField.random_uniform(example_grid) for _ in range(num)] field = FieldCollection(fields) data_shape = (num,) + example_grid.shape np.testing.assert_equal(field.data.shape, data_shape) for pf_single in field: np.testing.assert_equal(pf_single.data.shape, example_grid.shape) field_c = field.copy() np.testing.assert_allclose(field.data, field_c.data) assert field.grid == field_c.grid
def test_collections_copy(): """ test copying data of collections """ grid = UnitGrid([2, 2]) sf = ScalarField(grid, 0) vf = VectorField(grid, 1) fc = FieldCollection([sf, vf]) data = np.r_[np.zeros(4), np.ones(8)] np.testing.assert_allclose(fc.data.flat, data) fc2 = fc.copy() assert fc.data is not fc2.data assert fc[0].data is not fc2[0].data assert fc[1].data is not fc2[1].data sf.data = 1 np.testing.assert_allclose(fc.data.flat, np.ones(12)) np.testing.assert_allclose(fc2.data.flat, data) # special case fc = FieldCollection([sf, sf]) fc[0] = 2 np.testing.assert_allclose(fc[0].data, 2) np.testing.assert_allclose(fc[1].data, 1)