[Grid] enable negative shifts
This commit is contained in:
parent
066ca8f3b8
commit
85ae6e66cd
3 changed files with 74 additions and 23 deletions
|
|
@ -309,3 +309,58 @@ def test_visualize_isosurface_sampling_uses_preview_lattice(monkeypatch: pytest.
|
|||
assert_allclose(captured['zs'], [1.5, 1.5, 1.5])
|
||||
|
||||
pyplot.close(fig)
|
||||
|
||||
|
||||
|
||||
|
||||
def test_negative_shift_nonperiodic_edges_and_widths() -> None:
|
||||
grid = Grid([[0, 1, 3], [0, 2], [0, 1]], shifts=[[-0.5, 0, 0]], periodic=[False, False, False])
|
||||
|
||||
assert_allclose(grid.shifted_exyz(0)[0], [-0.5, 0.5, 2.0])
|
||||
assert_allclose(grid.shifted_dxyz(0)[0], [1.0, 1.5])
|
||||
assert_allclose(grid.shifted_xyz(0)[0], [0.0, 1.25])
|
||||
|
||||
|
||||
def test_negative_shift_periodic_edges_and_widths() -> None:
|
||||
grid = Grid([[0, 1, 3], [0, 2], [0, 1]], shifts=[[-0.5, 0, 0]], periodic=[True, False, False])
|
||||
|
||||
assert_allclose(grid.shifted_exyz(0)[0], [-1.0, 0.5, 2.0])
|
||||
assert_allclose(grid.shifted_dxyz(0)[0], [1.5, 1.5])
|
||||
|
||||
|
||||
def test_negative_shift_coordinate_round_trip() -> None:
|
||||
grid = Grid([[0, 1, 3], [0, 2], [0, 1]], shifts=[[-0.5, 0, 0]], periodic=[False, False, False])
|
||||
|
||||
ind = grid.pos2ind([1.25, 1.0, 0.5], 0, round_ind=False)
|
||||
pos = grid.ind2pos(ind, 0, round_ind=False)
|
||||
|
||||
assert_allclose(ind, [1.0, 0.0, 0.0])
|
||||
assert_allclose(pos, [1.25, 1.0, 0.5])
|
||||
|
||||
|
||||
def test_negative_shift_draw_cuboid_fractional_fill() -> None:
|
||||
grid = Grid([[0, 1, 3], [0, 1], [0, 1]], shifts=[[-0.5, 0, 0]], periodic=[False, False, False])
|
||||
arr = grid.allocate(0)
|
||||
|
||||
grid.draw_cuboid(
|
||||
arr,
|
||||
x=dict(min=0, max=1),
|
||||
y=dict(min=0, max=1),
|
||||
z=dict(min=0, max=1),
|
||||
foreground=1,
|
||||
)
|
||||
|
||||
assert_allclose(arr[0, :, 0, 0], [0.5, 1 / 3])
|
||||
|
||||
|
||||
def test_negative_shift_get_slice_uses_shifted_centers() -> None:
|
||||
grid = Grid([[0, 1, 3], [0, 1, 2], [0, 1]], shifts=[[-0.5, 0, 0]], periodic=[False, False, False])
|
||||
cell_data = numpy.zeros(grid.cell_data_shape)
|
||||
cell_data[0, 1, :, 0] = [7, 9]
|
||||
x_center = float(grid.shifted_xyz(0)[0][1])
|
||||
|
||||
grid_slice = grid.get_slice(cell_data, Plane(x=x_center), which_shifts=0)
|
||||
|
||||
assert_allclose(grid_slice, [7, 9])
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue