/[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 1907 by bh, Fri Oct 31 17:35:11 2003 UTC revision 2688 by frank, Fri Jun 30 12:27:20 2006 UTC
# Line 24  from Thuban.Model.color import Color, Tr Line 24  from Thuban.Model.color import Color, Tr
24  from Thuban.Model.classification import \  from Thuban.Model.classification import \
25      Classification, ClassGroup, \      Classification, ClassGroup, \
26      ClassGroupDefault, ClassGroupSingleton, ClassGroupRange,\      ClassGroupDefault, ClassGroupSingleton, ClassGroupRange,\
27      ClassGroupProperties      ClassGroupPattern, ClassGroupProperties
28  from Thuban.Model.messages import CLASS_CHANGED  from Thuban.Model.messages import CLASS_CHANGED
29    
30  from Thuban.Model.range import Range  from Thuban.Model.range import Range
# Line 246  class TestClassGroupSingleton(unittest.T Line 246  class TestClassGroupSingleton(unittest.T
246          self.assertEqual(group, groupCopy)          self.assertEqual(group, groupCopy)
247    
248    
249    class TestClassGroupPattern(unittest.TestCase):
250    
251        def test(self):
252            """Test ClassGroupPattern"""
253    
254            defProps = ClassGroupProperties()
255            newProps = ClassGroupProperties()
256            newProps.SetLineColor(Color(.25, .5, .75))
257            newProps.SetLineWidth(5)
258            newProps.SetFill(Color(.12, .24, .36))
259    
260            # test empty constructor
261            group = ClassGroupPattern()
262    
263            self.assertEqual(group.GetPattern(), "")
264            self.assertEqual(group.GetProperties(), defProps)
265            self.assertEqual(group.GetLabel(), "")
266    
267            # test SetProperties()/GetProperties()
268            group.SetProperties(newProps)
269            self.assertEqual(group.GetProperties(), newProps)
270    
271            # test SetPattern()
272            group.SetPattern("A")
273            self.assertEqual(group.GetPattern(), "A")
274    
275            # test Matches()
276            self.assertEqual(group.Matches("CBA"), False)
277            self.assertEqual(group.Matches("ABC"), True)
278    
279            group.SetPattern("a")
280            self.assertNotEqual(group.GetPattern(), "A")
281    
282            # test Matches()
283            self.assertEqual(group.Matches("Abc"), False)
284            self.assertEqual(group.Matches("aBC"), True)
285    
286            group.SetPattern("hallo")
287            self.assertEqual(group.GetPattern(), "hallo")
288    
289            # test Matches()
290            self.assertEqual(group.Matches("HALLO"), False)
291            self.assertEqual(group.Matches("hallo"), True)
292    
293            # test copy
294            groupCopy = copy.copy(group)
295            self.assertEqual(group, groupCopy)
296    
297    
298  class TestClassification(unittest.TestCase, support.SubscriberMixin):  class TestClassification(unittest.TestCase, support.SubscriberMixin):
299    
300      """Test cases for Classification"""      """Test cases for Classification"""
# Line 304  class TestClassification(unittest.TestCa Line 353  class TestClassification(unittest.TestCa
353          self.assertEqual(self.clazz.GetDefaultLineWidth(), 10)          self.assertEqual(self.clazz.GetDefaultLineWidth(), 10)
354          self.check_messages([(CLASS_CHANGED,)])          self.check_messages([(CLASS_CHANGED,)])
355    
356        def test_set_default_group(self):
357            """Test Classification.SetDefaultGroup()"""
358            prop = ClassGroupProperties()
359            prop.SetLineColor(blue)
360            prop.SetLineWidth(5)
361            prop.SetFill(red)
362    
363            self.clazz.SetDefaultGroup(ClassGroupDefault(prop))
364            self.assertEqual(self.clazz.GetDefaultFill(), red)
365            self.assertEqual(self.clazz.GetDefaultLineColor(), blue)
366            self.assertEqual(self.clazz.GetDefaultLineWidth(), 5)
367            self.check_messages([(CLASS_CHANGED,)])
368    
369      def test_add_singleton(self):      def test_add_singleton(self):
370          """Test Classification.AppendGroup(ClassGroupSingleton())"""          """Test Classification.AppendGroup(ClassGroupSingleton())"""
371          self.assertEquals(self.clazz.FindGroup(5),          self.assertEquals(self.clazz.FindGroup(5),
# Line 332  class TestClassification(unittest.TestCa Line 394  class TestClassification(unittest.TestCa
394          self.assertEquals(self.clazz.FindGroup(10),          self.assertEquals(self.clazz.FindGroup(10),
395                            self.clazz.GetDefaultGroup())                            self.clazz.GetDefaultGroup())
396    
397      def test_multiple_groups(self):      def test_add_pattern(self):
398          """Test Classification with multiple groups"""          """Test Classification.AppendGroup(ClassGroupPattern())"""
399            self.assertEquals(self.clazz.FindGroup(5),
400                              self.clazz.GetDefaultGroup())
401    
402            s = ClassGroupPattern("A")
403            self.clazz.AppendGroup(s)
404            self.check_messages([(CLASS_CHANGED,)])
405            self.assertEquals(self.clazz.FindGroup("A"), s)
406            self.assertEquals(self.clazz.FindGroup("B"),
407                              self.clazz.GetDefaultGroup())
408    
409        def test_multiple_groups_numerical(self):
410            """Test numerical Classification with multiple groups"""
411          # two singletons matching 1 to test whether they're tested in          # two singletons matching 1 to test whether they're tested in
412          # the right order. Use a non default fill on the second to make          # the right order. Use a non default fill on the second to make
413          # it compare unequal to the first.          # it compare unequal to the first.
# Line 363  class TestClassification(unittest.TestCa Line 437  class TestClassification(unittest.TestCa
437          self.assertEquals(self.clazz.FindGroup(10),          self.assertEquals(self.clazz.FindGroup(10),
438                            self.clazz.GetDefaultGroup())                            self.clazz.GetDefaultGroup())
439    
440      def test_deepcopy(self):      def test_multiple_groups_textual(self):
441          """Test deepcopy(Classification())"""          """Test textual Classification with multiple groups"""
442            # A singleton and a pattern matching 'A' to test whether
443            # they're tested in the right order. Use a non default fill
444            # on the pattern to make it compare unequal to the first.
445            s = ClassGroupSingleton("A")
446            p = ClassGroupPattern("A")
447            p.GetProperties().SetFill(blue)
448            # Sanity check: are they considered different?
449            self.assertNotEqual(s, p)
450    
451            self.clazz.AppendGroup(s)
452            self.clazz.AppendGroup(p)
453            self.check_messages([(CLASS_CHANGED,), (CLASS_CHANGED,)])
454    
455            self.assertEquals(self.clazz.FindGroup("bca"),
456                              self.clazz.GetDefaultGroup())
457            self.assertEquals(self.clazz.FindGroup("A"), s)
458            self.assertEquals(self.clazz.FindGroup("Abc"), p)
459            self.assertEquals(self.clazz.FindGroup("abc"),
460                              self.clazz.GetDefaultGroup())
461    
462        def test_insert_group(self):
463            """Test Classification.InsertGroup()"""
464            s1 = ClassGroupSingleton(1)
465            s2 = ClassGroupSingleton(2)
466            r = ClassGroupRange((0, 10))
467    
468            self.clazz.AppendGroup(s1)
469            self.clazz.AppendGroup(r)
470            self.assertEquals(self.clazz.FindGroup(2), r)
471            self.clear_messages()
472    
473            self.clazz.InsertGroup(1, s2)
474            self.assertEquals(self.clazz.FindGroup(2), s2)
475            self.check_messages([(CLASS_CHANGED,)])
476    
477        def test_remove_group(self):
478            """Test Classification.RemoveGroup()"""
479            s1 = ClassGroupSingleton(1)
480            s2 = ClassGroupSingleton(2)
481            r = ClassGroupRange((0, 10))
482    
483            self.clazz.AppendGroup(s1)
484            self.clazz.AppendGroup(s2)
485            self.clazz.AppendGroup(r)
486            self.assertEquals(self.clazz.FindGroup(2), s2)
487            self.clear_messages()
488    
489            self.clazz.RemoveGroup(1)
490            self.assertEquals(self.clazz.FindGroup(2), r)
491            self.check_messages([(CLASS_CHANGED,)])
492    
493        def test_replace_group(self):
494            """Test Classification.ReplaceGroup()"""
495            s1 = ClassGroupSingleton(1)
496            s2 = ClassGroupSingleton(2)
497            r = ClassGroupRange((0, 10))
498    
499            self.clazz.AppendGroup(s2)
500            self.clazz.AppendGroup(r)
501            self.assertEquals(self.clazz.FindGroup(2), s2)
502            self.assertEquals(self.clazz.FindGroup(1), r)
503            self.clear_messages()
504    
505            self.clazz.ReplaceGroup(0, s1)
506            self.assertEquals(self.clazz.FindGroup(2), r)
507            self.assertEquals(self.clazz.FindGroup(1), s1)
508            self.check_messages([(CLASS_CHANGED,)])
509    
510        def test_deepcopy_numerical(self):
511            """Test deepcopy(numerical Classification())"""
512          self.clazz.AppendGroup(ClassGroupSingleton(5))          self.clazz.AppendGroup(ClassGroupSingleton(5))
513          self.clazz.AppendGroup(ClassGroupRange((-10, 10)))          self.clazz.AppendGroup(ClassGroupRange((-10, 10)))
514    
515          clazz = copy.deepcopy(self.clazz)          clazz = copy.deepcopy(self.clazz)
516    
517            self.assertEquals(clazz.GetNumGroups(), self.clazz.GetNumGroups())
518    
519            for i in range(clazz.GetNumGroups()):
520                self.assertEquals(clazz.GetGroup(i), self.clazz.GetGroup(i))
521    
522        def test_deepcopy_textual(self):
523            """Test deepcopy(textual Classification())"""
524            self.clazz.AppendGroup(ClassGroupSingleton("A"))
525            self.clazz.AppendGroup(ClassGroupPattern("B"))
526    
527            clazz = copy.deepcopy(self.clazz)
528    
529          self.assertEquals(clazz.GetNumGroups(), self.clazz.GetNumGroups())          self.assertEquals(clazz.GetNumGroups(), self.clazz.GetNumGroups())
530    
531          for i in range(clazz.GetNumGroups()):          for i in range(clazz.GetNumGroups()):

Legend:
Removed from v.1907  
changed lines
  Added in v.2688

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26