From b79e75e520859d1c67ac7cd8acb41c377e6702f2 Mon Sep 17 00:00:00 2001 From: mdupays Date: Thu, 6 Jun 2024 11:00:28 +0200 Subject: [PATCH] add test for creating mask hydro buffer --- test/vectors/test_create_mask_hydro_buffer.py | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 test/vectors/test_create_mask_hydro_buffer.py diff --git a/test/vectors/test_create_mask_hydro_buffer.py b/test/vectors/test_create_mask_hydro_buffer.py new file mode 100644 index 00000000..d8f9b57d --- /dev/null +++ b/test/vectors/test_create_mask_hydro_buffer.py @@ -0,0 +1,44 @@ +import os +import shutil +from pathlib import Path + +import geopandas as gpd +from pyproj import CRS +from shapely.geometry import MultiPolygon + +from lidro.create_virtual_point.vectors.create_mask_hydro_buffer import ( + create_mask_hydro_buffer, +) + +TMP_PATH = Path("./tmp/create_virtual_point/vectors/create_mask_hydro_buffer/") + +file_mask = "./data/merge_mask_hydro/MaskHydro_merge.geojson" +output = Path("./tmp/create_virtual_point/vectors/create_mask_hydro_buffer/MaskHydro_merge_buffer.geojson") + + +def setup_module(module): + if TMP_PATH.is_dir(): + shutil.rmtree(TMP_PATH) + os.makedirs(TMP_PATH) + + +def test_create_mask_hydro_buffer_default(): + # Parameters + buffer = 2 + crs = CRS.from_epsg(2154) + + result = create_mask_hydro_buffer(file_mask, buffer, crs) + + # Save the result to GeoJSON + d = {"nom": "mask_hydro_merge_buffer", "geometry": [result]} + gdf = gpd.GeoDataFrame(d, crs=crs) + gdf.to_file(output, driver="GeoJSON", crs=crs) + + assert Path(output).exists() + + gdf = gpd.read_file(output) + + assert not gdf.empty # GeoDataFrame shouldn't empty + assert gdf.crs.to_string() == crs # CRS is identical + + assert all(isinstance(geom, MultiPolygon) for geom in gdf.geometry) # All geometry should MultiPolygone