Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 8 additions & 13 deletions autotest/test_grid.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import re
import warnings
from contextlib import nullcontext
from platform import system
from warnings import warn

import matplotlib
Expand Down Expand Up @@ -1492,17 +1493,9 @@ def test_voronoi_grid(request, function_tmpdir, grid_case):
name = request.node.name.replace("/", "_").replace("\\", "_").replace(":", "_")
ncpl, vor, gridprops, grid = grid_case()

# TODO: debug off-by-3 issue
# could be a rounding error as described here:
# https://github.com/modflowpy/flopy/issues/1492#issuecomment-1210596349

# ensure proper number of cells
almost_right = ncpl == 538 and gridprops["ncpl"] == 535
if almost_right:
warn("off-by-3")

# ensure that all cells have 3 or more points
invalid_cells = [i for i, ivts in enumerate(vor.iverts) if len(ivts) < 3]
assert len(invalid_cells) == 0

# make a plot including invalid cells
fig = plt.figure(figsize=(10, 10))
Expand All @@ -1512,10 +1505,12 @@ def test_voronoi_grid(request, function_tmpdir, grid_case):
ax.plot(grid.xcellcenters[invalid_cells], grid.ycellcenters[invalid_cells], "ro")
plt.savefig(function_tmpdir / f"{name}.png")

assert ncpl == gridprops["ncpl"] or almost_right
assert len(invalid_cells) == 0, (
f"The following cells do not have 3 or more vertices.\n{invalid_cells}"
)
# ensure proper number of cells. the grid may be slightly different
# on different platforms depending which compiler triangle is built
# with, so allow small variations.
tol = 10 if system() == "Windows" else 3
assert abs(ncpl - gridprops["ncpl"]) <= tol
assert len(invalid_cells) == 0


@pytest.fixture
Expand Down
Loading