/[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

trunk/thuban/test/test_layer.py revision 2551 by jonathan, Thu Jan 27 14:19:41 2005 UTC branches/WIP-pyshapelib-bramz/test/test_layer.py revision 2734 by bramz, Thu Mar 1 12:42:59 2007 UTC
# Line 1  Line 1 
1  # Copyright (c) 2002, 2003, 2004 by Intevation GmbH  # Copyright (c) 2002, 2003, 2004, 2005 by Intevation GmbH
2  # Authors:  # Authors:
3  # Bernhard Herzog <[email protected]>  # Bernhard Herzog <[email protected]>
4  #  #
# Line 32  from Thuban.Model.table import FIELDTYPE Line 32  from Thuban.Model.table import FIELDTYPE
32  from Thuban.Model.proj import Projection  from Thuban.Model.proj import Projection
33  from Thuban.Model.data import DerivedShapeStore  from Thuban.Model.data import DerivedShapeStore
34  from Thuban.Model.classification import Classification, ClassGroupSingleton, \  from Thuban.Model.classification import Classification, ClassGroupSingleton, \
35       ClassGroupRange       ClassGroupRange, ClassGroupPattern
36  from Thuban.Model.color import Color  from Thuban.Model.color import Color
37    
38  import Thuban.Model.resource  import Thuban.Model.resource
# Line 191  class TestLayer(unittest.TestCase, suppo Line 191  class TestLayer(unittest.TestCase, suppo
191          self.assertFloatSeqEqual(layer.ShapesBoundingBox([0]),          self.assertFloatSeqEqual(layer.ShapesBoundingBox([0]),
192                                   (90.0, -8.90043373, 120, 11.1616263))                                   (90.0, -8.90043373, 120, 11.1616263))
193    
194          self.assertFloatSeqEqual(layer.ClipBoundingBox((-180, -6, 100, +120)),          # Test a very large bounding box in the query.  Naive inverse
195                                   (90.0, -6, 100, 11.1616263))          # projection will create infs instead of proper coordinate
196            # values and a different result (an empty list instead of [0])
197          shapes = layer.ShapesInRegion((-180, -170, 200, +120))          shapes = layer.ShapesInRegion((-180, -170, 200, +120))
198          self.assertEquals([s.ShapeID() for s in shapes],[0])          self.assertEquals([s.ShapeID() for s in shapes],[0])
199    
# Line 231  class TestLayer(unittest.TestCase, suppo Line 232  class TestLayer(unittest.TestCase, suppo
232          layer = RasterLayer("Test RasterLayer", filename)          layer = RasterLayer("Test RasterLayer", filename)
233          self.failIf(layer.HasClassification())          self.failIf(layer.HasClassification())
234          self.failIf(layer.HasShapes())          self.failIf(layer.HasShapes())
235          self.failIf(layer.UseMask())          self.assertEquals(layer.MaskType(), layer.MASK_BIT)
236          self.assertEquals(layer.GetImageFilename(), os.path.abspath(filename))          self.assertEquals(layer.GetImageFilename(), os.path.abspath(filename))
237          self.assertFloatSeqEqual(layer.BoundingBox(),          self.assertFloatSeqEqual(layer.BoundingBox(),
238                                   [-24.5500000, 63.2833330,                                   [-24.5500000, 63.2833330,
# Line 415  class TestLayerModification(unittest.Tes Line 416  class TestLayerModification(unittest.Tes
416          # the layer.          # the layer.
417          self.failIf(self.layer.WasModified())          self.failIf(self.layer.WasModified())
418    
419      def test_set_classification(self):      def test_set_classification_numerical(self):
420          """Test Layer.SetClassification"""          """Test Layer.SetClassification numerical"""
421          classification = Classification()          classification = Classification()
422          classification.AppendGroup(ClassGroupRange((0.0, 0.1)))          classification.AppendGroup(ClassGroupRange((0.0, 0.1)))
423    
# Line 437  class TestLayerModification(unittest.Tes Line 438  class TestLayerModification(unittest.Tes
438          self.check_messages([(self.layer, LAYER_CHANGED)])          self.check_messages([(self.layer, LAYER_CHANGED)])
439          self.failUnless(self.layer.WasModified())          self.failUnless(self.layer.WasModified())
440    
441        def test_set_classification_textual(self):
442            """Test Layer.SetClassification textual"""
443            classification = Classification()
444            classification.AppendGroup(ClassGroupPattern("I"))
445    
446            self.layer.SetClassification(classification)
447            self.layer.SetClassificationColumn("POPYCOUN")
448    
449            self.check_messages([(self.layer, LAYER_CHANGED),
450                                 (self.layer, LAYER_CHANGED)])
451            self.failUnless(self.layer.WasModified())
452    
453            self.clear_messages()
454            self.layer.UnsetModified()
455    
456            # change only the classification column. This should issue a
457            # LAYER_CHANGED message as well.
458            self.layer.SetClassificationColumn("POPYREG")
459    
460            self.check_messages([(self.layer, LAYER_CHANGED)])
461            self.failUnless(self.layer.WasModified())
462    
463    
464      def test_tree_info(self):      def test_tree_info(self):
465          """Test Layer.TreeInfo"""          """Test Layer.TreeInfo"""
# Line 460  class TestLayerModification(unittest.Tes Line 483  class TestLayerModification(unittest.Tes
483          layer.Subscribe(LAYER_CHANGED, self.subscribe_with_params,          layer.Subscribe(LAYER_CHANGED, self.subscribe_with_params,
484                          LAYER_CHANGED)                          LAYER_CHANGED)
485    
486          self.failIf(layer.UseMask())          self.assertEquals(layer.MaskType(), layer.MASK_BIT)
487    
488          layer.SetUseMask(True)          layer.SetMaskType(layer.MASK_NONE)
489          self.failUnless(layer.UseMask())          self.failIf(layer.MaskType() != layer.MASK_NONE)
490          self.check_messages([(layer, LAYER_CHANGED)])          self.check_messages([(layer, LAYER_CHANGED)])
491          self.clear_messages()          self.clear_messages()
492    
493          layer.SetUseMask(True)          layer.SetMaskType(layer.MASK_NONE)
494          self.failUnless(layer.UseMask())          self.failIf(layer.MaskType() != layer.MASK_NONE)
495          self.check_messages([])          self.check_messages([])
496          self.clear_messages()          self.clear_messages()
497    
498          layer.SetUseMask(False)          layer.SetMaskType(layer.MASK_BIT)
499          self.failIf(layer.UseMask())          self.failIf(layer.MaskType() != layer.MASK_BIT)
500          self.check_messages([(layer, LAYER_CHANGED)])          self.check_messages([(layer, LAYER_CHANGED)])
501          self.clear_messages()          self.clear_messages()
502    
503          layer.SetUseMask(False)          layer.SetMaskType(layer.MASK_BIT)
504          self.failIf(layer.UseMask())          self.failIf(layer.MaskType() != layer.MASK_BIT)
505          self.check_messages([])          self.check_messages([])
506          self.clear_messages()          self.clear_messages()
507    
508            layer.SetMaskType(layer.MASK_ALPHA)
509            self.failIf(layer.MaskType() != layer.MASK_ALPHA)
510    
511            layer.SetOpacity(0)
512            self.assertEquals(layer.Opacity(), 0)
513            layer.SetOpacity(0.5)
514            self.assertEquals(layer.Opacity(), 0.5)
515    
516            self.clear_messages()
517            layer.SetOpacity(1)
518            self.assertEquals(layer.Opacity(), 1)
519            self.check_messages([(layer, LAYER_CHANGED)])
520            self.clear_messages()
521    
522            self.assertRaises(ValueError, layer.SetOpacity, -0.1)
523            self.assertRaises(ValueError, layer.SetOpacity, 1.1)
524    
525            layer.SetMaskType(layer.MASK_NONE)
526            self.clear_messages()
527            self.assertEquals(layer.Opacity(), 1)
528            self.check_messages([])
529            self.clear_messages()
530    
531            self.assertRaises(ValueError, layer.SetMaskType, -1)
532            self.assertRaises(ValueError, layer.SetMaskType, 4)
533    
534    
535  if __name__ == "__main__":  if __name__ == "__main__":
536      support.run_tests()      support.run_tests()

Legend:
Removed from v.2551  
changed lines
  Added in v.2734

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26