/[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 598 by bh, Thu Apr 3 11:37:10 2003 UTC revision 1437 by jonathan, Wed Jul 16 13:25:16 2003 UTC
# Line 20  import unittest Line 20  import unittest
20  import support  import support
21  support.initthuban()  support.initthuban()
22    
23  from Thuban.Model.table import *  import os
24  from Thuban.Model.classification import *  from Thuban.Model.color import Color, Transparent, Black
25    from Thuban.Model.table import FIELDTYPE_INT, FIELDTYPE_STRING, FIELDTYPE_DOUBLE
26    from Thuban.Model.classification import \
27        Classification, ClassGroup, \
28        ClassGroupDefault, ClassGroupSingleton, ClassGroupRange,\
29        ClassGroupProperties
30    
31    from Thuban.Model.session import Session
32  from Thuban.Model.layer import Layer  from Thuban.Model.layer import Layer
33    from Thuban.Model.range import Range
34    
35  import copy  import copy
36    
# Line 33  class TestClassification(unittest.TestCa Line 41  class TestClassification(unittest.TestCa
41          """Test ClassGroupProperties"""          """Test ClassGroupProperties"""
42    
43          props = ClassGroupProperties()          props = ClassGroupProperties()
44          self.assertEqual(props.GetLineColor(), Color.Black)          self.assertEqual(props.GetLineColor(), Black)
45          self.assertEqual(props.GetLineWidth(), 1)          self.assertEqual(props.GetLineWidth(), 1)
46          self.assertEqual(props.GetFill(), Color.None)          self.assertEqual(props.GetFill(), Transparent)
47    
48          red = Color(1, 0, 0)          red = Color(1, 0, 0)
49          props.SetLineColor(red)          props.SetLineColor(red)
# Line 76  class TestClassification(unittest.TestCa Line 84  class TestClassification(unittest.TestCa
84          self.assertEqual(group.GetLabel(), "")          self.assertEqual(group.GetLabel(), "")
85    
86          # test Matches          # test Matches
87          self.assertEqual(group.Matches(None), False)          # Matches() is a virtual function...can't test it here
88          self.assertEqual(group.Matches(1), False)          #
89          self.assertEqual(group.Matches("hallo"), False)          #self.assertEqual(group.Matches(None), False)
90          self.assertEqual(group.Matches([]), False)          #self.assertEqual(group.Matches(1), False)
91            #self.assertEqual(group.Matches("hallo"), False)
92            #self.assertEqual(group.Matches([]), False)
93    
94          # test GetProperties          # test GetProperties...also a virtual function
95          self.assertEqual(group.GetProperties(), None)          #self.assertEqual(group.GetProperties(), None)
96    
97      def test_ClassGroupDefault(self):      def test_ClassGroupDefault(self):
98          """Test ClassGroupDefault"""          """Test ClassGroupDefault"""
# Line 160  class TestClassification(unittest.TestCa Line 170  class TestClassification(unittest.TestCa
170          self.assertEqual(group.GetProperties(), newProps)          self.assertEqual(group.GetProperties(), newProps)
171    
172          # test SetRange()          # test SetRange()
173          self.assertRaises(ValueError, group.SetRange, 1, 0)          self.assertRaises(ValueError, group.SetRange, (1, 0))
174          group.SetRange(-5, 5)          group.SetRange(Range("]-oo;6]"))
175          self.assertEqual(group.GetRange(), (-5, 5))          self.assertEqual(group.GetRange(), "]-oo;6]")
176            group.SetRange((-5, 5))
177            self.assertEqual(group.GetRange(), "[-5;5[")
178    
179          # test Matches()          # test Matches()
180          self.assertEqual(group.Matches(-6), False)          self.assertEqual(group.Matches(-6), False)
# Line 226  class TestClassification(unittest.TestCa Line 238  class TestClassification(unittest.TestCa
238          """Test ClassIterator"""          """Test ClassIterator"""
239    
240          groups = [ClassGroupSingleton(5), ClassGroupSingleton(5),          groups = [ClassGroupSingleton(5), ClassGroupSingleton(5),
241                    ClassGroupRange(-3, 3), ClassGroupSingleton(-5),                    ClassGroupRange((-3, 3)), ClassGroupSingleton(-5),
242                    ClassGroupDefault()]                    ClassGroupDefault()]
243    
244          clazz = Classification()          clazz = Classification()
245    
246          for g in groups:          for g in groups:
247              clazz.AddGroup(g)              clazz.AppendGroup(g)
248    
249          def convert(clazz):          def convert(clazz):
250              if isinstance(clazz, ClassGroupDefault):   return 0              if isinstance(clazz, ClassGroupDefault):   return 0
# Line 243  class TestClassification(unittest.TestCa Line 255  class TestClassification(unittest.TestCa
255          for g in clazz:          for g in clazz:
256              list.append(convert(g))              list.append(convert(g))
257    
258          self.assertEquals(list, [0, 1, 1, 2, 1])          self.assertEquals(list, [0, 1, 1, 2, 1, 0])
259    
260      def test_classification(self):      def test_classification(self):
261          """Test Classification"""          """Test Classification"""
# Line 253  class TestClassification(unittest.TestCa Line 265  class TestClassification(unittest.TestCa
265          green = Color(0, 1, 0)          green = Color(0, 1, 0)
266          blue  = Color(0, 0, 1)          blue  = Color(0, 0, 1)
267    
268          layer = Layer("asdf", "../Data/iceland/political.dbf")          session = Session("Test session")
269            filename = os.path.join("..", "Data", "iceland", "political.dbf")
270            layer = Layer("asdf", session.OpenShapefile(filename))
271    
272          #          #
273          # init with no params          # init with no params
274          #          #
275          c = Classification()          c = Classification()
276          self.assertEqual(c.GetField(), None)          self.assertEqual(c.FindGroup(-1), c.GetDefaultGroup())
         self.assertEqual(c.GetFieldType(), None)  
         self.assertEqual(c.GetGroup(-1), c.GetDefaultGroup())  
277    
278          c.SetDefaultLineColor(red)          c.SetDefaultLineColor(red)
279          self.assertEqual(c.GetDefaultLineColor(), red)          self.assertEqual(c.GetDefaultLineColor(), red)
280          self.assertEqual(c.GetDefaultFill(), Color.None)          self.assertEqual(c.GetDefaultFill(), Transparent)
281    
282          c.SetDefaultFill(green)          c.SetDefaultFill(green)
283          self.assertEqual(c.GetDefaultFill(), green)          self.assertEqual(c.GetDefaultFill(), green)
284          self.assertEqual(c.GetDefaultLineColor(), red)          self.assertEqual(c.GetDefaultLineColor(), red)
285    
286          c.SetField("hallo")          layer.SetClassification(c)
         self.assertEqual(c.GetField(), "hallo")  
287    
288          c.SetFieldType(FIELDTYPE_STRING)          self.assertEquals(c.FindGroup(5), c.GetDefaultGroup())
         self.assertEqual(c.GetFieldType(), FIELDTYPE_STRING)  
   
         # should raise an exception because 'hallo' doesn't  
         # exist in the table  
         self.assertRaises(ValueError, c.SetLayer, layer)  
           
         c.SetField("AREA")  
         c.SetLayer(layer)  
         self.assertEqual(c.GetLayer(), layer)  
         self.assertEqual(c.GetField(), "AREA")  
         self.assertEqual(c.GetFieldType(), FIELDTYPE_DOUBLE)  
   
         c.SetField(None)  
         self.assertEquals(c.GetFieldType(), None)  
         self.assertEquals(c.GetGroup(5), c.GetDefaultGroup())  
289    
         c.SetField("AREA")  
290          s = ClassGroupSingleton(5)          s = ClassGroupSingleton(5)
291          c.AddGroup(s)          c.AppendGroup(s)
292          self.assertEquals(c.GetGroup(5), s)          self.assertEquals(c.FindGroup(5), s)
293          self.assertEquals(c.GetGroup(0), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(0), c.GetDefaultGroup())
294    
295          r = ClassGroupRange(-10, 10)          r = ClassGroupRange((-10, 10))
296          c.AddGroup(r)          c.AppendGroup(r)
297          self.assertEquals(c.GetGroup(-11), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(-11), c.GetDefaultGroup())
298          self.assertEquals(c.GetGroup(-10), r)          self.assertEquals(c.FindGroup(-10), r)
299          self.assertEquals(c.GetGroup(9), r)          self.assertEquals(c.FindGroup(9), r)
300          self.assertEquals(c.GetGroup(5), s)          self.assertEquals(c.FindGroup(5), s)
301          self.assertEquals(c.GetGroup(10), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(10), c.GetDefaultGroup())
302    
303            clazz = copy.deepcopy(c)
304    
305            self.assertEquals(clazz.GetNumGroups(), c.GetNumGroups())
306    
307            for i in range(clazz.GetNumGroups()):
308                self.assertEquals(clazz.GetGroup(i), c.GetGroup(i))
309    
310            session.Destroy()
311          layer.Destroy()          layer.Destroy()
312    
313  if __name__ == "__main__":  if __name__ == "__main__":

Legend:
Removed from v.598  
changed lines
  Added in v.1437

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26