11#!/usr/bin/env python
22
3- import unittest , operator , copy , pickle
3+ import unittest , operator , copy , pickle , random
44from sets import Set , ImmutableSet
55from test import test_support
66
@@ -711,18 +711,18 @@ def setUp(self):
711711
712712class TestIdentities (unittest .TestCase ):
713713 def setUp (self ):
714- self .a = Set ('abracadabra' )
715- self .b = Set ('alacazam' )
714+ self .a = Set ([ random . randrange ( 100 ) for i in xrange ( 50 )] )
715+ self .b = Set ([ random . randrange ( 100 ) for i in xrange ( 50 )] )
716716
717717 def test_binopsVsSubsets (self ):
718718 a , b = self .a , self .b
719- self .assert_ (a - b < a )
720- self .assert_ (b - a < b )
721- self .assert_ (a & b < a )
722- self .assert_ (a & b < b )
723- self .assert_ (a | b > a )
724- self .assert_ (a | b > b )
725- self .assert_ (a ^ b < a | b )
719+ self .assert_ (a - b <= a )
720+ self .assert_ (b - a <= b )
721+ self .assert_ (a & b <= a )
722+ self .assert_ (a & b <= b )
723+ self .assert_ (a | b >= a )
724+ self .assert_ (a | b >= b )
725+ self .assert_ (a ^ b <= a | b )
726726
727727 def test_commutativity (self ):
728728 a , b = self .a , self .b
@@ -744,12 +744,19 @@ def test_summations(self):
744744 self .assertEqual ((a - b )| (b - a ), a ^ b )
745745
746746 def test_exclusion (self ):
747- # check that inverse operations show non- overlap
747+ # check that inverse operations do not overlap
748748 a , b , zero = self .a , self .b , Set ()
749749 self .assertEqual ((a - b )& b , zero )
750750 self .assertEqual ((b - a )& a , zero )
751751 self .assertEqual ((a & b )& (a ^ b ), zero )
752752
753+ def test_cardinality_relations (self ):
754+ a , b = self .a , self .b
755+ self .assertEqual (len (a ), len (a - b ) + len (a & b ))
756+ self .assertEqual (len (b ), len (b - a ) + len (a & b ))
757+ self .assertEqual (len (a ^ b ), len (a - b ) + len (b - a ))
758+ self .assertEqual (len (a | b ), len (a - b ) + len (a & b ) + len (b - a ))
759+
753760#==============================================================================
754761
755762libreftest = """
0 commit comments