def test_insert_polar(): """test the `insert` method for polar systems""" grid = PolarSymGrid(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.insert(r, a) assert f.integral == pytest.approx(a) grid.make_inserter_compiled()(g.data, r, a) np.testing.assert_array_almost_equal(f.data, g.data)
def test_insert_scalar(example_grid): """test the `insert` 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.insert(p, a) assert f.data[c] == pytest.approx(a / example_grid.cell_volumes[c]) f.insert(example_grid.get_random_point(cartesian=False), a) assert f.integral == pytest.approx(2 * a) f.data = 0 # reset insert = example_grid.make_inserter_compiled() c = tuple(example_grid.point_to_cell(example_grid.get_random_point())) p = example_grid.cell_to_point(c, cartesian=False) insert(f.data, p, a) assert f.data[c] == pytest.approx(a / example_grid.cell_volumes[c]) insert(f.data, example_grid.get_random_point(cartesian=False), a) assert f.integral == pytest.approx(2 * a)
def test_insert_scalar(grid): """test the `insert` method""" f = ScalarField(grid) a = np.random.random() c = tuple(grid.get_random_point(coords="cell")) p = grid.transform(c, "cell", "grid") f.insert(p, a) assert f.data[c] == pytest.approx(a / grid.cell_volumes[c]) f.insert(grid.get_random_point(coords="grid"), a) assert f.integral == pytest.approx(2 * a) f.data = 0 # reset insert = grid.make_inserter_compiled() c = tuple(grid.get_random_point(coords="cell")) p = grid.transform(c, "cell", "grid") insert(f.data, p, a) assert f.data[c] == pytest.approx(a / grid.cell_volumes[c]) insert(f.data, grid.get_random_point(coords="grid"), a) assert f.integral == pytest.approx(2 * a)