[GRASS-SVN] r70292 - in grass/trunk/vector/v.surf.rst: . testsuite
svn_grass at osgeo.org
svn_grass at osgeo.org
Sat Jan 7 12:30:24 PST 2017
Author: annakrat
Date: 2017-01-07 12:30:24 -0800 (Sat, 07 Jan 2017)
New Revision: 70292
Added:
grass/trunk/vector/v.surf.rst/testsuite/
grass/trunk/vector/v.surf.rst/testsuite/test_vsurfrst.py
Log:
v.surf.rst: added testsuite
Added: grass/trunk/vector/v.surf.rst/testsuite/test_vsurfrst.py
===================================================================
--- grass/trunk/vector/v.surf.rst/testsuite/test_vsurfrst.py (rev 0)
+++ grass/trunk/vector/v.surf.rst/testsuite/test_vsurfrst.py 2017-01-07 20:30:24 UTC (rev 70292)
@@ -0,0 +1,107 @@
+# -*- coding: utf-8 -*-
+from grass.gunittest.case import TestCase
+from grass.gunittest.main import test
+from grass.gunittest.gmodules import SimpleModule
+
+
+class TestVsurfrst(TestCase):
+
+ elevation = 'elevation'
+ elevation_attrib = 'elevation_attrib'
+ elevation_threads = 'elevation_threads'
+ slope = 'slope'
+ aspect = 'aspect'
+ pcurvature = 'pcurvature'
+ tcurvature = 'tcurvature'
+ mcurvature = 'mcurvature'
+ deviations = 'deviations'
+ cvdev = 'cvdev'
+ treeseg = 'treeseg'
+ overwin = 'overwin'
+
+ @classmethod
+ def setUpClass(cls):
+ cls.use_temp_region()
+ cls.runModule('g.region', vector='elev_points', res=1)
+ cls.runModule('v.to.3d', input='elev_points', type='point',
+ output='elev_points3d', column='value', overwrite=True)
+
+ @classmethod
+ def tearDownClass(cls):
+ cls.del_temp_region()
+ cls.runModule('g.remove', type=['raster', 'vector'],
+ name=['elev_points3d', cls.elevation, cls.elevation_threads,
+ cls.elevation_attrib, cls.slope, cls.aspect, cls.pcurvature,
+ cls.tcurvature, cls.mcurvature, cls.deviations,
+ cls.cvdev, cls.treeseg, cls.overwin], flags='f')
+
+ def setUp(self):
+ self.vsurfrst = SimpleModule('v.surf.rst', input='elev_points3d', npmin=100,
+ elevation=self.elevation, overwrite=True)
+
+ def test_more_threads(self):
+ self.assertModule(self.vsurfrst)
+ try:
+ self.vsurfrst.inputs['nprocs'].value = 4
+ self.vsurfrst.outputs.elevation = self.elevation_threads
+ self.assertModule(self.vsurfrst)
+ self.assertRastersNoDifference(self.elevation, self.elevation_threads, precision=1e-8)
+ except KeyError:
+ # original version of v.surf.rst without parallel processing
+ return
+
+ def test_run_outputs(self):
+ self.vsurfrst.outputs.slope = self.slope
+ self.vsurfrst.outputs.aspect = self.aspect
+ self.vsurfrst.outputs.pcurvature = self.pcurvature
+ self.vsurfrst.outputs.tcurvature = self.tcurvature
+ self.vsurfrst.outputs.mcurvature = self.mcurvature
+ self.vsurfrst.outputs.deviations = self.deviations
+ self.vsurfrst.outputs.treeseg = self.treeseg
+ self.vsurfrst.outputs.overwin = self.overwin
+
+ self.assertModule(self.vsurfrst)
+ self.assertRasterExists(name=self.elevation)
+ self.assertRasterExists(name=self.slope)
+ self.assertRasterExists(name=self.aspect)
+ self.assertRasterExists(name=self.pcurvature)
+ self.assertRasterExists(name=self.tcurvature)
+ self.assertRasterExists(name=self.mcurvature)
+ self.assertVectorExists(name=self.deviations)
+ self.assertVectorExists(name=self.treeseg)
+ self.assertVectorExists(name=self.overwin)
+ values = 'min=103.973861694336\nmax=131.529937744141\nmean=120.774013407641'
+ self.assertRasterFitsUnivar(raster=self.elevation, reference=values, precision=1e-8)
+ # slope
+ values = 'min=0.00417369091883302\nmax=15.4391813278198\nmean=3.32303673469512'
+ self.assertRasterFitsUnivar(raster=self.slope, reference=values, precision=1e-8)
+ # aspect
+ values = 'min=0\nmax=360\nmean=212.026580596575'
+ self.assertRasterFitsUnivar(raster=self.aspect, reference=values, precision=1e-8)
+ # pcurvature
+ values = 'min=-0.0507194809615612\nmax=0.0395903363823891\nmean=0.00013527328666273'
+ self.assertRasterFitsUnivar(raster=self.pcurvature, reference=values, precision=1e-8)
+ # tcurvature
+ values = 'min=-0.0455724261701107\nmax=0.0380486063659191\nmean=-0.000136686790876467'
+ self.assertRasterFitsUnivar(raster=self.tcurvature, reference=values, precision=1e-8)
+ # mcurvature
+ values = 'min=-0.0437114611268044\nmax=0.032054178416729\nmean=-6.78450785489373e-07'
+ self.assertRasterFitsUnivar(raster=self.mcurvature, reference=values, precision=1e-8)
+ # deviations
+ values = 'min=-0.035444\nmax=0.048801\nmean=4.21945e-05'
+ self.assertVectorFitsUnivar(map=self.deviations, column='flt1', reference=values, precision=1e-8)
+ # treeseg
+ topology = dict(primitives=256)
+ self.assertVectorFitsTopoInfo(vector=self.treeseg, reference=topology)
+ # overwin
+ topology = dict(primitives=256)
+ self.assertVectorFitsTopoInfo(vector=self.overwin, reference=topology)
+
+ # test 3D versus attribute
+ self.vsurfrst.outputs.elevation = self.elevation_attrib
+ self.vsurfrst.inputs.column = 'value'
+ self.assertModule(self.vsurfrst)
+ self.assertRastersNoDifference(self.elevation, self.elevation_attrib, precision=1e-8)
+
+if __name__ == '__main__':
+ test()
More information about the grass-commit
mailing list