def test_comparisons(self): all_pls = cont.Set(key='ProgrammingLanguages') my_pls = cont.Set(key='MyPLs') o_pls = cont.Set(key='OPLs') all_pls.add('Python') all_pls.add('Ruby') all_pls.add('PHP') all_pls.add('Lua') all_pls.add('Java') all_pls.add('Pascal') all_pls.add('C') all_pls.add('C++') all_pls.add('Haskell') all_pls.add('C#') all_pls.add('Go') my_pls.add('Ruby') my_pls.add('Python') my_pls.add('Lua') my_pls.add('Haskell') o_pls.add('Ruby') o_pls.add('Python') o_pls.add('Lua') o_pls.add('Haskell') # equality self.assertNotEqual(my_pls, all_pls) self.assertEqual(o_pls, my_pls) fruits = cont.Set(key='fruits') fruits.add('apples') fruits.add('oranges') # disjoint self.assertTrue(fruits.isdisjoint(o_pls)) self.assertFalse(all_pls.isdisjoint(o_pls)) # subset self.assertTrue(my_pls < all_pls) self.assertTrue(all_pls > my_pls) self.assertTrue(o_pls >= my_pls) self.assertTrue(o_pls <= my_pls) self.assertTrue(my_pls.issubset(all_pls)) self.assertTrue(my_pls.issubset(o_pls)) self.assertTrue(o_pls.issubset(my_pls)) # union s = fruits.union("fruits|mypls", my_pls) self.assertEqual( set(['Ruby', 'Python', 'Lua', 'Haskell', 'apples', 'oranges']), s.members) # intersection inter = fruits.intersection('fruits&mypls', my_pls) self.assertEqual(set([]), inter.members) # difference s = fruits.difference('fruits-my_pls', my_pls) self.assertEqual(set(['apples', 'oranges']), s.members)
def test_common_operations(self): fruits = cont.Set(key='fruits') fruits.add('apples') fruits.add('oranges') self.assertEqual(set(['apples', 'oranges']), fruits.all()) # remove fruits.discard('apples') self.assertEqual(set(['oranges']), fruits.all()) self.assertRaises(KeyError, fruits.remove, 'apples') # in self.assertTrue('oranges' in fruits) self.assertTrue('apples' not in fruits) # len self.assertEqual(1, len(fruits)) # pop self.assertEqual('oranges', fruits.pop()) # copy fruits.add('apples') fruits.add('oranges') basket = fruits.copy('basket') self.assertEqual(set(['apples', 'oranges']), basket.all()) # update o = cont.Set('o', self.client) o.add('kiwis') fruits.update(o) self.assertEqual(set(['kiwis', 'apples', 'oranges']), fruits.all())
def test_sunion(self): abc = cont.Set("abc") def_ = cont.Set("def") abc.add('a') abc.add('b') abc.add('c') def_.add('d') def_.add('e') def_.add('f') self.assertEqual(set(['a', 'b', 'c', 'd', 'e', 'f']), abc.sunion(def_))
def test_susdiff(self): abc = cont.Set("abc") def_ = cont.Set("def") abc.add('a') abc.add('b') abc.add('c') def_.add('c') def_.add('b') def_.add('f') self.assertEqual(set(['a',]), abc.sdiff(def_))
def test_sinter(self): abc = cont.Set("abc") def_ = cont.Set("def") abc.add('a') abc.add('b') abc.add('c') def_.add('d') def_.add('e') def_.add('f') self.assertEqual(set([]), abc.sinter(def_)) def_.add('b') def_.add('c') self.assertEqual(set(['b', 'c']), abc.sinter(def_))
def test_methods_that_should_return_new_sets(self): abc = cont.Set('abc', self.client) for c in 'abc': abc.add(c) def_ = cont.Set('def', self.client) for c in 'def': def_.add(c) # new_key as a set should raise error # only strings are allowed as keys new_set = cont.Set('new_set') self.assertRaises(ValueError, abc.union, new_set, def_) self.assertRaises(ValueError, abc.difference, new_set, def_) self.assertRaises(ValueError, abc.intersection, new_set, def_) self.assert_(isinstance(abc.union('new_set', def_), cont.Set)) self.assert_(isinstance(abc.intersection('new_set', def_), cont.Set)) self.assert_(isinstance(abc.difference('new_set', def_), cont.Set))
def test_operations_with_updates(self): abc = cont.Set('abc', self.client) for c in 'abc': abc.add(c) def_ = cont.Set('def', self.client) for c in 'def': def_.add(c) # __ior__ abc |= def_ self.assertEqual(set(['a', 'b', 'c', 'd', 'e', 'f']), abc.all()) abc &= def_ self.assertEqual(set(['d', 'e', 'f']), abc.all()) for c in 'abc': abc.add(c) abc -= def_ self.assertEqual(set(['a', 'b', 'c']), abc.all())
def test_common_operations(self): fruits = cont.Set(key='fruits') fruits.add('apples') fruits.add('oranges') fruits.add('bananas', 'tomatoes') fruits.add(['strawberries', 'blackberries']) self.assertEqual( set([ 'apples', 'oranges', 'bananas', 'tomatoes', 'strawberries', 'blackberries' ]), fruits.all()) # remove fruits.remove('apples') fruits.remove('bananas', 'blackberries') fruits.remove(['tomatoes', 'strawberries']) self.assertEqual(set(['oranges']), fruits.all()) # in self.assertTrue('oranges' in fruits) self.assertTrue('apples' not in fruits) # len self.assertEqual(1, len(fruits)) # pop self.assertEqual('oranges', fruits.pop()) # copy fruits.add('apples') fruits.add('oranges') basket = fruits.copy('basket') self.assertEqual(set(['apples', 'oranges']), basket.all()) # update o = cont.Set('o', self.client) o.add('kiwis') fruits.update(o) self.assertEqual(set(['kiwis', 'apples', 'oranges']), fruits.all())
def test_access_redis_methods(self): s = cont.Set('new_set') s.sadd('a') s.sadd('b') s.srem('b') self.assertEqual('a', s.spop()) s.sadd('a') self.assert_('a' in s.members) s.sadd('b') self.assertEqual(2, s.scard()) self.assert_(s.sismember('a')) self.client.sadd('other_set', 'a') self.client.sadd('other_set', 'b') self.client.sadd('other_set', 'c') self.assert_(s.srandmember() in set(['a', 'b']))
def __init__(self, db=0): self.desk_pool = containers.Set(self.POOL_KEY, db=db)