|
@@ -0,0 +1,135 @@
|
|
|
+"""Test t.rast.univar
|
|
|
+
|
|
|
+(C) 2014 by the GRASS Development Team
|
|
|
+This program is free software under the GNU General Public
|
|
|
+License (>=v2). Read the file COPYING that comes with GRASS
|
|
|
+for details.
|
|
|
+
|
|
|
+@author Soeren Gebbert
|
|
|
+"""
|
|
|
+
|
|
|
+from grass.gunittest.case import TestCase
|
|
|
+from grass.gunittest.gmodules import SimpleModule
|
|
|
+
|
|
|
+class TestRasterUnivar(TestCase):
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def setUpClass(cls):
|
|
|
+ """Initiate the temporal GIS and set the region
|
|
|
+ """
|
|
|
+ cls.use_temp_region()
|
|
|
+ cls.runModule("g.region", s=0, n=80, w=0, e=120, b=0, t=50, res=1, res3=1)
|
|
|
+
|
|
|
+ cls.runModule("r.mapcalc", expression="a_1 = 100", overwrite=True)
|
|
|
+ cls.runModule("r.mapcalc", expression="a_2 = 200", overwrite=True)
|
|
|
+ cls.runModule("r.mapcalc", expression="a_3 = 300", overwrite=True)
|
|
|
+ cls.runModule("r.mapcalc", expression="a_4 = 400", overwrite=True)
|
|
|
+
|
|
|
+ cls.runModule("t.create", type="strds", temporaltype="absolute",
|
|
|
+ output="A", title="A test", description="A test",
|
|
|
+ overwrite=True)
|
|
|
+ cls.runModule("t.register", flags="i", type="raster", input="A",
|
|
|
+ maps="a_1,a_2,a_3,a_4", start="2001-01-01",
|
|
|
+ increment="3 months", overwrite=True)
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def tearDownClass(cls):
|
|
|
+ """Remove the temporary region
|
|
|
+ """
|
|
|
+ cls.runModule("t.remove", flags="rf", type="strds",
|
|
|
+ inputs="A")
|
|
|
+ cls.del_temp_region()
|
|
|
+
|
|
|
+ def test_1(self):
|
|
|
+
|
|
|
+ t_rast_univar = SimpleModule("t.rast.univar", input="A",
|
|
|
+ where="start_time >= '2001-01-01'",
|
|
|
+ overwrite=True, verbose=True)
|
|
|
+ self.runModule("g.region", res=1)
|
|
|
+ self.assertModule(t_rast_univar)
|
|
|
+
|
|
|
+ univar_text="""id|start|end|mean|min|max|mean_of_abs|stddev|variance|coeff_var|sum|null_cells|cells
|
|
|
+a_1@testing|2001-01-01 00:00:00|2001-04-01 00:00:00|100|100|100|100|0|0|0|960000|0|9600
|
|
|
+a_2@testing|2001-04-01 00:00:00|2001-07-01 00:00:00|200|200|200|200|0|0|0|1920000|0|9600
|
|
|
+a_3@testing|2001-07-01 00:00:00|2001-10-01 00:00:00|300|300|300|300|0|0|0|2880000|0|9600
|
|
|
+a_4@testing|2001-10-01 00:00:00|2002-01-01 00:00:00|400|400|400|400|0|0|0|3840000|0|9600
|
|
|
+"""
|
|
|
+ self.assertLooksLike(univar_text, t_rast_univar.outputs.stdout)
|
|
|
+
|
|
|
+ def test_2(self):
|
|
|
+
|
|
|
+ t_rast_univar = SimpleModule("t.rast.univar", input="A",
|
|
|
+ where="start_time >= '2001-03-01'",
|
|
|
+ overwrite=True, verbose=True)
|
|
|
+ self.runModule("g.region", res=1)
|
|
|
+ self.assertModule(t_rast_univar)
|
|
|
+
|
|
|
+ univar_text="""id|start|end|mean|min|max|mean_of_abs|stddev|variance|coeff_var|sum|null_cells|cells
|
|
|
+a_2@testing|2001-04-01 00:00:00|2001-07-01 00:00:00|200|200|200|200|0|0|0|1920000|0|9600
|
|
|
+a_3@testing|2001-07-01 00:00:00|2001-10-01 00:00:00|300|300|300|300|0|0|0|2880000|0|9600
|
|
|
+a_4@testing|2001-10-01 00:00:00|2002-01-01 00:00:00|400|400|400|400|0|0|0|3840000|0|9600
|
|
|
+"""
|
|
|
+ self.assertLooksLike(univar_text, t_rast_univar.outputs.stdout)
|
|
|
+
|
|
|
+ def test_3(self):
|
|
|
+
|
|
|
+ t_rast_univar = SimpleModule("t.rast.univar", input="A",
|
|
|
+ where="start_time >= '2001-03-01'",
|
|
|
+ overwrite=True, verbose=True)
|
|
|
+ self.runModule("g.region", res=10)
|
|
|
+ self.assertModule(t_rast_univar)
|
|
|
+
|
|
|
+ univar_text="""id|start|end|mean|min|max|mean_of_abs|stddev|variance|coeff_var|sum|null_cells|cells
|
|
|
+a_2@testing|2001-04-01 00:00:00|2001-07-01 00:00:00|200|200|200|200|0|0|0|19200|0|96
|
|
|
+a_3@testing|2001-07-01 00:00:00|2001-10-01 00:00:00|300|300|300|300|0|0|0|28800|0|96
|
|
|
+a_4@testing|2001-10-01 00:00:00|2002-01-01 00:00:00|400|400|400|400|0|0|0|38400|0|96
|
|
|
+"""
|
|
|
+ self.assertLooksLike(univar_text, t_rast_univar.outputs.stdout)
|
|
|
+
|
|
|
+ def test_4(self):
|
|
|
+
|
|
|
+ self.runModule("g.region", res=10)
|
|
|
+ self.assertModule("t.rast.univar", input="A", flags="r",
|
|
|
+ output="univar_output.txt",
|
|
|
+ where="start_time >= '2001-03-01'",
|
|
|
+ overwrite=True, verbose=True)
|
|
|
+
|
|
|
+ univar_text="""id|start|end|mean|min|max|mean_of_abs|stddev|variance|coeff_var|sum|null_cells|cells
|
|
|
+a_2@testing|2001-04-01 00:00:00|2001-07-01 00:00:00|200|200|200|200|0|0|0|1920000|0|9600
|
|
|
+a_3@testing|2001-07-01 00:00:00|2001-10-01 00:00:00|300|300|300|300|0|0|0|2880000|0|9600
|
|
|
+a_4@testing|2001-10-01 00:00:00|2002-01-01 00:00:00|400|400|400|400|0|0|0|3840000|0|9600
|
|
|
+"""
|
|
|
+ univar_output = open("univar_output.txt", "r").read()
|
|
|
+
|
|
|
+ self.assertLooksLike(univar_text, univar_output)
|
|
|
+
|
|
|
+ def test_5(self):
|
|
|
+
|
|
|
+ self.runModule("g.region", res=10)
|
|
|
+ self.assertModule("t.rast.univar", input="A", flags="rs",
|
|
|
+ output="univar_output.txt",
|
|
|
+ where="start_time >= '2001-03-01'",
|
|
|
+ overwrite=True, verbose=True)
|
|
|
+
|
|
|
+ univar_text="""a_2@testing|2001-04-01 00:00:00|2001-07-01 00:00:00|200|200|200|200|0|0|0|1920000|0|9600
|
|
|
+a_3@testing|2001-07-01 00:00:00|2001-10-01 00:00:00|300|300|300|300|0|0|0|2880000|0|9600
|
|
|
+a_4@testing|2001-10-01 00:00:00|2002-01-01 00:00:00|400|400|400|400|0|0|0|3840000|0|9600
|
|
|
+"""
|
|
|
+ univar_output = open("univar_output.txt", "r").read()
|
|
|
+
|
|
|
+ self.assertLooksLike(univar_text, univar_output)
|
|
|
+
|
|
|
+ def test_6_error_handling_empty_strds(self):
|
|
|
+ # Empty strds
|
|
|
+ self.assertModuleFail("t.rast.univar", input="A",
|
|
|
+ output="univar_output.txt",
|
|
|
+ where="start_time >= '2015-03-01'",
|
|
|
+ overwrite=True, verbose=True)
|
|
|
+
|
|
|
+ def test_7_error_handling_no_input(self):
|
|
|
+ # No input
|
|
|
+ self.assertModuleFail("t.rast.univar", output="out.txt")
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ from grass.gunittest.main import test
|
|
|
+ test()
|