/[thuban]/branches/WIP-pyshapelib-bramz/test/test_layer.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/test/test_layer.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1452 by bh, Fri Jul 18 12:57:59 2003 UTC revision 1555 by bh, Thu Aug 7 15:41:05 2003 UTC
# Line 23  import shapelib Line 23  import shapelib
23  import dbflib  import dbflib
24    
25  from Thuban.Model.session import Session  from Thuban.Model.session import Session
26  from Thuban.Model.layer import BaseLayer, Layer, RasterLayer, \  from Thuban.Model.layer import BaseLayer, Layer, RasterLayer
27       SHAPETYPE_POLYGON, SHAPETYPE_ARC, SHAPETYPE_POINT  from Thuban.Model.data import SHAPETYPE_POLYGON, SHAPETYPE_ARC, SHAPETYPE_POINT
28  from Thuban.Model.messages import LAYER_LEGEND_CHANGED, \  from Thuban.Model.messages import LAYER_LEGEND_CHANGED, \
29       LAYER_VISIBILITY_CHANGED, LAYER_SHAPESTORE_REPLACED, LAYER_CHANGED       LAYER_VISIBILITY_CHANGED, LAYER_SHAPESTORE_REPLACED, LAYER_CHANGED
30  from Thuban.Model.table import FIELDTYPE_DOUBLE, FIELDTYPE_STRING, MemoryTable  from Thuban.Model.table import FIELDTYPE_DOUBLE, FIELDTYPE_STRING, MemoryTable
# Line 40  class TestLayer(unittest.TestCase, suppo Line 40  class TestLayer(unittest.TestCase, suppo
40    
41      """Test cases for different layer (shape) types"""      """Test cases for different layer (shape) types"""
42    
43      def assertFloatTuplesEqual(self, test, value):      def assertPointListEquals(self, test, value):
44          """Assert equality of two lists of tuples of float"""          """Assert equality of two lists of lists of tuples of float"""
45          for i in range(len(test)):          for i in range(len(test)):
46              self.assertFloatSeqEqual(test[i], value[i])              self.assertEquals(len(test[i]), len(value[i]))
47                for j in range(len(test[i])):
48                    self.assertFloatSeqEqual(test[i][j], value[i][j])
49    
50      def setUp(self):      def setUp(self):
51          """Create a session self.session and initialize self.layer to None"""          """Create a session self.session and initialize self.layer to None"""
# Line 101  class TestLayer(unittest.TestCase, suppo Line 103  class TestLayer(unittest.TestCase, suppo
103          self.assertEquals(layer.ShapeType(), SHAPETYPE_ARC)          self.assertEquals(layer.ShapeType(), SHAPETYPE_ARC)
104          self.assertEquals(layer.NumShapes(), 839)          self.assertEquals(layer.NumShapes(), 839)
105          shape = layer.Shape(32)          shape = layer.Shape(32)
106          self.assertFloatTuplesEqual(shape.Points(),          self.assertPointListEquals(shape.Points(),
107                                      [(-15.082174301147461, 66.27738189697265),                                     [[(-15.082174301147461, 66.27738189697265),
108                                       (-15.026350021362305, 66.27339172363281)])                                       (-15.026350021362305, 66.27339172363281)]])
109          self.assertFloatSeqEqual(layer.BoundingBox(),          self.assertFloatSeqEqual(layer.BoundingBox(),
110                                   [-24.450359344482422, 63.426830291748047,                                   [-24.450359344482422, 63.426830291748047,
111                                    -13.55668830871582, 66.520111083984375])                                    -13.55668830871582, 66.520111083984375])
# Line 115  class TestLayer(unittest.TestCase, suppo Line 117  class TestLayer(unittest.TestCase, suppo
117                             -15.026350021362305, 66.27738189697265])                             -15.026350021362305, 66.27738189697265])
118    
119          shape = layer.Shape(33)          shape = layer.Shape(33)
120          self.assertFloatTuplesEqual(shape.Points(),          self.assertPointListEquals(shape.Points(),
121                                      [(-22.248506546020508, 66.30645751953125),                                     [[(-22.24850654602050, 66.30645751953125),
122                                       (-22.232730865478516, 66.294075012207031),                                       (-22.23273086547851, 66.29407501220703),
123                                       (-22.23158073425293,  66.287689208984375),                                       (-22.23158073425293,  66.2876892089843),
124                                       (-22.246318817138672, 66.270065307617188)])                                       (-22.24631881713867, 66.27006530761718)]])
125    
126          self.assertFloatSeqEqual(layer.ShapesBoundingBox([32, 33]),          self.assertFloatSeqEqual(layer.ShapesBoundingBox([32, 33]),
127                                   [-22.248506546020508, 66.270065307617188,                                   [-22.248506546020508, 66.270065307617188,
# Line 137  class TestLayer(unittest.TestCase, suppo Line 139  class TestLayer(unittest.TestCase, suppo
139          self.assertEquals(layer.ShapeType(), SHAPETYPE_POLYGON)          self.assertEquals(layer.ShapeType(), SHAPETYPE_POLYGON)
140          self.assertEquals(layer.NumShapes(), 156)          self.assertEquals(layer.NumShapes(), 156)
141          shape = layer.Shape(4)          shape = layer.Shape(4)
142          self.assertFloatTuplesEqual(shape.Points(),          self.assertPointListEquals(shape.Points(),
143                                      [(-22.406391143798828, 64.714111328125),                                     [[(-22.40639114379882, 64.714111328125),
144                                       (-22.41621208190918, 64.71600341796875),                                       (-22.41621208190918, 64.7160034179687),
145                                       (-22.406051635742188, 64.719200134277344),                                       (-22.40605163574218, 64.719200134277),
146                                       (-22.406391143798828, 64.714111328125)])                                       (-22.40639114379882, 64.714111328125)]])
147          self.assertFloatSeqEqual(layer.BoundingBox(),          self.assertFloatSeqEqual(layer.BoundingBox(),
148                                   [-24.546524047851562, 63.286754608154297,                                   [-24.546524047851562, 63.286754608154297,
149                                    -13.495815277099609, 66.563774108886719])                                    -13.495815277099609, 66.563774108886719])
# Line 157  class TestLayer(unittest.TestCase, suppo Line 159  class TestLayer(unittest.TestCase, suppo
159          self.assertEquals(layer.ShapeType(), SHAPETYPE_POINT)          self.assertEquals(layer.ShapeType(), SHAPETYPE_POINT)
160          self.assertEquals(layer.NumShapes(), 34)          self.assertEquals(layer.NumShapes(), 34)
161          shape = layer.Shape(0)          shape = layer.Shape(0)
162          self.assertFloatTuplesEqual(shape.Points(),          self.assertPointListEquals(shape.Points(),
163                                      [(-22.711074829101562, 66.36572265625)])                                     [[(-22.711074829101562, 66.36572265625)]])
164          self.assertFloatSeqEqual(layer.BoundingBox(),          self.assertFloatSeqEqual(layer.BoundingBox(),
165                                   [-23.806047439575195, 63.405960083007812,                                   [-23.806047439575195, 63.405960083007812,
166                                    -15.12291431427002, 66.36572265625])                                    -15.12291431427002, 66.36572265625])
# Line 193  class TestLayer(unittest.TestCase, suppo Line 195  class TestLayer(unittest.TestCase, suppo
195    
196      def test_raster_layer(self):      def test_raster_layer(self):
197          if not Thuban.Model.resource.has_gdal_support():          if not Thuban.Model.resource.has_gdal_support():
198              return              raise support.SkipTest("No gdal support")
199    
200          filename = self.build_path("island.tif")          filename = self.build_path("island.tif")
201          layer = RasterLayer("Test RasterLayer", filename)          layer = RasterLayer("Test RasterLayer", filename)
# Line 217  class TestLayer(unittest.TestCase, suppo Line 219  class TestLayer(unittest.TestCase, suppo
219              layer.SetShapeStore(derived)              layer.SetShapeStore(derived)
220              self.assert_(layer.ShapeStore() is derived)              self.assert_(layer.ShapeStore() is derived)
221    
222              # check that an exception is raised when the number              self.assertEquals(layer.ShapeType(), SHAPETYPE_ARC)
223              # of shapes differ from the number of rows in a table.              self.assertEquals(layer.NumShapes(), 839)
224              layer2 = Layer("Test Layer",              shape = layer.Shape(32)
225                             self.open_shapefile("political.shp"))              self.assertPointListEquals(shape.Points(),
226              store2 = layer2.ShapeStore()                                         [[(-15.082174301147, 66.277381896972),
227              self.assertRaises(ValueError,                                           (-15.026350021362, 66.273391723632)]])
228                                DerivedShapeStore, store2, store.Table())              self.assertFloatSeqEqual(layer.BoundingBox(),
229                                         [-24.450359344482422, 63.426830291748047,
230                                          -13.55668830871582, 66.520111083984375])
231                self.assertEquals(layer.ShapesInRegion((-24.0, 64.0,
232                                                        -23.75, 64.25)),
233                                  [613, 726, 838])
234    
235                self.assertFloatSeqEqual(layer.ShapesBoundingBox([32]),
236                                         [-15.082174301147461, 66.27339172363281,
237                                          -15.026350021362305, 66.27738189697265])
238    
239          finally:          finally:
240              store = derived = None              store = derived = None
             layer2.Destroy()  
             store2 = None  
241    
242    
243  class SetShapeStoreTests(unittest.TestCase, support.SubscriberMixin):  class SetShapeStoreTests(unittest.TestCase, support.SubscriberMixin):

Legend:
Removed from v.1452  
changed lines
  Added in v.1555

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26