Add tests for priority-flood numba/Python parity and _strip_lidar_ext

This commit is contained in:
Antoine Jacquin
2026-09-07 21:23:52 +02:00
parent cd5bf54066
commit d9a4ea9a4e
2 changed files with 60 additions and 0 deletions

View File

@ -326,3 +326,44 @@ def test_ray_trace_horizons_reraises_non_oom(monkeypatch):
assert False, "ValueError attendue"
except ValueError:
pass
class TestPriorityFlood:
def test_numba_matches_python(self):
"""Le résultat numba et python sont identiques sur un DEM avec un puits."""
from lidar_pipeline.visualizations import _priority_flood_numba, _priority_flood_python
dem = np.zeros((20, 20), dtype=np.float64)
dem[10, 10] = -5.0
dem[9:12, 9:12] = -3.0
nodata = np.zeros((20, 20), dtype=bool)
result_numba = _priority_flood_numba(dem.copy(), nodata)
result_python = _priority_flood_python(dem.copy(), nodata)
if result_numba is not None:
assert np.allclose(result_numba, result_python)
def test_pit_is_filled(self):
"""Un puits isolé est ramené au niveau de son bord."""
from lidar_pipeline.visualizations import _priority_flood
dem = np.full((10, 10), 5.0, dtype=np.float64)
dem[5, 5] = 1.0
nodata = np.zeros((10, 10), dtype=bool)
result = _priority_flood(dem, nodata)
assert result[5, 5] == 5.0
def test_nodata_cells_untouched(self):
"""Les cellules nodata ne sont jamais modifiées."""
from lidar_pipeline.visualizations import _priority_flood
dem = np.full((10, 10), 5.0, dtype=np.float64)
dem[5, 5] = 1.0
nodata = np.zeros((10, 10), dtype=bool)
nodata[2, 2] = True
dem[2, 2] = 999.0
result = _priority_flood(dem, nodata)
assert result[2, 2] == 999.0