12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- # -*- 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()
|