/[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 2562 by jonathan, Wed Feb 16 21:14:47 2005 UTC revision 2571 by jonathan, Fri Feb 18 14:54:17 2005 UTC
# Line 32  import Thuban.Model.resource Line 32  import Thuban.Model.resource
32  from Thuban.UI.baserenderer import BaseRenderer, \  from Thuban.UI.baserenderer import BaseRenderer, \
33       add_renderer_extension, init_renderer_extensions       add_renderer_extension, init_renderer_extensions
34    
35  from Thuban.version import versions  if Thuban.Model.resource.has_gdal_support():
36        from gdalwarp import ProjectRasterFile
37    
38  class MockDC:  class MockDC:
39    
# Line 94  class SimpleRenderer(BaseRenderer): Line 95  class SimpleRenderer(BaseRenderer):
95          self.raster_data = data          self.raster_data = data
96          self.raster_format = format          self.raster_format = format
97    
98        def projected_raster_layer(self, layer, srcProj, dstProj, extents,
99                                   resolution, dimensions, options):
100    
101            if not Thuban.Model.resource.has_gdal_support():
102                raise support.SkipTest("No gdal support")
103    
104            #print srcProj, dstProj,extents, resolution, dimensions, options
105    
106            return ProjectRasterFile(layer.GetImageFilename(),
107                                     srcProj, dstProj,
108                                     extents, resolution, dimensions,
109                                     options)
110    
111  class MockProjection:  class MockProjection:
112    
113      """Objects that look like projections but simply apply non-uniform scalings      """Objects that look like projections but simply apply non-uniform scalings
# Line 263  class TestBaseRenderer(unittest.TestCase Line 276  class TestBaseRenderer(unittest.TestCase
276                             ('SetFont', "label font"),                             ('SetFont', "label font"),
277                             ('EndDrawing',)])                             ('EndDrawing',)])
278    
279        def test_projected_raster_layer(self):
280            if not Thuban.Model.resource.has_gdal_support():
281                raise support.SkipTest("No gdal support")
282    
283            layer = RasterLayer("raster layer",
284                                os.path.join("..", "Data", "iceland",
285                                             "island.tif"))
286    
287            dc = MockDC(size = (20, 20))
288            renderer = SimpleRenderer(dc, map, 34, (800, 2250))
289    
290            # The reference data as a base64 coded RAW image
291            raw_data = binascii.a2b_base64(
292                'UmbmUmbmUmbmUmbmUmbmAtYCJooCAtICAq4CJooCArICAuICArICAuYCAs4COn4CO'
293                'n4CAq4CAuICFpICUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmAuYCAqICAqoCAqoCFp'
294                'ICJooCIo4CCpoCQnoGOn4CDpYCOn4CUmbmUmbmNo6aEpYCLoYCAqICGpICFpICUmb'
295                'mAt4CUmbmNo6aAtICArYCAqoCKoYCMoICTnYKOn4CFpICUmbmUmbmUmbmUmbmAp4C'
296                'NoICArYCAr4CCpoCAqYCCpoCEpYCHo4CFpICHo4CGpICFpICKoYCTnYKMoICAp4CU'
297                'mbmUmbmUmbmUmbmUmbmUmbmAtYCAroCArYCCpoCAtYCAroCAtICAsYCUmbmAt4CAq'
298                'YCAroCMoICAs4CAs4CAtYCAt4CAqYCUmbmUmbmUmbmUmbmAtoCAtYCAq4CAtoCBp4'
299                'CAroCAqoCAq4CAr4CDpYCGpICAt4CAsICDpYCArICCpoCHo4CAs4CAuICUmbmUmbm'
300                'UmbmUmbmUmbmUmbmAuICAqICFpYCAq4CDpoCAqYCFpICAqYCUmbmNo6aAsYCCpoCD'
301                'pYCAqICAtoCUmbmAt4CAqoCCpoCAroCHo4CAsYCAq4CAsICAs4CAp4CUmbmAtYCAq'
302                'YCIooCHo4CAsICAr4CAqICEpYCAs4CAqICArICDpYCEpYCEpYCAr4CUmbmEpYCAs4'
303                'CAtICAs4CAqYCUmbmAtoCAp4CCpoCDpYCAq4CArICAqoCAqYCAqYCAtYCAtoCDpYC'
304                'At4CUmbmUmbmUmbmUmbmAt4CAsoCAsoCAp4CAp4CCpoCAsoCAt4CNo6aUmbmUmbmU'
305                'mbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmAt4CAtYCCpoCAqICAroCAr4CUmbmUm'
306                'bmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmb'
307                'mUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbm'
308                'UmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmU'
309                'mbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUm'
310                'bmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmb'
311                'mUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbm'
312                'UmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmU'
313                'mbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUm'
314                'bmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmb'
315                'mUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbm'
316                'UmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbm\n')
317    
318            raw_mask = binascii.a2b_base64(
319                '//8P//8P//8P//8P//8P//8P//8P//8P//8P//8P//8P//8P//8P//8P//8P/'
320                '/8P//8P//8P//8P//8P\n')
321    
322            raw_mask_inverted = binascii.a2b_base64(
323                'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
324                'AAAAAAAAAAAAAAAAAAA\n')
325    
326            raw_alpha = binascii.a2b_base64(
327                '/////////////////////////////////////////////////////////////'
328                '/////////////////////////////////////////////////////////////'
329                '/////////////////////////////////////////////////////////////'
330                '/////////////////////////////////////////////////////////////'
331                '/////////////////////////////////////////////////////////////'
332                '/////////////////////////////////////////////////////////////'
333                '/////////////////////////////////////////////////////////////'
334                '/////////////////////////////////////////////////////////////'
335                '/////////////////////////////////////////////w==\n')
336    
337            for opts, data in [[1,   (raw_data, raw_mask,          None)],
338                               [1|4, (raw_data, raw_mask_inverted, None)],
339                               [2,   (raw_data, None,              raw_alpha)]]:
340    
341                img_data = renderer.projected_raster_layer(layer, "", "",
342                                (-24, 65, -23, 66), [0, 0], (20, 20), opts)
343                self.assertEquals(img_data, data)
344    
345      def test_raster_no_projection(self):      def test_raster_no_projection(self):
346          """Test BaseRenderer with raster layer and no projections          """Test BaseRenderer with raster layer and no projections
347    
# Line 278  class TestBaseRenderer(unittest.TestCase Line 357  class TestBaseRenderer(unittest.TestCase
357          layer = RasterLayer("raster layer",          layer = RasterLayer("raster layer",
358                              os.path.join("..", "Data", "iceland",                              os.path.join("..", "Data", "iceland",
359                                           "island.tif"))                                           "island.tif"))
360            layer.SetMaskType(layer.MASK_NONE)
361    
362          map.AddLayer(layer)          map.AddLayer(layer)
363          self.to_destroy.append(map)          self.to_destroy.append(map)
364    
# Line 321  class TestBaseRenderer(unittest.TestCase Line 402  class TestBaseRenderer(unittest.TestCase
402              'mUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbm'              'mUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbm'
403              'UmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbm\n')              'UmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbmUmbm\n')
404    
         #print  
         #hexed = binascii.b2a_base64(renderer.raster_data[2][1])  
         #while hexed:  
             #print repr(hexed[:61])  
             #hexed = hexed[61:]  
   
   
         if versions['wxPython-tuple'] < (2,5,3):  
             raw_mask = binascii.a2b_base64(  
                 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'  
                 'AAAAAAAAAAAAAAAAAAA\n')  
         else:  
             raw_mask = binascii.a2b_base64(  
                 '//8P//8P//8P//8P//8P//8P//8P//8P//8P//8P//8P//8P//8P//8P//8P/'  
                 '/8P//8P//8P//8P//8P\n')  
   
