Refactoring a test function out to a class method.
RE:#1344
This commit is contained in:
parent
6b337f72c7
commit
193c6beaa7
|
@ -542,31 +542,20 @@ class UNATests(unittest.TestCase):
|
|||
admin_vector = None
|
||||
admin_layer = None
|
||||
|
||||
def _assert_urban_nature(path, sum_value, min_value, max_value):
|
||||
accessible_urban_nature_array = (
|
||||
pygeoprocessing.raster_to_numpy_array(path))
|
||||
valid_mask = ~utils.array_equals_nodata(
|
||||
accessible_urban_nature_array,
|
||||
urban_nature_access.FLOAT32_NODATA)
|
||||
valid_pixels = accessible_urban_nature_array[valid_mask]
|
||||
self.assertAlmostEqual(numpy.sum(valid_pixels), sum_value)
|
||||
self.assertAlmostEqual(numpy.min(valid_pixels), min_value)
|
||||
self.assertAlmostEqual(numpy.max(valid_pixels), max_value)
|
||||
|
||||
output_dir = os.path.join(args['workspace_dir'], 'output')
|
||||
_assert_urban_nature(os.path.join(
|
||||
self._assert_urban_nature(os.path.join(
|
||||
output_dir, 'accessible_urban_nature_lucode_1_suffix.tif'),
|
||||
72000.0, 0.0, 900.0)
|
||||
_assert_urban_nature(os.path.join(
|
||||
self._assert_urban_nature(os.path.join(
|
||||
output_dir, 'accessible_urban_nature_lucode_3_suffix.tif'),
|
||||
1034934.9864730835, 0.0, 4431.1650390625)
|
||||
_assert_urban_nature(os.path.join(
|
||||
self._assert_urban_nature(os.path.join(
|
||||
output_dir, 'accessible_urban_nature_lucode_5_suffix.tif'),
|
||||
2837622.9519348145, 0.0, 8136.6884765625)
|
||||
_assert_urban_nature(os.path.join(
|
||||
self._assert_urban_nature(os.path.join(
|
||||
output_dir, 'accessible_urban_nature_lucode_7_suffix.tif'),
|
||||
8112734.805541992, 2019.2935791015625, 17729.431640625)
|
||||
_assert_urban_nature(os.path.join(
|
||||
self._assert_urban_nature(os.path.join(
|
||||
output_dir, 'accessible_urban_nature_lucode_9_suffix.tif'),
|
||||
7744116.974121094, 1567.57958984375, 12863.4619140625)
|
||||
|
||||
|
@ -640,6 +629,36 @@ class UNATests(unittest.TestCase):
|
|||
rtol=1e-6
|
||||
)
|
||||
|
||||
def _assert_urban_nature(self, path, sum_value, min_value, max_value):
|
||||
"""Compare a raster's sum, min and max to given values.
|
||||
|
||||
The raster is assumed to be an accessible urban nature raster.
|
||||
|
||||
Args:
|
||||
path (str): The path to an urban nature raster.
|
||||
sum_value (float): The expected sum of the raster.
|
||||
min_value (float): The expected min of the raster.
|
||||
max_value (float): The expected max of the raster.
|
||||
|
||||
Returns:
|
||||
``None``
|
||||
|
||||
Raises:
|
||||
AssertionError: When the raster's sum, min or max values are not
|
||||
numerically close to the expected values.
|
||||
"""
|
||||
from natcap.invest import urban_nature_access
|
||||
|
||||
accessible_urban_nature_array = (
|
||||
pygeoprocessing.raster_to_numpy_array(path))
|
||||
valid_mask = ~utils.array_equals_nodata(
|
||||
accessible_urban_nature_array,
|
||||
urban_nature_access.FLOAT32_NODATA)
|
||||
valid_pixels = accessible_urban_nature_array[valid_mask]
|
||||
self.assertAlmostEqual(numpy.sum(valid_pixels), sum_value)
|
||||
self.assertAlmostEqual(numpy.min(valid_pixels), min_value)
|
||||
self.assertAlmostEqual(numpy.max(valid_pixels), max_value)
|
||||
|
||||
def test_radii_by_pop_group(self):
|
||||
"""UNA: Test defining radii by population group."""
|
||||
from natcap.invest import urban_nature_access
|
||||
|
@ -704,24 +723,11 @@ class UNATests(unittest.TestCase):
|
|||
self.assertAlmostEqual(
|
||||
expected_value, summary_feature.GetField(fieldname))
|
||||
|
||||
def _assert_urban_nature(path, sum_value, min_value, max_value):
|
||||
accessible_urban_nature_array = (
|
||||
pygeoprocessing.raster_to_numpy_array(path))
|
||||
valid_mask = ~utils.array_equals_nodata(
|
||||
accessible_urban_nature_array,
|
||||
urban_nature_access.FLOAT32_NODATA)
|
||||
valid_pixels = accessible_urban_nature_array[valid_mask]
|
||||
print(f"{numpy.sum(valid_pixels)}, {numpy.min(valid_pixels)}, "
|
||||
f"{numpy.max(valid_pixels)}")
|
||||
self.assertAlmostEqual(numpy.sum(valid_pixels), sum_value)
|
||||
self.assertAlmostEqual(numpy.min(valid_pixels), min_value)
|
||||
self.assertAlmostEqual(numpy.max(valid_pixels), max_value)
|
||||
|
||||
output_dir = os.path.join(args['workspace_dir'], 'output')
|
||||
_assert_urban_nature(os.path.join(
|
||||
self._assert_urban_nature(os.path.join(
|
||||
output_dir, 'accessible_urban_nature_to_pop_male.tif'),
|
||||
6221004.412597656, 1171.7352294921875, 11898.0712890625)
|
||||
_assert_urban_nature(os.path.join(
|
||||
self._assert_urban_nature(os.path.join(
|
||||
output_dir, 'accessible_urban_nature_to_pop_female.tif'),
|
||||
6221004.412597656, 1171.7352294921875, 11898.0712890625)
|
||||
|
||||
|
|
Loading…
Reference in New Issue