123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- # -*- coding: utf-8 -*-
- from grass.exceptions import OpenError
- from grass.gunittest.case import TestCase
- from grass.gunittest.main import test
- from grass.pygrass.raster import RasterRow
- class RasterRowTestCase(TestCase):
- name = "RasterRowTestCase_map"
- @classmethod
- def setUpClass(cls):
- """Create test raster map and region"""
- cls.use_temp_region()
- cls.runModule("g.region", n=40, s=0, e=40, w=0, res=10)
- cls.runModule(
- "r.mapcalc",
- expression="%s = row() + (10.0 * col())" % (cls.name),
- overwrite=True,
- )
- @classmethod
- def tearDownClass(cls):
- """Remove the generated vector map, if exist"""
- cls.runModule("g.remove", flags="f", type="raster", name=cls.name)
- cls.del_temp_region()
- def test_type(self):
- r = RasterRow(self.name)
- r.open(mode="r")
- self.assertTrue(r.mtype, "DCELL")
- r.close()
- def test_isopen(self):
- r = RasterRow(self.name)
- self.assertFalse(r.is_open())
- r.open(mode="r")
- self.assertTrue(r.is_open())
- r.close()
- self.assertFalse(r.is_open())
- def test_name(self):
- r = RasterRow(self.name)
- r.open(mode="r")
- self.assertEqual(r.name, self.name)
- fullname = "{name}@{mapset}".format(name=r.name, mapset=r.mapset)
- self.assertEqual(r.fullname(), fullname)
- r.close()
- def test_exist(self):
- notexist = RasterRow(self.name + "notexist")
- self.assertFalse(notexist.exist())
- exist = RasterRow(self.name)
- self.assertTrue(exist.exist())
- def test_open_r(self):
- notexist = RasterRow(self.name + "notexist")
- with self.assertRaises(OpenError):
- # raster does not exist
- notexist.open(mode="r")
- r = RasterRow(self.name)
- r.open(mode="r", mtype="FCELL")
- # ignore the mtype if is open in read mode
- self.assertEqual(r.mtype, "DCELL")
- r.close()
- def test_open_w(self):
- r = RasterRow(self.name)
- with self.assertRaises(OpenError):
- # raster type is not defined!
- r.open(mode="w")
- with self.assertRaises(OpenError):
- # raster already exist
- r.open(mode="w", mtype="DCELL")
- # open in write mode and overwrite
- r.open(mode="w", mtype="DCELL", overwrite=True)
- self.assertTrue(r.mtype, "DCELL")
- r.close()
- def test_row_range(self):
- r = RasterRow(self.name)
- with self.assertRaises(IndexError):
- # Map is not open yet
- r[1]
- with self.assertRaises(IndexError):
- # Index is out of range
- r.open()
- r[9999]
- r.close()
- if __name__ == "__main__":
- test()
|