/[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 947 by jonathan, Tue May 20 15:27:19 2003 UTC revision 996 by bh, Thu May 22 18:21:10 2003 UTC
# Line 30  from Thuban.Model.messages import LAYER_ Line 30  from Thuban.Model.messages import LAYER_
30  from Thuban.Model.color import Color  from Thuban.Model.color import Color
31  from Thuban.Model.table import FIELDTYPE_DOUBLE  from Thuban.Model.table import FIELDTYPE_DOUBLE
32  from Thuban.Model.proj import Projection  from Thuban.Model.proj import Projection
33    from Thuban.Model.data import DerivedShapeStore
34    
35  class TestLayer(unittest.TestCase, support.FileTestMixin,  class TestLayer(unittest.TestCase, support.FileTestMixin,
36                  support.FloatComparisonMixin):                  support.FloatComparisonMixin):
# Line 42  class TestLayer(unittest.TestCase, suppo Line 43  class TestLayer(unittest.TestCase, suppo
43              self.assertFloatSeqEqual(test[i], value[i])              self.assertFloatSeqEqual(test[i], value[i])
44    
45      def setUp(self):      def setUp(self):
46          """Create a session"""          """Create a session self.session and initialize self.layer to None"""
47          self.session = Session("Test session for %s" % self.__class__)          self.session = Session("Test session for %s" % self.__class__)
48            self.layer = None
49    
50      def tearDown(self):      def tearDown(self):
51            """Call the layer's Destroy method and set session and layer to None"""
52          self.session = None          self.session = None
53            if self.layer is not None:
54                self.layer.Destroy()
55                self.layer = None
56    
57      def build_path(self, filename):      def build_path(self, filename):
58          return os.path.join("..", "Data", "iceland", filename)          return os.path.join("..", "Data", "iceland", filename)
59            
60      def open_shapefile(self, filename):      def open_shapefile(self, filename):
61          """Open and return a shapestore for filename in the iceland data set"""          """Open and return a shapestore for filename in the iceland data set"""
62          return self.session.OpenShapefile(self.build_path(filename))          return self.session.OpenShapefile(self.build_path(filename))
63    
64      def test_base_layer(self):      def test_base_layer(self):
65          layer = BaseLayer("Test BaseLayer")          layer = self.layer = BaseLayer("Test BaseLayer")
66          self.assertEquals(layer.Title(), "Test BaseLayer")          self.assertEquals(layer.Title(), "Test BaseLayer")
67          self.failUnless(layer.Visible())          self.failUnless(layer.Visible())
68    
# Line 83  class TestLayer(unittest.TestCase, suppo Line 89  class TestLayer(unittest.TestCase, suppo
89    
90      def test_arc_layer(self):      def test_arc_layer(self):
91          """Test Layer with arc shapes"""          """Test Layer with arc shapes"""
92          layer = Layer("Test Layer", self.open_shapefile("roads-line.shp"))          layer = self.layer = Layer("Test Layer",
93                                       self.open_shapefile("roads-line.shp"))
94          self.assertEquals(layer.ShapeType(), SHAPETYPE_ARC)          self.assertEquals(layer.ShapeType(), SHAPETYPE_ARC)
95          self.assertEquals(layer.NumShapes(), 839)          self.assertEquals(layer.NumShapes(), 839)
96          shape = layer.Shape(32)          shape = layer.Shape(32)
# Line 114  class TestLayer(unittest.TestCase, suppo Line 121  class TestLayer(unittest.TestCase, suppo
121          self.assertEquals(layer.ShapesBoundingBox([]), None)          self.assertEquals(layer.ShapesBoundingBox([]), None)
122          self.assertEquals(layer.ShapesBoundingBox(None), None)          self.assertEquals(layer.ShapesBoundingBox(None), None)
123    
         layer.Destroy()  
   
124      def test_polygon_layer(self):      def test_polygon_layer(self):
125          """Test Layer with polygon shapes"""          """Test Layer with polygon shapes"""
126          layer = Layer("Test Layer", self.open_shapefile("political.shp"))          layer = self.layer = Layer("Test Layer",
127                                       self.open_shapefile("political.shp"))
128          self.assertEquals(layer.ShapeType(), SHAPETYPE_POLYGON)          self.assertEquals(layer.ShapeType(), SHAPETYPE_POLYGON)
129          self.assertEquals(layer.NumShapes(), 156)          self.assertEquals(layer.NumShapes(), 156)
130          shape = layer.Shape(4)          shape = layer.Shape(4)
# Line 132  class TestLayer(unittest.TestCase, suppo Line 138  class TestLayer(unittest.TestCase, suppo
138                                    -13.495815277099609, 66.563774108886719])                                    -13.495815277099609, 66.563774108886719])
139          self.assertEquals(layer.ShapesInRegion((-24.0, 64.0, -23.9, 64.1)),          self.assertEquals(layer.ShapesInRegion((-24.0, 64.0, -23.9, 64.1)),
140                            [91, 92, 144, 146, 148, 150, 152, 153])                            [91, 92, 144, 146, 148, 150, 152, 153])
         layer.Destroy()  
