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