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

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

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

revision 1552 by bh, Wed Aug 6 17:21:32 2003 UTC revision 1867 by bh, Mon Oct 27 13:02:13 2003 UTC
# Line 15  import os Line 15  import os
15  import binascii  import binascii
16  import unittest  import unittest
17    
18    from mockgeo import SimpleShapeStore
19  import support  import support
20  support.initthuban()  support.initthuban()
21    
22  from Thuban.Model.color import Transparent, Color  from Thuban.Model.color import Transparent, Color
23  from Thuban.Model.data import Shape, SHAPETYPE_ARC, SHAPETYPE_POLYGON, \  from Thuban.Model.data import SHAPETYPE_ARC, SHAPETYPE_POLYGON, SHAPETYPE_POINT
      SHAPETYPE_POINT  
24  from Thuban.Model.map import Map  from Thuban.Model.map import Map
25  from Thuban.Model.layer import Layer, RasterLayer  from Thuban.Model.layer import Layer, RasterLayer
26  from Thuban.Model.table import MemoryTable, \  from Thuban.Model.table import MemoryTable, \
27       FIELDTYPE_DOUBLE, FIELDTYPE_INT, FIELDTYPE_STRING       FIELDTYPE_DOUBLE, FIELDTYPE_INT, FIELDTYPE_STRING
28    from Thuban.Model.classification import ClassGroupSingleton
29    import Thuban.Model.resource
30    
31    
32  from Thuban.UI.baserenderer import BaseRenderer  from Thuban.UI.baserenderer import BaseRenderer
33    
# Line 88  class SimpleRenderer(BaseRenderer): Line 91  class SimpleRenderer(BaseRenderer):
91      def draw_raster_data(self, data):      def draw_raster_data(self, data):
92          self.raster_data = data          self.raster_data = data
93    
 class SimpleShapeStore:  
   
     def __init__(self, shapetype, shapes, table):  
         self.shapetype = shapetype  
         self.shapes = shapes  
         self.table = table  
         assert table.NumRows() == len(shapes)  
   
     def ShapeType(self):  
         return self.shapetype  
   
     def Table(self):  
         return self.table  
   
     def NumShapes(self):  
         return len(self.shapes)  
   
     def Shape(self, index):  
         return Shape(self.shapes[index])  
   
