示例#1
0
    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))
示例#2
0
    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))