diff --git a/tests/data/config.ini b/tests/data/config.ini index 9a40122eaf11d35d35258d4cd511e4b32b8fd3d8..db5819d4bf25790b66f74839fd416e2bc8ecdfcb 100644 --- a/tests/data/config.ini +++ b/tests/data/config.ini @@ -40,12 +40,12 @@ bottleneck_rasters = True [environmental_1] name = gvg -raster = .\data\rasters\gvg.tif +raster = .\data\rasters\environmentals\gvg.tif table = .\data\parameters\gvg_suitability_index.csv [environmental_2] name = ndep -raster = .\data\rasters\ndep.tif +raster = .\data\rasters\environmentals\ndep.tif table = .\data\parameters\ndep_suitability_index.csv [species_subselection_1] diff --git a/tests/data/rasters/gvg.tif b/tests/data/rasters/environmentals/gvg.tif similarity index 100% rename from tests/data/rasters/gvg.tif rename to tests/data/rasters/environmentals/gvg.tif diff --git a/tests/data/rasters/ndep.tif b/tests/data/rasters/environmentals/ndep.tif similarity index 100% rename from tests/data/rasters/ndep.tif rename to tests/data/rasters/environmentals/ndep.tif diff --git a/tests/data/rasters/ph.tif b/tests/data/rasters/environmentals/ph.tif similarity index 100% rename from tests/data/rasters/ph.tif rename to tests/data/rasters/environmentals/ph.tif diff --git a/tests/test_aggregate_land_type_map.py b/tests/test_aggregate_land_type_map.py new file mode 100644 index 0000000000000000000000000000000000000000..df8db9cc6d009ad8822e7f456d1d5ebb7cc85d40 --- /dev/null +++ b/tests/test_aggregate_land_type_map.py @@ -0,0 +1,54 @@ +import numpy as np +import pytest +from scipy.sparse import dok_array + +from mnp.preparation.aggregate_land_type_map import aggregate_row, LandTypeMap + + +@pytest.fixture +def unaggregated_row(): + return np.array( + [ + [0, 0, 1, 0, 2, 2, 3, 3], + [0, 0, 0, 0, 0, 0, 3, 1], + ] + ).T.flatten() + + +class TestLandTypeMap: + @pytest.fixture + def land_type_map(self): + return LandTypeMap( + "./data/rasters/land_types.tif", + "./data/rasters/land_types.csv", + "./data/rasters/environmentals/", + ) + + def test_aggregate_multiprocess(self, land_type_map): + land_type_map.aggregate_multiprocess() + assert land_type_map.land_types[2][549, 0] == 1 # left border (lt 2) + assert land_type_map.land_types[2][388, 86] == 0 # (lt 1) + assert land_type_map.land_types[1][563, 161] == 0 # (no lt) + assert land_type_map.land_types[1][578, 639] == 1 # right border (lt 1) + + +def test_aggregate_row(unaggregated_row): + lt_dict = { + k: dok_array( + ( + 1, + 4, + ), + dtype=np.double, + ) + for k in [1, 2, 3, 4] + } + unrecognized = set() + land_types, unrecognized_land_type_ids = aggregate_row( + unaggregated_row, 0, lt_dict, unrecognized, 2, nodata_array=np.zeros((2, 2)) + ) + np.testing.assert_array_equal( + land_types[1].todense(), np.array([[0, 0.25, 0, 0.25]]) + ) + np.testing.assert_array_equal(land_types[2].todense(), np.array([[0, 0, 0.5, 0]])) + np.testing.assert_array_equal(land_types[3].todense(), np.array([[0, 0, 0, 0.75]]))