/[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 494 by jonathan, Mon Mar 10 10:45:33 2003 UTC revision 1346 by jonathan, Tue Jul 1 16:11:55 2003 UTC
# Line 1  Line 1 
1  # Copyright (c) 2002 by Intevation GmbH  # Copyright (c) 2002, 2003 by Intevation GmbH
2  # Authors:  # Authors:
3  # Jonathan Coles <[email protected]>  # Jonathan Coles <[email protected]>
4  #  #
# 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    
34  import copy  import copy
# Line 33  class TestClassification(unittest.TestCa Line 40  class TestClassification(unittest.TestCa
40          """Test ClassGroupProperties"""          """Test ClassGroupProperties"""
41    
42          props = ClassGroupProperties()          props = ClassGroupProperties()
43          self.assertEqual(props.GetLineColor(), Color.Black)          self.assertEqual(props.GetLineColor(), Black)
44          self.assertEqual(props.GetLineWidth(), 1)          self.assertEqual(props.GetLineWidth(), 1)
45          self.assertEqual(props.GetFill(), Color.None)          self.assertEqual(props.GetFill(), Transparent)
46    
47          red = Color(1, 0, 0)          red = Color(1, 0, 0)
48          props.SetLineColor(red)          props.SetLineColor(red)
# Line 76  class TestClassification(unittest.TestCa Line 83  class TestClassification(unittest.TestCa
83          self.assertEqual(group.GetLabel(), "")          self.assertEqual(group.GetLabel(), "")
84    
85          # test Matches          # test Matches
86          self.assertEqual(group.Matches(None), False)          # Matches() is a virtual function...can't test it here
87          self.assertEqual(group.Matches(1), False)          #
88          self.assertEqual(group.Matches("hallo"), False)          #self.assertEqual(group.Matches(None), False)
89          self.assertEqual(group.Matches([]), False)          #self.assertEqual(group.Matches(1), False)
90            #self.assertEqual(group.Matches("hallo"), False)
91            #self.assertEqual(group.Matches([]), False)
92    
93          # test GetProperties          # test GetProperties...also a virtual function
94          self.assertEqual(group.GetProperties(), None)          #self.assertEqual(group.GetProperties(), None)
95    
96      def test_ClassGroupDefault(self):      def test_ClassGroupDefault(self):
97          """Test ClassGroupDefault"""          """Test ClassGroupDefault"""
# Line 162  class TestClassification(unittest.TestCa Line 171  class TestClassification(unittest.TestCa
171          # test SetRange()          # test SetRange()
172          self.assertRaises(ValueError, group.SetRange, 1, 0)          self.assertRaises(ValueError, group.SetRange, 1, 0)
173          group.SetRange(-5, 5)          group.SetRange(-5, 5)
174          self.assertEqual(group.GetRange(), (-5, 5))          self.assertEqual(group.GetRange(), "[-5;5[")
175    
176          # test Matches()          # test Matches()
177          self.assertEqual(group.Matches(-6), False)          self.assertEqual(group.Matches(-6), False)
# Line 232  class TestClassification(unittest.TestCa Line 241  class TestClassification(unittest.TestCa
241          clazz = Classification()          clazz = Classification()
242    
243          for g in groups:          for g in groups:
244              clazz.AddGroup(g)              clazz.AppendGroup(g)
245    
246          def convert(clazz):          def convert(clazz):
247              if isinstance(clazz, ClassGroupDefault):   return 0              if isinstance(clazz, ClassGroupDefault):   return 0
# Line 243  class TestClassification(unittest.TestCa Line 252  class TestClassification(unittest.TestCa
252          for g in clazz:          for g in clazz:
253              list.append(convert(g))              list.append(convert(g))
254    
255          self.assertEquals(list, [0, 1, 1, 2, 1])          self.assertEquals(list, [0, 1, 1, 2, 1, 0])
256    
257      def test_classification(self):      def test_classification(self):
258          """Test Classification"""          """Test Classification"""
# Line 253  class TestClassification(unittest.TestCa Line 262  class TestClassification(unittest.TestCa
262          green = Color(0, 1, 0)          green = Color(0, 1, 0)
263          blue  = Color(0, 0, 1)          blue  = Color(0, 0, 1)
264    
265          layer = Layer("asdf", "../Data/iceland/political.dbf")          session = Session("Test session")
266            filename = os.path.join("..", "Data", "iceland", "political.dbf")
267            layer = Layer("asdf", session.OpenShapefile(filename))
268    
269          #          #
270          # init with no params          # init with no params
# Line 261  class TestClassification(unittest.TestCa Line 272  class TestClassification(unittest.TestCa
272          c = Classification()          c = Classification()
273          self.assertEqual(c.GetField(), None)          self.assertEqual(c.GetField(), None)
274          self.assertEqual(c.GetFieldType(), None)          self.assertEqual(c.GetFieldType(), None)
275          self.assertEqual(c.GetGroup(-1), c.GetDefaultGroup())          self.assertEqual(c.FindGroup(-1), c.GetDefaultGroup())
276    
277          c.SetDefaultLineColor(red)          c.SetDefaultLineColor(red)
278          self.assertEqual(c.GetDefaultLineColor(), red)          self.assertEqual(c.GetDefaultLineColor(), red)
279          self.assertEqual(c.GetDefaultFill(), Color.None)          self.assertEqual(c.GetDefaultFill(), Transparent)
280    
281          c.SetDefaultFill(green)          c.SetDefaultFill(green)
282          self.assertEqual(c.GetDefaultFill(), green)          self.assertEqual(c.GetDefaultFill(), green)
283          self.assertEqual(c.GetDefaultLineColor(), red)          self.assertEqual(c.GetDefaultLineColor(), red)
284    
285          c.SetField("hallo")          c.SetFieldInfo("hallo", FIELDTYPE_STRING)
286          self.assertEqual(c.GetField(), "hallo")          self.assertEqual(c.GetField(), "hallo")
   
         c.SetFieldType(FIELDTYPE_STRING)  
287          self.assertEqual(c.GetFieldType(), FIELDTYPE_STRING)          self.assertEqual(c.GetFieldType(), FIELDTYPE_STRING)
288    
289          # should raise an exception because 'hallo' doesn't          # should raise an exception because 'hallo' doesn't
290          # exist in the table          # exist in the table
291          self.assertRaises(ValueError, c.SetLayer, layer)          self.assertRaises(ValueError, c._set_layer, layer)
292                    
293          c.SetField("AREA")          c.SetFieldInfo("AREA", None)
294          c.SetLayer(layer)          layer.SetClassification(c)
295          self.assertEqual(c.GetLayer(), layer)          self.assertEqual(c.GetLayer(), layer)
296          self.assertEqual(c.GetField(), "AREA")          self.assertEqual(c.GetField(), "AREA")
297          self.assertEqual(c.GetFieldType(), FIELDTYPE_DOUBLE)          self.assertEqual(c.GetFieldType(), FIELDTYPE_DOUBLE)
298    
299          c.SetField(None)          c.SetFieldInfo(None, None)
300          self.assertEquals(c.GetFieldType(), None)          self.assertEquals(c.GetFieldType(), None)
301          self.assertEquals(c.GetGroup(5), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(5), c.GetDefaultGroup())
302    
303          c.SetField("AREA")          c.SetFieldInfo("AREA", None)
304          s = ClassGroupSingleton(5)          s = ClassGroupSingleton(5)
305          c.AddGroup(s)          c.AppendGroup(s)
306          self.assertEquals(c.GetGroup(5), s)          self.assertEquals(c.FindGroup(5), s)
307          self.assertEquals(c.GetGroup(0), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(0), c.GetDefaultGroup())
308    
309          r = ClassGroupRange(-10, 10)          r = ClassGroupRange(-10, 10)
310          c.AddGroup(r)          c.AppendGroup(r)
311          self.assertEquals(c.GetGroup(-11), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(-11), c.GetDefaultGroup())
312          self.assertEquals(c.GetGroup(-10), r)          self.assertEquals(c.FindGroup(-10), r)
313          self.assertEquals(c.GetGroup(9), r)          self.assertEquals(c.FindGroup(9), r)
314          self.assertEquals(c.GetGroup(5), s)          self.assertEquals(c.FindGroup(5), s)
315          self.assertEquals(c.GetGroup(10), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(10), c.GetDefaultGroup())
316    
317            clazz = copy.deepcopy(c)
318    
319            self.assertEquals(clazz.GetNumGroups(), c.GetNumGroups())
320    
321            for i in range(clazz.GetNumGroups()):
322                self.assertEquals(clazz.GetGroup(i), c.GetGroup(i))
323    
324            layer.Destroy()
325    
326  if __name__ == "__main__":  if __name__ == "__main__":
327      unittest.main()      support.run_tests()

Legend:
Removed from v.494  
changed lines
  Added in v.1346

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26