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

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

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

revision 1898 by bh, Fri Oct 31 14:38:09 2003 UTC revision 1903 by bh, Fri Oct 31 16:52:33 2003 UTC
# Line 21  import support Line 21  import support
21  support.initthuban()  support.initthuban()
22    
23  import os  import os
24    import copy
25    
26  from Thuban.Model.color import Color, Transparent, Black  from Thuban.Model.color import Color, Transparent, Black
27  from Thuban.Model.table import FIELDTYPE_INT, FIELDTYPE_STRING, FIELDTYPE_DOUBLE  from Thuban.Model.table import FIELDTYPE_INT, FIELDTYPE_STRING, FIELDTYPE_DOUBLE
28  from Thuban.Model.classification import \  from Thuban.Model.classification import \
# Line 32  from Thuban.Model.session import Session Line 34  from Thuban.Model.session import Session
34  from Thuban.Model.layer import Layer  from Thuban.Model.layer import Layer
35  from Thuban.Model.range import Range  from Thuban.Model.range import Range
36    
37  import copy  
38    
39    # A few colors for use by the test cases
40    red = Color(1, 0, 0)
41    green = Color(0, 1, 0)
42    blue = Color(0, 0, 1)
43    
44    
45  class TestClassGroupProperties(unittest.TestCase):  class TestClassGroupProperties(unittest.TestCase):
# Line 45  class TestClassGroupProperties(unittest. Line 52  class TestClassGroupProperties(unittest.
52          self.assertEqual(props.GetLineWidth(), 1)          self.assertEqual(props.GetLineWidth(), 1)
53          self.assertEqual(props.GetFill(), Transparent)          self.assertEqual(props.GetFill(), Transparent)
54    
         red = Color(1, 0, 0)  
55          props.SetLineColor(red)          props.SetLineColor(red)
56          self.assertEqual(props.GetLineColor(), red)          self.assertEqual(props.GetLineColor(), red)
57    
         blue = Color(0, 0, 1)  
58          props.SetLineColor(blue)          props.SetLineColor(blue)
59          self.assertEqual(props.GetLineColor(), blue)          self.assertEqual(props.GetLineColor(), blue)
60    
# Line 246  class TestClassGroupSingleton(unittest.T Line 251  class TestClassGroupSingleton(unittest.T
251          self.assertEqual(group, groupCopy)          self.assertEqual(group, groupCopy)
252    
253    
 class TestClassIterator(unittest.TestCase):  
   
     def test(self):  
         """Test ClassIterator"""  
   
         groups = [ClassGroupSingleton(5), ClassGroupSingleton(5),  
                   ClassGroupRange((-3, 3)), ClassGroupSingleton(-5),  
                   ClassGroupDefault()]  
   
         clazz = Classification()  
   
         for g in groups:  
             clazz.AppendGroup(g)  
   
         def convert(clazz):  
             if isinstance(clazz, ClassGroupDefault):   return 0  
             if isinstance(clazz, ClassGroupSingleton): return 1  
             if isinstance(clazz, ClassGroupRange):     return 2  
   
         list = []  
         for g in clazz:  
             list.append(convert(g))  
   
         self.assertEquals(list, [0, 1, 1, 2, 1, 0])  
   
   
254  class TestClassification(unittest.TestCase):  class TestClassification(unittest.TestCase):
255    
256      def test(self):      """Test cases for Classification"""
         """Test Classification"""  
   
         defProps = ClassGroupProperties()  
         red   = Color(1, 0, 0)  
         green = Color(0, 1, 0)  
         blue  = Color(0, 0, 1)  
   
         session = Session("Test session")  
         filename = os.path.join("..", "Data", "iceland", "political.dbf")  
         layer = Layer("asdf", session.OpenShapefile(filename))  
257    
258          #      def test_defaults(self):
259          # init with no params          """Test Classification default settings"""
         #  
