/[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 369 by jonathan, Mon Jan 27 11:53:51 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
26    
27    import copy
28    
 class TestClassification(unittest.TestCase):  
29    
30      def test_classification(self):  class TestClassification(unittest.TestCase):
         """Test Classification"""  
   
         #  
         # init with no params  
         #  
         c = Classification()  
         self.assertEquals(c.field, None)  
         self.assertEquals(c.NullData, None)  
31    
32          #      def test_ClassGroupProperties(self):
33          # setField          """Test ClassGroupProperties"""
         #  
         c = Classification()  
         c.setField("Test")  
         self.assertEquals(c.field, "Test")  
         c.setField(None)  
         self.assertEquals(c.field, None)  
34    
35          #          props = ClassGroupProperties()
36          # init with field          self.assertEqual(props.GetLineColor(), Color.Black)
37          #          self.assertEqual(props.GetLineWidth(), 1)
38          c = Classification("Test")          self.assertEqual(props.GetFill(), Color.None)
39          self.assertEquals(c.field, "Test")  
40          self.assertEquals(c.NullData, None)          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])
         # addRange  
         #  
         c0 = Classification("c0")  
         self.assertRaises(ValueError, c0.addRange, 0, 0, None)  
         self.assertRaises(ValueError, c0.addRange, 10, 0, None)  
         c0.addRange(-10, 0, "1")  
         c0.addRange(0, 10, "2")  
247    
248          #      def test_classification(self):
249          # addPoint          """Test Classification"""
         #  
         c1 = Classification("c1")  
         c1.addPoint(0, "1")  
         c1.addPoint("0", "2")  
         self.assertRaises(TypeError, c1.addPoint, {'monty':'python'}, "3")  
250    
251          #          defProps = ClassGroupProperties()
252          # getProperties          red   = Color(1, 0, 0)
253          #          green = Color(0, 1, 0)
254            blue  = Color(0, 0, 1)
255    
256          self.assertEqual(c0.getProperties(-10), "1")          layer = Layer("asdf", "../Data/iceland/political.shp")
         self.assertEqual(c0.getProperties(-11), None)  
         self.assertEqual(c0.getProperties(0), "2") # min <= x < max  
         self.assertEqual(c0.getProperties(10), None)  
         self.assertEqual(c0.getProperties(11), None)  
   
         self.assertEqual(c1.getProperties(0), "1")  
         self.assertEqual(c1.getProperties("0"), "2")  
         self.assertEqual(c1.getProperties(-1), None)  
         self.assertEqual(c1.getProperties(1), None)  
         self.assertRaises(TypeError, c1.getProperties, {'monty':'python'})  
257    
258          #          #
259          # toggle field          # init with no params
260          #          #
261            c = Classification()
262          c0.setField(None)          self.assertEqual(c.GetField(), None)
263          self.assertEqual(c0.getProperties(10), None)          self.assertEqual(c.GetFieldType(), None)
264          self.assertEqual(c0.getProperties(11), None)          self.assertEqual(c.GetGroup(-1), c.GetDefaultGroup())
265    
266          c1.setField(None)          c.SetDefaultLineColor(red)
267          self.assertEqual(c1.getProperties(0), None)          self.assertEqual(c.GetDefaultLineColor(), red)
268          self.assertEqual(c1.getProperties("0"), None)          self.assertEqual(c.GetDefaultFill(), Color.None)
269    
270          c0.setField("c0")          c.SetDefaultFill(green)
271          self.assertEqual(c0.getProperties(10), None)          self.assertEqual(c.GetDefaultFill(), green)
272          self.assertEqual(c0.getProperties(11), None)          self.assertEqual(c.GetDefaultLineColor(), red)
273    
274          c1.setField("c1")          c.SetField("hallo")
275          self.assertEqual(c1.getProperties(0), "1")          self.assertEqual(c.GetField(), "hallo")
276          self.assertEqual(c1.getProperties("0"), "2")  
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            c.SetField("hallo")
287            s = ClassGroupSingleton(5)
288            c.AddGroup(s)
289            self.assertEquals(c.GetGroup(5), s)
290            self.assertEquals(c.GetGroup(0), c.GetDefaultGroup())
291    
292            r = ClassGroupRange(-10, 10)
293            c.AddGroup(r)
294            self.assertEquals(c.GetGroup(-11), c.GetDefaultGroup())
295            self.assertEquals(c.GetGroup(-10), r)
296            self.assertEquals(c.GetGroup(9), r)
297            self.assertEquals(c.GetGroup(5), s)
298            self.assertEquals(c.GetGroup(10), c.GetDefaultGroup())
299    
300  if __name__ == "__main__":  if __name__ == "__main__":
301      unittest.main()      unittest.main()

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26