/[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 482 by jonathan, Thu Mar 6 16:47:02 2003 UTC revision 884 by jonathan, Fri May 9 16:34:53 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
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 35  class TestClassification(unittest.TestCa Line 42  class TestClassification(unittest.TestCa
42          props = ClassGroupProperties()          props = ClassGroupProperties()
43          self.assertEqual(props.GetLineColor(), Color.Black)          self.assertEqual(props.GetLineColor(), Color.Black)
44          self.assertEqual(props.GetLineWidth(), 1)          self.assertEqual(props.GetLineWidth(), 1)
45          self.assertEqual(props.GetFill(), Color.None)          self.assertEqual(props.GetFill(), Color.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.shp")          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(), Color.Transparent)
280    
281          c.SetDefaultFill(green)          c.SetDefaultFill(green)
282          self.assertEqual(c.GetDefaultFill(), green)          self.assertEqual(c.GetDefaultFill(), green)
# Line 277  class TestClassification(unittest.TestCa Line 288  class TestClassification(unittest.TestCa
288          c.SetFieldType(FIELDTYPE_STRING)          c.SetFieldType(FIELDTYPE_STRING)
289          self.assertEqual(c.GetFieldType(), FIELDTYPE_STRING)          self.assertEqual(c.GetFieldType(), FIELDTYPE_STRING)
290    
291            # should raise an exception because 'hallo' doesn't
292            # exist in the table
293            self.assertRaises(ValueError, c.SetLayer, layer)
294            
295            c.SetField("AREA")
296          c.SetLayer(layer)          c.SetLayer(layer)
297          self.assertEqual(c.GetLayer(), layer)          self.assertEqual(c.GetLayer(), layer)
298            self.assertEqual(c.GetField(), "AREA")
299            self.assertEqual(c.GetFieldType(), FIELDTYPE_DOUBLE)
300    
301          c.SetField(None)          c.SetField(None)
302          self.assertEquals(c.GetGroup(5), c.GetDefaultGroup())          self.assertEquals(c.GetFieldType(), None)
303            self.assertEquals(c.FindGroup(5), c.GetDefaultGroup())
304    
305          c.SetField("hallo")          c.SetField("AREA")
306          s = ClassGroupSingleton(5)          s = ClassGroupSingleton(5)
307          c.AddGroup(s)          c.AppendGroup(s)
308          self.assertEquals(c.GetGroup(5), s)          self.assertEquals(c.FindGroup(5), s)
309          self.assertEquals(c.GetGroup(0), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(0), c.GetDefaultGroup())
310    
311          r = ClassGroupRange(-10, 10)          r = ClassGroupRange(-10, 10)
312          c.AddGroup(r)          c.AppendGroup(r)
313          self.assertEquals(c.GetGroup(-11), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(-11), c.GetDefaultGroup())
314          self.assertEquals(c.GetGroup(-10), r)          self.assertEquals(c.FindGroup(-10), r)
315          self.assertEquals(c.GetGroup(9), r)          self.assertEquals(c.FindGroup(9), r)
316          self.assertEquals(c.GetGroup(5), s)          self.assertEquals(c.FindGroup(5), s)
317          self.assertEquals(c.GetGroup(10), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(10), c.GetDefaultGroup())
318    
319            clazz = copy.deepcopy(c)
320    
321            self.assertEquals(clazz.GetNumGroups(), c.GetNumGroups())
322    
323            for i in range(clazz.GetNumGroups()):
324                self.assertEquals(clazz.GetGroup(i), c.GetGroup(i))
325    
326            layer.Destroy()
327    
328  if __name__ == "__main__":  if __name__ == "__main__":
329      unittest.main()      support.run_tests()

Legend:
Removed from v.482  
changed lines
  Added in v.884

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26