def testIntersection(self): ks = KeyedSet(firstLetter, ["apple", "avocado", "banana"]) ks2 = KeyedSet(firstLetter, ["apple", "acacia", "banana", "cheese"]) more = ["apple", "cheese", "durian"] result = ks.intersection(ks2, more) self.assertEqual(result, set(["apple"])) # No side-effects self.assertEqual(ks, set(["apple", "avocado", "banana"])) self.assertEqual(ks2, set(["apple", "acacia", "banana", "cheese"])) self.assertEqual(more, ["apple", "cheese", "durian"]) # Proper key sets self.assertEqual(sorted(result.keys()), ["a"]) self.assertEqual(result.subset_by_key("a"), set(["apple"])) self.assertEqual(result.subset_by_key("b"), set()) self.assertEqual(result.subset_by_key("c"), set()) self.assertEqual(result.subset_by_key("d"), set()) # _update copy = ks.copy() copy.intersection_update(ks2, more) # No unintended side-effects self.assertEqual(ks2, set(["apple", "acacia", "banana", "cheese"])) self.assertEqual(more, ["apple", "cheese", "durian"]) 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 testIntersection(self): ks = KeyedSet(firstLetter, ["apple", "avocado", "banana"]) ks2 = KeyedSet(firstLetter, ["apple", "acacia", "banana", "cheese"]) more = ["apple", "cheese", "durian"] result = ks.intersection(ks2, more) self.assertEqual(result, set(["apple"])) # No side-effects self.assertEqual(ks, set(["apple", "avocado", "banana"])) self.assertEqual(ks2, set(["apple", "acacia", "banana", "cheese"])) self.assertEqual(more, ['apple', 'cheese', 'durian']) # Proper key sets self.assertEqual(sorted(result.keys()), ['a']) self.assertEqual(result.subset_by_key("a"), set(["apple"])) self.assertEqual(result.subset_by_key("b"), set()) self.assertEqual(result.subset_by_key("c"), set()) self.assertEqual(result.subset_by_key("d"), set()) # _update copy = ks.copy() copy.intersection_update(ks2, more) # No unintended side-effects self.assertEqual(ks2, set(["apple", "acacia", "banana", "cheese"])) self.assertEqual(more, ['apple', 'cheese', 'durian']) 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))