405          self.assertEquals(renderer.raster_data,          self.assertEquals(renderer.raster_data,
406                            (20,20,(raw_data, raw_mask, None)))                            (20,20,(raw_data, None, None)))
407    
408          self.assertEquals(renderer.raster_format, "RAW")          self.assertEquals(renderer.raster_format, "RAW")
409    
# Line 347  class TestBaseRenderer(unittest.TestCase Line 412  class TestBaseRenderer(unittest.TestCase
412                             ('SetFont', "label font"),                             ('SetFont', "label font"),
413                             ('EndDrawing',)])                             ('EndDrawing',)])
414    
         if versions['wxPython-tuple'] >= (2,5,3):  
             layer.SetMaskType(layer.MASK_ALPHA)  
             renderer.render_map()  
   
             #print  
             #hexed = binascii.b2a_base64(renderer.raster_data[2][2])  
             #while hexed:  
                 #print repr(hexed[:61])  
                 #hexed = hexed[61:]  
             raw_alpha = binascii.a2b_base64(  
                 '/////////////////////////////////////////////////////////////'  
                 '/////////////////////////////////////////////////////////////'  
                 '/////////////////////////////////////////////////////////////'  
                 '/////////////////////////////////////////////////////////////'  
                 '/////////////////////////////////////////////////////////////'  
                 '/////////////////////////////////////////////////////////////'  
                 '/////////////////////////////////////////////////////////////'  
                 '/////////////////////////////////////////////////////////////'  
                 '/////////////////////////////////////////////w==\n')  
             self.assertEquals(renderer.raster_data,  
                               (20,20,(raw_data, None, raw_alpha)))  
   
   
         layer.SetMaskType(layer.MASK_NONE)  
         renderer.render_map()  
         self.assertEquals(renderer.raster_data, (20,20,(raw_data, None, None)))  
   
415      def test_point_map_projection(self):      def test_point_map_projection(self):
416          """Test BaseRenderer with point layer and map projection"""          """Test BaseRenderer with point layer and map projection"""
417          table = MemoryTable([("type", FIELDTYPE_STRING),          table = MemoryTable([("type", FIELDTYPE_STRING),

Legend:
Removed from v.2562  
changed lines
  Added in v.2571

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26