""" 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()