260          c = Classification()          c = Classification()
261          self.assertEqual(c.FindGroup(-1), c.GetDefaultGroup())          self.assertEqual(c.FindGroup(-1), c.GetDefaultGroup())
262            self.assertEqual(c.GetDefaultLineColor(), Black)
263            self.assertEqual(c.GetDefaultFill(), Transparent)
264    
265            # The default group is not counted, hence 0 groups
266            self.assertEqual(c.GetNumGroups(), 0)
267    
268        def test_set_default_properties(self):
269            """Test Classification.SetDefaultLineColor and SetDefaultFill"""
270            c = Classification()
271    
272          c.SetDefaultLineColor(red)          c.SetDefaultLineColor(red)
273          self.assertEqual(c.GetDefaultLineColor(), red)          self.assertEqual(c.GetDefaultLineColor(), red)
# Line 300  class TestClassification(unittest.TestCa Line 277  class TestClassification(unittest.TestCa
277          self.assertEqual(c.GetDefaultFill(), green)          self.assertEqual(c.GetDefaultFill(), green)
278          self.assertEqual(c.GetDefaultLineColor(), red)          self.assertEqual(c.GetDefaultLineColor(), red)
279    
280          layer.SetClassification(c)      def test_add_singleton(self):
281            """Test Classification.AppendGroup(ClassGroupSingleton())"""
282            c = Classification()
283          self.assertEquals(c.FindGroup(5), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(5), c.GetDefaultGroup())
284    
285          s = ClassGroupSingleton(5)          s = ClassGroupSingleton(5)
# Line 309  class TestClassification(unittest.TestCa Line 287  class TestClassification(unittest.TestCa
287          self.assertEquals(c.FindGroup(5), s)          self.assertEquals(c.FindGroup(5), s)
288          self.assertEquals(c.FindGroup(0), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(0), c.GetDefaultGroup())
289    
290        def test_add_range(self):
291            """Test Classification.AppendGroup(ClassGroupRange())"""
292            c = Classification()
293            self.assertEquals(c.FindGroup(0), c.GetDefaultGroup())
294    
295          r = ClassGroupRange((-10, 10))          r = ClassGroupRange((-10, 10))
296          c.AppendGroup(r)          c.AppendGroup(r)
297          self.assertEquals(c.FindGroup(-11), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(-11), c.GetDefaultGroup())
298          self.assertEquals(c.FindGroup(-10), r)          self.assertEquals(c.FindGroup(-10), r)
299          self.assertEquals(c.FindGroup(9), r)          self.assertEquals(c.FindGroup(9), r)
300          self.assertEquals(c.FindGroup(5), s)          self.assertEquals(c.FindGroup(5), r)
301          self.assertEquals(c.FindGroup(10), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(10), c.GetDefaultGroup())
302    
303        def test_multiple_groups(self):
304            """Test Classification with multiple groups"""
305            c = Classification()
306            s1 = ClassGroupSingleton(1)
307            s1a = ClassGroupSingleton(1)
308            s2 = ClassGroupSingleton(2)
309            r = ClassGroupRange((-10, 10))
310    
311            c.AppendGroup(s1)
312            c.AppendGroup(s2)
313            c.AppendGroup(s1a)
314            c.AppendGroup(r)
315    
316            self.assertEquals(c.FindGroup(-11), c.GetDefaultGroup())
317            self.assertEquals(c.FindGroup(-10), r)
318            self.assertEquals(c.FindGroup(1), s1)
319            self.assertEquals(c.FindGroup(2), s2)
320            self.assertEquals(c.FindGroup(3), r)
321            self.assertEquals(c.FindGroup(9), r)
322            self.assertEquals(c.FindGroup(10), c.GetDefaultGroup())
323    
324        def test_deepcopy(self):
325            """Test deepcopy(Classification())"""
326            c = Classification()
327            c.AppendGroup(ClassGroupSingleton(5))
328            c.AppendGroup(ClassGroupRange((-10, 10)))
329    
330          clazz = copy.deepcopy(c)          clazz = copy.deepcopy(c)
331    
332          self.assertEquals(clazz.GetNumGroups(), c.GetNumGroups())          self.assertEquals(clazz.GetNumGroups(), c.GetNumGroups())
# Line 324  class TestClassification(unittest.TestCa Line 334  class TestClassification(unittest.TestCa
334          for i in range(clazz.GetNumGroups()):          for i in range(clazz.GetNumGroups()):
335              self.assertEquals(clazz.GetGroup(i), c.GetGroup(i))              self.assertEquals(clazz.GetGroup(i), c.GetGroup(i))
336    
337          session.Destroy()  
338          layer.Destroy()      def test_iterator(self):
339            """Test Classification iteration"""
340            groups = [ClassGroupSingleton(5), ClassGroupSingleton(5),
341                      ClassGroupRange((-3, 3)), ClassGroupSingleton(-5),
342                      ClassGroupDefault()]
343    
344            clazz = Classification()
345    
346            for g in groups:
347                clazz.AppendGroup(g)
348    
349            def convert(clazz):
350                if isinstance(clazz, ClassGroupDefault):   return 0
351                if isinstance(clazz, ClassGroupSingleton): return 1
352                if isinstance(clazz, ClassGroupRange):     return 2
353    
354            list = []
355            for g in clazz:
356                list.append(convert(g))
357    
358            self.assertEquals(list, [0, 1, 1, 2, 1, 0])
359    
360    
361  if __name__ == "__main__":  if __name__ == "__main__":

Legend:
Removed from v.1898  
changed lines
  Added in v.1903

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26