/[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 1910 by bh, Fri Oct 31 18:16:46 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 345  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 376  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_multiple_groups_textual(self):
441            """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):      def test_insert_group(self):
463          """Test Classification.InsertGroup()"""          """Test Classification.InsertGroup()"""
464          s1 = ClassGroupSingleton(1)          s1 = ClassGroupSingleton(1)
# Line 424  class TestClassification(unittest.TestCa Line 507  class TestClassification(unittest.TestCa
507          self.assertEquals(self.clazz.FindGroup(1), s1)          self.assertEquals(self.clazz.FindGroup(1), s1)
508          self.check_messages([(CLASS_CHANGED,)])          self.check_messages([(CLASS_CHANGED,)])
509    
510      def test_deepcopy(self):      def test_deepcopy_numerical(self):
511          """Test deepcopy(Classification())"""          """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.1910  
changed lines
  Added in v.2688

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26