/[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 1576 by bh, Mon Aug 11 12:08:26 2003 UTC revision 1983 by bh, Thu Nov 27 15:57:23 2003 UTC
# Line 16  __version__ = "$Revision$" Line 16  __version__ = "$Revision$"
16  import os  import os
17  import unittest  import unittest
18    
19    import mockgeo
20  import support  import support
21  support.initthuban()  support.initthuban()
22    
# Line 47  class TestLayer(unittest.TestCase, suppo Line 48  class TestLayer(unittest.TestCase, suppo
48    
49      def tearDown(self):      def tearDown(self):
50          """Call the layer's Destroy method and set session and layer to None"""          """Call the layer's Destroy method and set session and layer to None"""
51            self.session.Destroy()
52          self.session = None          self.session = None
53          if self.layer is not None:          if self.layer is not None:
54              self.layer.Destroy()              self.layer.Destroy()
# Line 77  class TestLayer(unittest.TestCase, suppo Line 79  class TestLayer(unittest.TestCase, suppo
79          self.assertEquals(layer.GetProjection(), None)          self.assertEquals(layer.GetProjection(), None)
80    
81          # set/get projection          # set/get projection
82          proj = Projection(["proj=utm", "zone=26"])          proj = Projection(["proj=utm", "zone=26", "ellps=clrk66"])
83    
84          layer.SetProjection(proj)          layer.SetProjection(proj)
85          self.failUnless(layer.GetProjection() is proj)          self.failUnless(layer.GetProjection() is proj)
# Line 102  class TestLayer(unittest.TestCase, suppo Line 104  class TestLayer(unittest.TestCase, suppo
104          self.assertFloatSeqEqual(layer.BoundingBox(),          self.assertFloatSeqEqual(layer.BoundingBox(),
105                                   [-24.450359344482422, 63.426830291748047,                                   [-24.450359344482422, 63.426830291748047,
106                                    -13.55668830871582, 66.520111083984375])                                    -13.55668830871582, 66.520111083984375])
107          self.assertEquals(layer.ShapesInRegion((-24.0, 64.0, -23.75, 64.25)),          shapes = layer.ShapesInRegion((-24.0, 64.0, -23.75, 64.25))
108            self.assertEquals([s.ShapeID() for s in shapes],
109                            [613, 726, 838])                            [613, 726, 838])
110    
111          self.assertFloatSeqEqual(layer.ShapesBoundingBox([32]),          self.assertFloatSeqEqual(layer.ShapesBoundingBox([32]),
# Line 140  class TestLayer(unittest.TestCase, suppo Line 143  class TestLayer(unittest.TestCase, suppo
143          self.assertFloatSeqEqual(layer.BoundingBox(),          self.assertFloatSeqEqual(layer.BoundingBox(),
144                                   [-24.546524047851562, 63.286754608154297,                                   [-24.546524047851562, 63.286754608154297,
145                                    -13.495815277099609, 66.563774108886719])                                    -13.495815277099609, 66.563774108886719])
146          self.assertEquals(layer.ShapesInRegion((-24.0, 64.0, -23.9, 64.1)),          shapes = layer.ShapesInRegion((-24.0, 64.0, -23.9, 64.1))
147            self.assertEquals([s.ShapeID() for s in shapes],
148                            [91, 92, 144, 146, 148, 150, 152, 153])                            [91, 92, 144, 146, 148, 150, 152, 153])
149    
150      def test_point_layer(self):      def test_point_layer(self):
# Line 157  class TestLayer(unittest.TestCase, suppo Line 161  class TestLayer(unittest.TestCase, suppo
161          self.assertFloatSeqEqual(layer.BoundingBox(),          self.assertFloatSeqEqual(layer.BoundingBox(),
162                                   [-23.806047439575195, 63.405960083007812,                                   [-23.806047439575195, 63.405960083007812,
163                                    -15.12291431427002, 66.36572265625])                                    -15.12291431427002, 66.36572265625])
164          self.assertEquals(layer.ShapesInRegion((-24.0, 64.0, -23.80, 64.1)),          shapes = layer.ShapesInRegion((-24.0, 64.0, -23.80, 64.1))
165            self.assertEquals([s.ShapeID() for s in shapes],
166                            [0, 1, 2, 3, 4, 5, 27, 28, 29, 30, 31])                            [0, 1, 2, 3, 4, 5, 27, 28, 29, 30, 31])
167    
168        def test_arc_layer_with_projection(self):
169            """Test Layer with point shapes and a projection"""
170            # We use mock data here so that we have precise control over the
171            # values
172            table = MemoryTable([("FOO", FIELDTYPE_STRING)], [("bla",)])
173            store = mockgeo.SimpleShapeStore(SHAPETYPE_ARC,
174                                  [[[(9884848.1401601825, 5607709.9111020016),
175                                     (11298371.027199602, 9287809.2948032897)]]],
176                                             table)
177            layer = self.layer = Layer("Test Layer", store)
178    
179            proj = Projection(["proj=lcc", "lon_0=0", "lat_1=20n", "lat_2=60n"])
180            layer.SetProjection(proj)
181    
182            self.assertFloatSeqEqual(layer.BoundingBox(),
183                                     (9884848.1401601825, 5607709.9111020016,
184                                      11298371.027199602, 9287809.2948032897))
185            self.assertFloatSeqEqual(layer.LatLongBoundingBox(),
186                                     (90.0, -8.899852, 120, 11.16092))
187            shapes = layer.ShapesInRegion((100, -10, 150, +10))
188            self.assertEquals([s.ShapeID() for s in shapes], [0])
189            self.assertFloatSeqEqual(layer.ShapesBoundingBox([0]),
190                                     (90.0, -8.899852, 120, 11.16092))
191    
192      def test_empty_layer(self):      def test_empty_layer(self):
193          """Test Layer with empty shape file"""          """Test Layer with empty shape file"""
194          # create an empty shape file          # create an empty shape file
# Line 171  class TestLayer(unittest.TestCase, suppo Line 200  class TestLayer(unittest.TestCase, suppo
200          dbffilename = self.temp_file_name("layer_empty.dbf")          dbffilename = self.temp_file_name("layer_empty.dbf")
201          dbf = dbflib.create(dbffilename)          dbf = dbflib.create(dbffilename)
202          dbf.add_field("NAME", dbflib.FTString, 20, 0)          dbf.add_field("NAME", dbflib.FTString, 20, 0)
203            dbf.close()
204    
205          # Now try to open it.          # Now try to open it.
206          layer = self.layer = Layer("Empty Layer",          layer = self.layer = Layer("Empty Layer",
# Line 194  class TestLayer(unittest.TestCase, suppo Line 224  class TestLayer(unittest.TestCase, suppo
224          layer = RasterLayer("Test RasterLayer", filename)          layer = RasterLayer("Test RasterLayer", filename)
225          self.failIf(layer.HasClassification())          self.failIf(layer.HasClassification())
226          self.failIf(layer.HasShapes())          self.failIf(layer.HasShapes())
227          self.assertEquals(layer.GetImageFilename(), filename)          self.assertEquals(layer.GetImageFilename(), os.path.abspath(filename))
228          self.assertFloatSeqEqual(layer.BoundingBox(),          self.assertFloatSeqEqual(layer.BoundingBox(),
229                                   [-24.5500000, 63.2833330,                                   [-24.5500000, 63.2833330,
230                                    -13.4916670, 66.5666670])                                    -13.4916670, 66.5666670])
# Line 221  class TestLayer(unittest.TestCase, suppo Line 251  class TestLayer(unittest.TestCase, suppo
251              self.assertFloatSeqEqual(layer.BoundingBox(),              self.assertFloatSeqEqual(layer.BoundingBox(),
252                                       [-24.450359344482422, 63.426830291748047,                                       [-24.450359344482422, 63.426830291748047,
253                                        -13.55668830871582, 66.520111083984375])                                        -13.55668830871582, 66.520111083984375])
254              self.assertEquals(layer.ShapesInRegion((-24.0, 64.0,              shapes = layer.ShapesInRegion((-24.0, 64.0, -23.75, 64.25))
255                                                      -23.75, 64.25)),              self.assertEquals([s.ShapeID() for s in shapes],
256                                [613, 726, 838])                                [613, 726, 838])
257    
258              self.assertFloatSeqEqual(layer.ShapesBoundingBox([32]),              self.assertFloatSeqEqual(layer.ShapesBoundingBox([32]),

Legend:
Removed from v.1576  
changed lines
  Added in v.1983

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26