""" Created on Sun Jun 07 22:09:41 2018 @author: Sanjeet Bhatti, Maris Nartiss """ from grass.gunittest.case import TestCase from grass.gunittest.main import test from grass.gunittest.gmodules import SimpleModule from grass.script.core import run_command class TestRGrow(TestCase): """Test r.grow script""" mapName = "lakes" mapGrownOutput = "lakes_grown_100m" mapShrunkOutput = "lakes_shrunk_100m" mapNoNULL = "elevation" mapShrunkNoNULL = "elevation_shrunk" @classmethod def setUpClass(cls): """Create maps in a small region.""" cls.use_temp_region() cls.runModule("g.region", raster=cls.mapName, flags="p") @classmethod def tearDownClass(cls): """Remove temporary region""" cls.runModule( "g.remove", flags="f", type="raster", name=(cls.mapGrownOutput, cls.mapShrunkOutput, cls.mapShrunkNoNULL), ) cls.del_temp_region() def test_grow(self): """Grow test""" module = SimpleModule( "r.grow", input=self.mapName, output=self.mapGrownOutput, radius=10 ) self.assertModule(module) def test_shrink(self): """Shrink test""" module = SimpleModule( "r.grow", input=self.mapName, output=self.mapShrunkOutput, radius=-10 ) self.assertModule(module) def test_shrink_null(self): """Shrinking of map without NULL values Based on https://github.com/OSGeo/grass/pull/343""" shrinked_string = "56-156" shrinked = SimpleModule( "r.grow", input=self.mapNoNULL, output=self.mapShrunkNoNULL, radius=-10 ) self.assertModule(shrinked) shrined_range = SimpleModule("r.describe", flags="i", _map=self.mapShrunkNoNULL) self.runModule(shrined_range) self.assertLooksLike(shrinked_string, str(shrined_range.outputs.stdout).strip()) if __name__ == "__main__": test()