141    
142      def test_point_layer(self):      def test_point_layer(self):
143          """Test Layer with point shapes"""          """Test Layer with point shapes"""
144          layer = Layer("Test Layer",          layer = self.layer = Layer("Test Layer",
145                        self.open_shapefile("cultural_landmark-point.shp"))                             self.open_shapefile("cultural_landmark-point.shp"))
146          self.assertEquals(layer.ShapeType(), SHAPETYPE_POINT)          self.assertEquals(layer.ShapeType(), SHAPETYPE_POINT)
147          self.assertEquals(layer.NumShapes(), 34)          self.assertEquals(layer.NumShapes(), 34)
148          shape = layer.Shape(0)          shape = layer.Shape(0)
# Line 148  class TestLayer(unittest.TestCase, suppo Line 153  class TestLayer(unittest.TestCase, suppo
153                                    -15.12291431427002, 66.36572265625])                                    -15.12291431427002, 66.36572265625])
154          self.assertEquals(layer.ShapesInRegion((-24.0, 64.0, -23.80, 64.1)),          self.assertEquals(layer.ShapesInRegion((-24.0, 64.0, -23.80, 64.1)),
155                            [0, 1, 2, 3, 4, 5, 27, 28, 29, 30, 31])                            [0, 1, 2, 3, 4, 5, 27, 28, 29, 30, 31])
         layer.Destroy()  
156    
157      def test_empty_layer(self):      def test_empty_layer(self):
158          """Test Layer with empty shape file"""          """Test Layer with empty shape file"""
# Line 163  class TestLayer(unittest.TestCase, suppo Line 167  class TestLayer(unittest.TestCase, suppo
167          dbf.add_field("NAME", dbflib.FTString, 20, 0)          dbf.add_field("NAME", dbflib.FTString, 20, 0)
168    
169          # Now try to open it.          # Now try to open it.
170          layer = Layer("Empty Layer",          layer = self.layer = Layer("Empty Layer",
171                        self.session.OpenShapefile(shapefilename))                                     self.session.OpenShapefile(shapefilename))
172          self.assertEquals(layer.BoundingBox(), None)          self.assertEquals(layer.BoundingBox(), None)
173          self.assertEquals(layer.LatLongBoundingBox(), None)          self.assertEquals(layer.LatLongBoundingBox(), None)
174          self.assertEquals(layer.NumShapes(), 0)          self.assertEquals(layer.NumShapes(), 0)
         layer.Destroy()  
175    
176      def test_get_field_type(self):      def test_get_field_type(self):
177          """Test Layer.GetFieldType()"""          """Test Layer.GetFieldType()"""
178          layer = Layer("Test Layer", self.open_shapefile("roads-line.shp"))          layer = self.layer = Layer("Test Layer",
179                                       self.open_shapefile("roads-line.shp"))
180          self.assertEquals(layer.GetFieldType("LENGTH"), FIELDTYPE_DOUBLE)          self.assertEquals(layer.GetFieldType("LENGTH"), FIELDTYPE_DOUBLE)
181          self.assertEquals(layer.GetFieldType("non existing"), None)          self.assertEquals(layer.GetFieldType("non existing"), None)
         layer.Destroy()  
182    
183      def test_raster_layer(self):      def test_raster_layer(self):
184          filename = self.build_path("island.tif")          filename = self.build_path("island.tif")
# Line 188  class TestLayer(unittest.TestCase, suppo Line 191  class TestLayer(unittest.TestCase, suppo
191                                   [-24.5500000, 63.2833330,                                   [-24.5500000, 63.2833330,
192                                    -13.4916670, 66.5666670])                                    -13.4916670, 66.5666670])
193    
194        def test_derived_store(self):
195            """Test layer with derived store"""
196            layer = self.layer = Layer("Test Layer",
197                                       self.open_shapefile("roads-line.shp"))
198            try:
199                store = layer.ShapeStore()
200                derived = DerivedShapeStore(store, store.Table())
201                layer.SetShapeStore(derived)
202                self.assert_(layer.ShapeStore() is derived)
203            finally:
204                store = derived = None
205    
206    
207  class TestLayerLegend(unittest.TestCase, support.SubscriberMixin):  class TestLayerLegend(unittest.TestCase, support.SubscriberMixin):
208    

Legend:
Removed from v.947  
changed lines
  Added in v.996

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26