Skip to content

Commit

Permalink
r.mblend: basic tests (#911)
Browse files Browse the repository at this point in the history
* Adds first test suit: basic module functioning and simple control parameter effect
* Corrects small issue in the module with temporary map name
  • Loading branch information
ldesousa committed Jul 17, 2023
1 parent 42c4ea6 commit fca644a
Showing 1 changed file with 86 additions and 0 deletions.
86 changes: 86 additions & 0 deletions src/raster/r.mblend/testsuite/test_rmblend.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
from grass.gunittest.case import TestCase
from grass.gunittest.main import test


class TestRMblend(TestCase):
"""Simple tests for the r.mblend add-on. Makes sure it works and produces
reasonable results.
"""

low_res = "low_res"
high_res_1 = "high_res_1"
high_res_2 = "high_res_2"
result_1 = "result_1"
result_2 = "result_2"

@classmethod
def setUpClass(cls):

cls.runModule("g.region", s=0, n=100, w=0, e=100, res=2)
cls.runModule("r.mapcalc", expression="{} = 2".format(cls.low_res))
cls.runModule("g.region", s=0, n=100, w=0, e=60, res=1)
cls.runModule("r.mapcalc", expression="{} = 1".format(cls.high_res_1))
cls.runModule("g.region", s=20, n=80, w=30, e=70, res=1)
cls.runModule("r.mapcalc", expression="{} = 1".format(cls.high_res_2))
cls.runModule("g.region", s=0, n=100, w=0, e=100, res=1)

@classmethod
def tearDownClass(cls):

cls.runModule(
"g.remove",
type="raster",
flags="f",
name=[cls.high_res_1, cls.high_res_2, cls.low_res],
)

def tearDown(self):

self.runModule(
"g.remove",
type="raster",
flags="f",
name=[self.result_1, self.result_2],
)

def test_module_basic(self):

self.assertModule(
"r.mblend",
high=self.high_res_1,
low=self.low_res,
output=self.result_1,
)
self.assertRasterExists(name=self.result_1)

def test_results(self):

self.assertModule(
"r.mblend",
high=self.high_res_1,
low=self.low_res,
output=self.result_1,
inter_points=100,
)
self.assertRasterExists(name=self.result_1)
values = {"min": 1, "max": 2, "mean": 1.187, "stddev": 0.316}
self.assertRasterFitsUnivar(
raster=self.result_1, reference=values, precision=1e-3
)

self.assertModule(
"r.mblend",
high=self.high_res_2,
low=self.low_res,
output=self.result_2,
far_edge=50,
)
self.assertRasterExists(name=self.result_2)
values = {"min": 1, "max": 2, "mean": 1.448, "stddev": 0.417}
self.assertRasterFitsUnivar(
raster=self.result_2, reference=values, precision=1e-3
)


if __name__ == "__main__":
test()

0 comments on commit fca644a

Please sign in to comment.