def test_add_interpolated_1d(): """ test the `add_interpolated` method for 1d systems """ grid = PolarGrid(3, 5) f = ScalarField(grid) g = f.copy() a = np.random.random() for r in np.linspace(0, 3, 8).reshape(8, 1): f.data = g.data = 0 f.add_interpolated(r, a) assert f.integral == pytest.approx(a) grid.make_add_interpolated_compiled()(g.data, r, a) np.testing.assert_array_almost_equal(f.data, g.data)
def test_add_interpolated_scalar(example_grid): """ test the `add_interpolated` method """ f = ScalarField(example_grid) a = np.random.random() c = tuple(example_grid.point_to_cell(example_grid.get_random_point())) p = example_grid.cell_to_point(c, cartesian=False) f.add_interpolated(p, a) assert f.data[c] == pytest.approx(a / example_grid.cell_volumes[c]) f.add_interpolated(example_grid.get_random_point(cartesian=False), a) assert f.integral == pytest.approx(2 * a) f.data = 0 # reset add_interpolated = example_grid.make_add_interpolated_compiled() c = tuple(example_grid.point_to_cell(example_grid.get_random_point())) p = example_grid.cell_to_point(c, cartesian=False) add_interpolated(f.data, p, a) assert f.data[c] == pytest.approx(a / example_grid.cell_volumes[c]) add_interpolated(f.data, example_grid.get_random_point(cartesian=False), a) assert f.integral == pytest.approx(2 * a)