Пример #1
0
def test_slice(example_grid_nd):
    """test scalar slicing"""
    sf = ScalarField(example_grid_nd, 0.5)
    p = example_grid_nd.get_random_point()
    for i in range(example_grid_nd.num_axes):
        sf_slc = sf.slice({example_grid_nd.axes[i]: p[i]})
        np.testing.assert_allclose(sf_slc.data, 0.5)
        assert sf_slc.grid.dim < example_grid_nd.dim
        assert sf_slc.grid.num_axes == example_grid_nd.num_axes - 1

    with pytest.raises(boundaries.DomainError):
        sf.slice({example_grid_nd.axes[0]: -10})
    with pytest.raises(ValueError):
        sf.slice({"q": 0})
Пример #2
0
def test_complex_methods():
    """test special methods for complex data type"""
    grid = UnitGrid([2, 2])
    f = ScalarField(grid, 1j)
    for backend in ["scipy", "numba"]:
        val = f.interpolate([1, 1], backend=backend)
        np.testing.assert_allclose(val, np.array([1j, 1j]))

    f = ScalarField(grid, 1 + 2j)
    np.testing.assert_allclose(f.project("x").data, np.full((2,), 2 + 4j))
    np.testing.assert_allclose(f.slice({"x": 1}).data, np.full((2,), 1 + 2j))
Пример #3
0
def test_slice_positions():
    """test scalar slicing at standard positions"""
    grid = UnitGrid([3, 1])
    sf = ScalarField(grid, np.arange(3).reshape(3, 1))
    assert sf.slice({"x": "min"}).data == 0
    assert sf.slice({"x": "mid"}).data == 1
    assert sf.slice({"x": "max"}).data == 2

    with pytest.raises(ValueError):
        sf.slice({"x": "foo"})
    with pytest.raises(ValueError):
        sf.slice({"x": 0}, method="nonsense")