Commit 05d741eb authored by Raymond Hettinger's avatar Raymond Hettinger

Improve and expand identity tests.

parent aac398c3
#!/usr/bin/env python #!/usr/bin/env python
import unittest, operator, copy, pickle import unittest, operator, copy, pickle, random
from sets import Set, ImmutableSet from sets import Set, ImmutableSet
from test import test_support from test import test_support
...@@ -711,18 +711,18 @@ class TestCopyingNested(TestCopying): ...@@ -711,18 +711,18 @@ class TestCopyingNested(TestCopying):
class TestIdentities(unittest.TestCase): class TestIdentities(unittest.TestCase):
def setUp(self): def setUp(self):
self.a = Set('abracadabra') self.a = Set([random.randrange(100) for i in xrange(50)])
self.b = Set('alacazam') self.b = Set([random.randrange(100) for i in xrange(50)])
def test_binopsVsSubsets(self): def test_binopsVsSubsets(self):
a, b = self.a, self.b a, b = self.a, self.b
self.assert_(a - b < a) self.assert_(a - b <= a)
self.assert_(b - a < b) self.assert_(b - a <= b)
self.assert_(a & b < a) self.assert_(a & b <= a)
self.assert_(a & b < b) self.assert_(a & b <= b)
self.assert_(a | b > a) self.assert_(a | b >= a)
self.assert_(a | b > b) self.assert_(a | b >= b)
self.assert_(a ^ b < a | b) self.assert_(a ^ b <= a | b)
def test_commutativity(self): def test_commutativity(self):
a, b = self.a, self.b a, b = self.a, self.b
...@@ -744,12 +744,19 @@ class TestIdentities(unittest.TestCase): ...@@ -744,12 +744,19 @@ class TestIdentities(unittest.TestCase):
self.assertEqual((a-b)|(b-a), a^b) self.assertEqual((a-b)|(b-a), a^b)
def test_exclusion(self): def test_exclusion(self):
# check that inverse operations show non-overlap # check that inverse operations do not overlap
a, b, zero = self.a, self.b, Set() a, b, zero = self.a, self.b, Set()
self.assertEqual((a-b)&b, zero) self.assertEqual((a-b)&b, zero)
self.assertEqual((b-a)&a, zero) self.assertEqual((b-a)&a, zero)
self.assertEqual((a&b)&(a^b), zero) self.assertEqual((a&b)&(a^b), zero)
def test_cardinality_relations(self):
a, b = self.a, self.b
self.assertEqual(len(a), len(a-b) + len(a&b))
self.assertEqual(len(b), len(b-a) + len(a&b))
self.assertEqual(len(a^b), len(a-b) + len(b-a))
self.assertEqual(len(a|b), len(a-b) + len(a&b) + len(b-a))
#============================================================================== #==============================================================================
libreftest = """ libreftest = """
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment