Improve and expand identity tests.

This commit is contained in:
Raymond Hettinger 2003-09-21 08:14:11 +00:00
parent 41631e8f66
commit 175a6ac114
1 changed files with 18 additions and 11 deletions

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python
import unittest, operator, copy, pickle
import unittest, operator, copy, pickle, random
from sets import Set, ImmutableSet
from test import test_support
@ -711,18 +711,18 @@ class TestCopyingNested(TestCopying):
class TestIdentities(unittest.TestCase):
def setUp(self):
self.a = Set('abracadabra')
self.b = Set('alacazam')
self.a = Set([random.randrange(100) for i in xrange(50)])
self.b = Set([random.randrange(100) for i in xrange(50)])
def test_binopsVsSubsets(self):
a, b = self.a, self.b
self.assert_(a - b < a)
self.assert_(b - a < b)
self.assert_(a & b < a)
self.assert_(a & b < b)
self.assert_(a | b > a)
self.assert_(a | b > b)
self.assert_(a ^ b < a | b)
self.assert_(a - b <= a)
self.assert_(b - a <= b)
self.assert_(a & b <= a)
self.assert_(a & b <= b)
self.assert_(a | b >= a)
self.assert_(a | b >= b)
self.assert_(a ^ b <= a | b)
def test_commutativity(self):
a, b = self.a, self.b
@ -744,12 +744,19 @@ class TestIdentities(unittest.TestCase):
self.assertEqual((a-b)|(b-a), a^b)
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()
self.assertEqual((a-b)&b, zero)
self.assertEqual((b-a)&a, 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 = """