94    
95  class MockProjection:  class MockProjection:
96    
# Line 154  class TestBaseRenderer(unittest.TestCase Line 137  class TestBaseRenderer(unittest.TestCase
137          map.AddLayer(layer)          map.AddLayer(layer)
138    
139          dc = MockDC()          dc = MockDC()
140          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
141    
142          renderer.render_map(map)          renderer.render_map()
143    
144          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
145                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 184  class TestBaseRenderer(unittest.TestCase Line 167  class TestBaseRenderer(unittest.TestCase
167          self.to_destroy.append(map)          self.to_destroy.append(map)
168    
169          dc = MockDC()          dc = MockDC()
170          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
171    
172          renderer.render_map(map)          renderer.render_map()
173    
174          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
175                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 223  class TestBaseRenderer(unittest.TestCase Line 206  class TestBaseRenderer(unittest.TestCase
206          self.to_destroy.append(map)          self.to_destroy.append(map)
207    
208          dc = MockDC()          dc = MockDC()
209          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
210    
211          renderer.render_map(map)          renderer.render_map()
212    
213          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
214                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 262  class TestBaseRenderer(unittest.TestCase Line 245  class TestBaseRenderer(unittest.TestCase
245          self.to_destroy.append(map)          self.to_destroy.append(map)
246    
247          dc = MockDC()          dc = MockDC()
248          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
249    
250          renderer.render_map(map)          renderer.render_map()
251    
252          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
253                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 284  class TestBaseRenderer(unittest.TestCase Line 267  class TestBaseRenderer(unittest.TestCase
267          to round-off errors. It simply compares the complete BMP file          to round-off errors. It simply compares the complete BMP file
268          returned by gdalwarp.ProjectRasterFile to a BMP file data.          returned by gdalwarp.ProjectRasterFile to a BMP file data.
269          """          """
270            if not Thuban.Model.resource.has_gdal_support():
271                raise support.SkipTest("No gdal support")
272    
273          map = Map("TestBaseRenderer")          map = Map("TestBaseRenderer")
274    
275          layer = RasterLayer("raster layer",          layer = RasterLayer("raster layer",
# Line 293  class TestBaseRenderer(unittest.TestCase Line 279  class TestBaseRenderer(unittest.TestCase
279          self.to_destroy.append(map)          self.to_destroy.append(map)
280    
281          dc = MockDC(size = (20, 20))          dc = MockDC(size = (20, 20))
282          renderer = SimpleRenderer(dc, 34, (800, 2250))          renderer = SimpleRenderer(dc, map, 34, (800, 2250))
283    
284          renderer.render_map(map)          renderer.render_map()
285    
286          # The following commented out code block can be used to generate          # The following commented out code block can be used to generate
287          # the base64 coded reference image data          # the base64 coded reference image data
# Line 360  class TestBaseRenderer(unittest.TestCase Line 346  class TestBaseRenderer(unittest.TestCase
346          self.to_destroy.append(map)          self.to_destroy.append(map)
347    
348          dc = MockDC()          dc = MockDC()
349          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
350    
351          renderer.render_map(map)          renderer.render_map()
352    
353          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
354                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 388  class TestBaseRenderer(unittest.TestCase Line 374  class TestBaseRenderer(unittest.TestCase
374          self.to_destroy.append(map)          self.to_destroy.append(map)
375    
376          dc = MockDC()          dc = MockDC()
377          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
378    
379          renderer.render_map(map)          renderer.render_map()
380    
381          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
382                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 417  class TestBaseRenderer(unittest.TestCase Line 403  class TestBaseRenderer(unittest.TestCase
403          self.to_destroy.append(map)          self.to_destroy.append(map)
404    
405          dc = MockDC()          dc = MockDC()
406          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
407    
408          renderer.render_map(map)          renderer.render_map()
409    
410          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
411                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 430  class TestBaseRenderer(unittest.TestCase Line 416  class TestBaseRenderer(unittest.TestCase
416                             ('EndDrawing',)])                             ('EndDrawing',)])
417    
418    
419        def test_point_with_classification(self):
420            """Test BaseRenderer with point layer and classification"""
421            table = MemoryTable([("type", FIELDTYPE_STRING),
422                                 ("value", FIELDTYPE_DOUBLE),
423                                 ("code", FIELDTYPE_INT)],
424                                [("UNKNOWN", 0.0, 0),
425                                 ("UNKNOWN", 0.0, 1)])
426            shapes = [[[(0, 0)]], [[(10, 10)]]]
427            store = SimpleShapeStore(SHAPETYPE_POINT, shapes, table)
428    
429            map = Map("TestBaseRenderer")
430            layer = Layer("point layer", store)
431            group = ClassGroupSingleton(1)
432            group.GetProperties().SetFill(Color(0, 0, 1))
433            layer.GetClassification().AppendGroup(group)
434            layer.SetClassificationColumn("code")
435    
436            map.AddLayer(layer)
437            self.to_destroy.append(map)
438    
439            dc = MockDC()
440            renderer = SimpleRenderer(dc, map, 2, (10, 10))
441    
442            renderer.render_map()
443    
444            self.assertEquals(dc.calls,
445                              [('BeginDrawing',),
446                               ('SetBrush', ('brush', Transparent)),
447                               ('SetPen', ('pen', Color(0, 0, 0), 1)),
448                               ('DrawEllipse', 5, 5, 10, 10),
449                               ('SetBrush', ('brush', Color(0, 0, 1))),
450                               ('SetPen', ('pen', Color(0, 0, 0), 1)),
451                               ('DrawEllipse', 25, -15, 10, 10),
452                               ('SetFont', "label font"),
453                               ('EndDrawing',)])
454    
455    
456  if __name__ == "__main__":  if __name__ == "__main__":
457      support.run_tests()      support.run_tests()

Legend:
Removed from v.1552  
changed lines
  Added in v.1867

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26