test_r_reclass.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. """
  2. Name: r.reclass test
  3. Purpose: Tests r.reclass and its flags/options.
  4. Author: Sunveer Singh, Google Code-in 2017
  5. Copyright: (C) 2017 by Sunveer Singh and the GRASS Development Team
  6. Licence: This program is free software under the GNU General Public
  7. License (>=v2). Read the file COPYING that comes with GRASS
  8. for details.
  9. """
  10. from grass.gunittest.case import TestCase
  11. from grass.gunittest.main import test
  12. from grass.gunittest.gmodules import SimpleModule
  13. rules1 = """
  14. 1 2 3 = 1 good quality
  15. 4 5 = 2 poor quality
  16. """
  17. rules2 = """
  18. 1 3 5 = 1 poor quality
  19. 2 4 6 = 2 good quality
  20. * = NULL
  21. """
  22. rules3 = """
  23. 1 thru 10 = 1
  24. 11 thru 20 = 2
  25. 21 thru 30 = 3
  26. 30 thru 40 = NULL
  27. """
  28. class Testrr(TestCase):
  29. output = "reclass"
  30. input = "elevation_shade"
  31. @classmethod
  32. def setUpClass(cls):
  33. cls.use_temp_region()
  34. cls.runModule("g.region", raster=cls.input)
  35. @classmethod
  36. def tearDownClass(cls):
  37. cls.del_temp_region()
  38. def tearDown(self):
  39. self.runModule("g.remove", type="raster", flags="f", name=self.output)
  40. def test_rules1(self):
  41. """Testing rules 1"""
  42. reclass = SimpleModule(
  43. "r.reclass", input=self.input, output=self.output, rules="-"
  44. )
  45. reclass.inputs.stdin = rules1
  46. self.assertModule(reclass)
  47. info = "min=1\nmax=2\ndatatype=CELL"
  48. self.assertRasterFitsInfo(raster="reclass", reference=info)
  49. def test_rules2(self):
  50. """Testing Rules2"""
  51. reclass = SimpleModule(
  52. "r.reclass", input=self.input, output=self.output, rules="-"
  53. )
  54. reclass.inputs.stdin = rules2
  55. self.assertModule(reclass)
  56. info = "min=1\nmax=2\ndatatype=CELL"
  57. self.assertRasterFitsInfo(raster="reclass", reference=info)
  58. def test_rules3(self):
  59. """Testing rules3"""
  60. reclass = SimpleModule(
  61. "r.reclass", input=self.input, output=self.output, rules="-"
  62. )
  63. reclass.inputs.stdin = rules3
  64. self.assertModule(reclass)
  65. info = "min=1\nmax=3\ndatatype=CELL"
  66. self.assertRasterFitsInfo(raster="reclass", reference=info)
  67. def test_rules4(self):
  68. """Testing rules with external file"""
  69. reclass = SimpleModule(
  70. "r.reclass", input=self.input, output=self.output, rules="data/rules.txt"
  71. )
  72. self.assertModule(reclass)
  73. info = "min=1\nmax=3\ndatatype=CELL"
  74. self.assertRasterFitsInfo(raster="reclass", reference=info)
  75. if __name__ == "__main__":
  76. test()