/[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 1356 by jonathan, Wed Jul 2 09:37:59 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    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.shp")          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
# Line 261  class TestClassification(unittest.TestCa Line 275  class TestClassification(unittest.TestCa
275          c = Classification()          c = Classification()
276          self.assertEqual(c.GetField(), None)          self.assertEqual(c.GetField(), None)
277          self.assertEqual(c.GetFieldType(), None)          self.assertEqual(c.GetFieldType(), None)
278          self.assertEqual(c.GetGroup(-1), c.GetDefaultGroup())          self.assertEqual(c.FindGroup(-1), c.GetDefaultGroup())
279    
280          c.SetDefaultLineColor(red)          c.SetDefaultLineColor(red)
281          self.assertEqual(c.GetDefaultLineColor(), red)          self.assertEqual(c.GetDefaultLineColor(), red)
282          self.assertEqual(c.GetDefaultFill(), Color.None)          self.assertEqual(c.GetDefaultFill(), Transparent)
283    
284          c.SetDefaultFill(green)          c.SetDefaultFill(green)
285          self.assertEqual(c.GetDefaultFill(), green)          self.assertEqual(c.GetDefaultFill(), green)
286          self.assertEqual(c.GetDefaultLineColor(), red)          self.assertEqual(c.GetDefaultLineColor(), red)
287    
288          c.SetField("hallo")          c.SetFieldInfo("hallo", FIELDTYPE_STRING)
289          self.assertEqual(c.GetField(), "hallo")          self.assertEqual(c.GetField(), "hallo")
   
         c.SetFieldType(FIELDTYPE_STRING)  
290          self.assertEqual(c.GetFieldType(), FIELDTYPE_STRING)          self.assertEqual(c.GetFieldType(), FIELDTYPE_STRING)
291    
292          c.SetLayer(layer)          # should raise an exception because 'hallo' doesn't
293            # exist in the table
294            self.assertRaises(ValueError, c._set_layer, layer)
295            
296            c.SetFieldInfo("AREA", None)
297            layer.SetClassification(c)
298          self.assertEqual(c.GetLayer(), layer)          self.assertEqual(c.GetLayer(), layer)
299            self.assertEqual(c.GetField(), "AREA")
300            self.assertEqual(c.GetFieldType(), FIELDTYPE_DOUBLE)
301    
302          c.SetField(None)          c.SetFieldInfo(None, None)
303          self.assertEquals(c.GetGroup(5), c.GetDefaultGroup())          self.assertEquals(c.GetFieldType(), None)
304            self.assertEquals(c.FindGroup(5), c.GetDefaultGroup())
305    
306          c.SetField("hallo")          c.SetFieldInfo("AREA", None)
307          s = ClassGroupSingleton(5)          s = ClassGroupSingleton(5)
308          c.AddGroup(s)          c.AppendGroup(s)
309          self.assertEquals(c.GetGroup(5), s)          self.assertEquals(c.FindGroup(5), s)
310          self.assertEquals(c.GetGroup(0), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(0), c.GetDefaultGroup())
311    
312          r = ClassGroupRange(-10, 10)          r = ClassGroupRange((-10, 10))
313          c.AddGroup(r)          c.AppendGroup(r)
314          self.assertEquals(c.GetGroup(-11), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(-11), c.GetDefaultGroup())
315          self.assertEquals(c.GetGroup(-10), r)          self.assertEquals(c.FindGroup(-10), r)
316          self.assertEquals(c.GetGroup(9), r)          self.assertEquals(c.FindGroup(9), r)
317          self.assertEquals(c.GetGroup(5), s)          self.assertEquals(c.FindGroup(5), s)
318          self.assertEquals(c.GetGroup(10), c.GetDefaultGroup())          self.assertEquals(c.FindGroup(10), c.GetDefaultGroup())
319    
320            clazz = copy.deepcopy(c)
321    
322            self.assertEquals(clazz.GetNumGroups(), c.GetNumGroups())
323    
324            for i in range(clazz.GetNumGroups()):
325                self.assertEquals(clazz.GetGroup(i), c.GetGroup(i))
326    
327            layer.Destroy()
328    
329  if __name__ == "__main__":  if __name__ == "__main__":
330      unittest.main()      support.run_tests()

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26