test_r_univar.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. """Test of r.univar
  2. @author Soeren Gebbert
  3. """
  4. from grass.gunittest.case import TestCase
  5. class TestRasterUnivar(TestCase):
  6. @classmethod
  7. def setUpClass(cls):
  8. """Use temporary region settings"""
  9. cls.use_temp_region()
  10. @classmethod
  11. def tearDownClass(cls):
  12. """!Remove the temporary region
  13. """
  14. cls.del_temp_region()
  15. def tearDown(self):
  16. self.runModule("g.remove", type="raster", name="map_a")
  17. self.runModule("g.remove", type="raster", name="map_b")
  18. def setUp(self):
  19. """Create input data
  20. """
  21. self.runModule("g.region", res=1, n=90, s=0, w=0, e=90)
  22. self.runModule("r.mapcalc", expression="map_a = 100 + row() + col()",
  23. overwrite=True)
  24. self.runModule("r.mapcalc", expression="map_b = 200 + row() + col()",
  25. overwrite=True)
  26. def test_1(self):
  27. # Output of r.univar
  28. univar_string="""n=8100
  29. null_cells=0
  30. cells=8100
  31. min=102
  32. max=280
  33. range=178
  34. mean=191
  35. mean_of_abs=191
  36. sum=1547100"""
  37. self.assertRasterFitsUnivar(raster="map_a", reference=univar_string,
  38. precision=3)
  39. def test_2(self):
  40. # Output of r.univar
  41. univar_string="""n=81
  42. null_cells=0
  43. cells=81
  44. min=112
  45. max=272
  46. range=160
  47. mean=192
  48. mean_of_abs=192
  49. sum=15552"""
  50. self.runModule("g.region", res=10)
  51. self.assertRasterFitsUnivar(raster="map_a", reference=univar_string,
  52. precision=3)
  53. def test_3(self):
  54. """
  55. Check the -r flag
  56. :return:
  57. """
  58. univar_string="""n=8100
  59. null_cells=0
  60. cells=8100
  61. min=102
  62. max=280
  63. range=178
  64. mean=191
  65. mean_of_abs=191
  66. sum=1547100"""
  67. self.runModule("g.region", res=10)
  68. self.assertModuleKeyValue(module="r.univar", map="map_a", flags="rg",
  69. reference=univar_string, precision=3, sep='=')
  70. def test_multiple_1(self):
  71. # Output of r.univar
  72. univar_string="""n=16200
  73. null_cells=0
  74. cells=16200
  75. min=102
  76. max=380
  77. range=278
  78. mean=241
  79. mean_of_abs=241
  80. sum=3904200"""
  81. self.assertModuleKeyValue(module="r.univar", map=["map_a","map_b"], flags="rg",
  82. reference=univar_string, precision=3, sep='=')
  83. def test_multiple_2(self):
  84. # Output of r.univar
  85. univar_string="""n=162
  86. null_cells=0
  87. cells=162
  88. min=112
  89. max=372
  90. range=260
  91. mean=241
  92. mean_of_abs=241
  93. sum=39204"""
  94. self.runModule("g.region", res=10)
  95. self.assertModuleKeyValue(module="r.univar", map=["map_a","map_b"], flags="g",
  96. reference=univar_string, precision=3, sep='=')
  97. def test_multiple_3(self):
  98. """
  99. Check the -r flag
  100. :return:
  101. """
  102. # Output of r.univar
  103. univar_string="""n=16200
  104. null_cells=0
  105. cells=16200
  106. min=102
  107. max=380
  108. range=278
  109. mean=241
  110. mean_of_abs=241
  111. sum=3904200"""
  112. self.runModule("g.region", res=10)
  113. self.assertModuleKeyValue(module="r.univar", map=["map_a","map_b"], flags="rg",
  114. reference=univar_string, precision=3, sep='=')
  115. class TestAccumulateFails(TestCase):
  116. def test_error_handling(self):
  117. # No vector map, no strds, no coordinates
  118. self.assertModuleFail("r.univar", flags="r", map="map_a", zones="map_b")
  119. if __name__ == '__main__':
  120. from grass.gunittest.main import test
  121. test()