def testUnion(self): ks = KeyedSet(firstLetter, ["apple", "avocado", "banana"]) ks2 = KeyedSet(firstLetter, ["apple", "acacia"]) more = ["apple", "cheese"] result = ks.union(ks2, more) self.assertEqual(result, set(["apple", "avocado", "banana", "acacia", "cheese"])) # No side-effects self.assertEqual(ks, set(["apple", "avocado", "banana"])) self.assertEqual(ks2, set(["apple", "acacia"])) self.assertEqual(more, ["apple", "cheese"]) # Proper key sets self.assertEqual(sorted(result.keys()), ["a", "b", "c"]) self.assertEqual(result.subset_by_key("a"), set(["apple", "avocado", "acacia"])) self.assertEqual(result.subset_by_key("b"), set(["banana"])) self.assertEqual(result.subset_by_key("c"), set(["cheese"])) self.assertEqual(result.subset_by_key("d"), set()) # update copy = ks.copy() copy.update(ks2, more) # No unintended side-effects self.assertEqual(ks2, set(["apple", "acacia"])) self.assertEqual(more, ["apple", "cheese"]) self.assertEqual(result, copy) self.assertEqual(sorted(result.keys()), sorted(copy.keys())) for key in result.keys(): self.assertEqual(result.subset_by_key(key), copy.subset_by_key(key))
def testUnion(self): ks = KeyedSet(firstLetter, ["apple", "avocado", "banana"]) ks2 = KeyedSet(firstLetter, ["apple", "acacia"]) more = ['apple', 'cheese'] result = ks.union(ks2, more) self.assertEqual( result, set(["apple", "avocado", "banana", "acacia", "cheese"])) # No side-effects self.assertEqual(ks, set(["apple", "avocado", "banana"])) self.assertEqual(ks2, set(["apple", "acacia"])) self.assertEqual(more, ['apple', 'cheese']) # Proper key sets self.assertEqual(sorted(result.keys()), ['a', 'b', 'c']) self.assertEqual(result.subset_by_key("a"), set(["apple", "avocado", "acacia"])) self.assertEqual(result.subset_by_key("b"), set(["banana"])) self.assertEqual(result.subset_by_key("c"), set(["cheese"])) self.assertEqual(result.subset_by_key("d"), set()) # update copy = ks.copy() copy.update(ks2, more) # No unintended side-effects self.assertEqual(ks2, set(["apple", "acacia"])) self.assertEqual(more, ['apple', 'cheese']) self.assertEqual(result, copy) self.assertEqual(sorted(result.keys()), sorted(copy.keys())) for key in result.keys(): self.assertEqual(result.subset_by_key(key), copy.subset_by_key(key))