Пример #1
0
def test_piecewise_expressions():
    """test special expressions for creating fields"""
    grid = CartesianGrid([[0, 4]], 32)
    field = ScalarField.from_expression(grid,
                                        "Piecewise((x**2, x>2), (1+x, x<=2))")
    x = grid.axes_coords[0]
    field_data = np.piecewise(x, [x > 2, x <= 2],
                              [lambda x: x**2, lambda x: 1 + x])
    np.testing.assert_allclose(field.data, field_data)
Пример #2
0
def test_interpolation_after_free():
    """test whether interpolation is possible when the original field is removed"""
    f = ScalarField.from_expression(UnitGrid([5]), "x")
    intp = f.make_interpolator(backend="numba")

    # delete original field
    del f
    gc.collect()

    # hope that this overwrites the memory
    f = ScalarField.random_uniform(UnitGrid([5]))

    assert intp(np.array([2.3])) == pytest.approx(2.3)
Пример #3
0
def test_from_expression():
    """test creating scalar field from expression"""
    grid = UnitGrid([1, 2])
    sf = ScalarField.from_expression(grid, "x * y", label="abc")
    assert sf.label == "abc"
    np.testing.assert_allclose(sf.data, [[0.25, 0.75]])