/[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 446 by jonathan, Thu Feb 27 16:05:10 2003 UTC revision 482 by jonathan, Thu Mar 6 16:47:02 2003 UTC
# Line 13  __version__ = "$Revision$" Line 13  __version__ = "$Revision$"
13  # $Source$  # $Source$
14  # $Id$  # $Id$
15    
16    from __future__ import nested_scopes
17    
18  import unittest  import unittest
19    
20  import support  import support
21  support.initthuban()  support.initthuban()
22    
23  from Thuban.Model.classification import Classification  from Thuban.Model.table import *
24    from Thuban.Model.classification import *
25  from Thuban.Model.layer import Layer  from Thuban.Model.layer import Layer
26    
27    import copy
28    
29    
30  class TestClassification(unittest.TestCase):  class TestClassification(unittest.TestCase):
31    
32        def test_ClassGroupProperties(self):
33            """Test ClassGroupProperties"""
34    
35            props = ClassGroupProperties()
36            self.assertEqual(props.GetLineColor(), Color.Black)
37            self.assertEqual(props.GetLineWidth(), 1)
38            self.assertEqual(props.GetFill(), Color.None)
39    
40            red = Color(1, 0, 0)
41            props.SetLineColor(red)
42            self.assertEqual(props.GetLineColor(), red)
43    
44            blue = Color(0, 0, 1)
45            props.SetLineColor(blue)
46            self.assertEqual(props.GetLineColor(), blue)
47    
48            props.SetLineWidth(10)
49            self.assertEqual(props.GetLineWidth(), 10)
50    
51            self.assertRaises(ValueError, props.SetLineWidth, -10)
52            self.assertEqual(props.GetLineWidth(), 10)
53    
54            newProps1 = ClassGroupProperties()
55            newProps2 = ClassGroupProperties()
56            self.assertNotEqual(newProps1, props)
57            self.assertEqual(newProps1, newProps2)
58    
59        def test_ClassGroup(self):
60            """Test ClassGroup"""
61    
62            # test constructor with no label
63            group = ClassGroup()
64            self.assertEqual(group.GetLabel(), "")
65    
66            # test constructor with label
67            group = ClassGroup("hallo")
68            self.assertEqual(group.GetLabel(), "hallo")
69    
70            # test SetLabel()/GetLabel()
71            group = ClassGroup("welt")
72            group.SetLabel("hallo")
73            self.assertEqual(group.GetLabel(), "hallo")
74    
75            group.SetLabel("")
76            self.assertEqual(group.GetLabel(), "")
77    
78            # test Matches
79            self.assertEqual(group.Matches(None), False)
80            self.assertEqual(group.Matches(1), False)
81            self.assertEqual(group.Matches("hallo"), False)
82            self.assertEqual(group.Matches([]), False)
83    
84            # test GetProperties
85            self.assertEqual(group.GetProperties(), None)
86    
87        def test_ClassGroupDefault(self):
88            """Test ClassGroupDefault"""
89    
90            defProps = ClassGroupProperties()
91    
92            newProps = ClassGroupProperties()
93            newProps.SetLineColor(Color(.25, .5, .75))
94            newProps.SetLineWidth(5)
95            newProps.SetFill(Color(.12, .24, .36))
96    
97            # test constructor
98    
99            group = ClassGroupDefault(newProps)
100            self.assertEqual(group.GetProperties(), newProps)
101    
102            group = ClassGroupDefault(newProps, "hallo")
103            self.assertEqual(group.GetProperties(), newProps)
104            self.assertEqual(group.GetLabel(), "hallo")
105    
106            # test empty constructor
107            group = ClassGroupDefault()
108            props = group.GetProperties()
109    
110            self.assertEqual(group.GetLabel(), "")
111            self.assertEqual(defProps, props)
112    
113            # test Matches()
114            self.assertEqual(group.Matches(None), True)
115            self.assertEqual(group.Matches(1), True)
116            self.assertEqual(group.Matches("hallo"), True)
117            self.assertEqual(group.Matches([]), True)
118    
119            # test SetProperties()/GetProperties()
120            group.SetProperties(newProps)
121            self.assertEqual(group.GetProperties(), newProps)
122    
123            # test copy
124            groupCopy = copy.copy(group)
125            self.assertEqual(group, groupCopy)
126    
127        def test_ClassGroupRange(self):
128            """Test ClassGroupRange"""
129    
130            defProps = ClassGroupProperties()
131            newProps = ClassGroupProperties()
132            newProps.SetLineColor(Color(.25, .5, .75))
133            newProps.SetLineWidth(5)
134            newProps.SetFill(Color(.12, .24, .36))
135    
136            # test empty constructor
137            group = ClassGroupRange()
138    
139            self.assertEqual(group.GetMin(), 0)
140            self.assertEqual(group.GetMax(), 1)
141            self.assertEqual(group.GetProperties(), defProps)
142            self.assertEqual(group.GetLabel(), "")
143            
144            # test SetMax()
145            self.assertRaises(ValueError, group.SetMax, 0)
146            self.assertRaises(ValueError, group.SetMax, -1)
147            self.assertEquals(group.GetMax(), 1)
148            group.SetMax(2)
149            self.assertEquals(group.GetMax(), 2)
150    
151            # test SetMin()
152            self.assertRaises(ValueError, group.SetMin, 2)
153            self.assertRaises(ValueError, group.SetMin, 3)
154            self.assertEquals(group.GetMin(), 0)
155            group.SetMin(-5)
156            self.assertEquals(group.GetMin(), -5)
157    
158            # test SetProperties()/GetProperties()
159            group.SetProperties(newProps)
160            self.assertEqual(group.GetProperties(), newProps)
161    
162            # test SetRange()
163            self.assertRaises(ValueError, group.SetRange, 1, 0)
164            group.SetRange(-5, 5)
165            self.assertEqual(group.GetRange(), (-5, 5))
166    
167            # test Matches()
168            self.assertEqual(group.Matches(-6), False)
169            self.assertEqual(group.Matches(-5), True)
170            self.assertEqual(group.Matches(0), True)
171            self.assertEqual(group.Matches(4), True)
172            self.assertEqual(group.Matches(5), False)
173    
174            # test copy
175            groupCopy = copy.copy(group)
176            self.assertEqual(group, groupCopy)
177    
178        def test_ClassGroupSingleton(self):
179            """Test ClassGroupSingleton"""
180    
181            defProps = ClassGroupProperties()
182            newProps = ClassGroupProperties()
183            newProps.SetLineColor(Color(.25, .5, .75))
184            newProps.SetLineWidth(5)
185            newProps.SetFill(Color(.12, .24, .36))
186    
187            # test empty constructor
188            group = ClassGroupSingleton()
189    
190            self.assertEqual(group.GetValue(), 0)
191            self.assertEqual(group.GetProperties(), defProps)
192            self.assertEqual(group.GetLabel(), "")
193    
194            # test SetProperties()/GetProperties()
195            group.SetProperties(newProps)
196            self.assertEqual(group.GetProperties(), newProps)
197    
198            # test SetValue()
199            group.SetValue(5)
200            self.assertEqual(group.GetValue(), 5)
201    
202            # test Matches()
203            self.assertEqual(group.Matches(0), False)
204            self.assertEqual(group.Matches(5), True)
205    
206            group.SetValue("5")
207            self.assertNotEqual(group.GetValue(), 5)
208    
209            # test Matches()
210            self.assertEqual(group.Matches(5), False)
211            self.assertEqual(group.Matches("5"), True)
212    
213            group.SetValue("hallo")
214            self.assertEqual(group.GetValue(), "hallo")
215    
216            # test Matches()
217            self.assertEqual(group.Matches("HALLO"), False)
218            self.assertEqual(group.Matches("hallo"), True)
219    
220            # test copy
221            groupCopy = copy.copy(group)
222            self.assertEqual(group, groupCopy)
223            
224    
225        def test_ClassIterator(self):
226            """Test ClassIterator"""
227    
228            groups = [ClassGroupSingleton(5), ClassGroupSingleton(5),
229                      ClassGroupRange(-3, 3), ClassGroupSingleton(-5),
230                      ClassGroupDefault()]
231    
232            clazz = Classification()
233    
234            for g in groups:
235                clazz.AddGroup(g)
236    
237            def convert(clazz):
238                if isinstance(clazz, ClassGroupDefault):   return 0
239                if isinstance(clazz, ClassGroupSingleton): return 1
240                if isinstance(clazz, ClassGroupRange):     return 2
241    
242            list = []
243            for g in clazz:
244                list.append(convert(g))
245    
246            self.assertEquals(list, [0, 1, 1, 2, 1])
247    
248      def test_classification(self):      def test_classification(self):
249          """Test Classification"""          """Test Classification"""
250    
251            defProps = ClassGroupProperties()
252            red   = Color(1, 0, 0)
253            green = Color(0, 1, 0)
254            blue  = Color(0, 0, 1)
255    
256          layer = Layer("asdf", "../Data/iceland/political.shp")          layer = Layer("asdf", "../Data/iceland/political.shp")
257    
258          #          #
259          # init with no params          # init with no params
260          #          #
261          c = Classification(layer)          c = Classification()
262          self.assertEqual(c.GetField(), None)          self.assertEqual(c.GetField(), None)
263          self.assertNotEqual(c.GetDefaultGroup(), None)          self.assertEqual(c.GetFieldType(), None)
264            self.assertEqual(c.GetGroup(-1), c.GetDefaultGroup())
265    
266          #          c.SetDefaultLineColor(red)
267          # SetField          self.assertEqual(c.GetDefaultLineColor(), red)
268          #          self.assertEqual(c.GetDefaultFill(), Color.None)
         c = Classification(layer)  
         c.SetField("Test")  
         self.assertEqual(c.field, "Test")  
         c.SetField(None)  
         self.assertEqual(c.field, None)  
269    
270          #          c.SetDefaultFill(green)
271          # init with field          self.assertEqual(c.GetDefaultFill(), green)
272          #          self.assertEqual(c.GetDefaultLineColor(), red)
         c = Classification(layer, "Test")  
         self.assertEqual(c.field, "Test")  
273    
274          #          c.SetField("hallo")
275          # GetProperties          self.assertEqual(c.GetField(), "hallo")
276          #  
277            c.SetFieldType(FIELDTYPE_STRING)
278            self.assertEqual(c.GetFieldType(), FIELDTYPE_STRING)
279    
280            c.SetLayer(layer)
281            self.assertEqual(c.GetLayer(), layer)
282    
283            c.SetField(None)
284            self.assertEquals(c.GetGroup(5), c.GetDefaultGroup())
285    
286  #       self.assertEqual(c0.GetProperties(-10), "1")          c.SetField("hallo")
287  #       self.assertEqual(c0.GetProperties(-11), default0)          s = ClassGroupSingleton(5)
288  #       self.assertEqual(c0.GetProperties(0), "2") # min <= x < max          c.AddGroup(s)
289  #       self.assertEqual(c0.GetProperties(10), default0)          self.assertEquals(c.GetGroup(5), s)
290  #       self.assertEqual(c0.GetProperties(11), default0)          self.assertEquals(c.GetGroup(0), c.GetDefaultGroup())
291    
292  #       self.assertEqual(c1.GetProperties(0), "1")          r = ClassGroupRange(-10, 10)
293  #       self.assertEqual(c1.GetProperties("0"), "2")          c.AddGroup(r)
294  #       self.assertEqual(c1.GetProperties(-1), default1)          self.assertEquals(c.GetGroup(-11), c.GetDefaultGroup())
295  #       self.assertEqual(c1.GetProperties(1), default1)          self.assertEquals(c.GetGroup(-10), r)
296  #       self.assertRaises(TypeError, c1.GetProperties, {'monty':'python'})          self.assertEquals(c.GetGroup(9), r)
297            self.assertEquals(c.GetGroup(5), s)
298  #       #          self.assertEquals(c.GetGroup(10), c.GetDefaultGroup())
 #       # toggle field  
 #       #  
   
 #       c0.SetField(None)  
 #       self.assertEqual(c0.GetProperties(10), default0)  
 #       self.assertEqual(c0.GetProperties(11), default0)  
   
 #       c1.SetField(None)  
 #       self.assertEqual(c1.GetProperties(0), default1)  
 #       self.assertEqual(c1.GetProperties("0"), default1)  
   
 #       c0.SetField("c0")  
 #       self.assertEqual(c0.GetProperties(10), default0)  
 #       self.assertEqual(c0.GetProperties(11), default0)  
   
 #       c1.SetField("c1")  
 #       self.assertEqual(c1.GetProperties(0), "1")  
 #       self.assertEqual(c1.GetProperties("0"), "2")  
299    
300  if __name__ == "__main__":  if __name__ == "__main__":
301      unittest.main()      unittest.main()

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26