Ejemplo n.º 1
0
    def test_one_element(self):
        b = BST()
        b.append(1)
        with self.assertRaises(KeyError):
            b.append(1)

        b.remove(1)
        with self.assertRaises(AssertionError):
            b.remove(1)
Ejemplo n.º 2
0
    def test_multiple_elements(self):
        b = BST()

        for i in xrange(0, 10):
            b.append(i)

        self.assertIsNotNone(b.root)

        for i in xrange(0, 10):
            b.remove(i)

        self.assertIsNone(b.root)
Ejemplo n.º 3
0
    def with_keys(self, keys):
        length_keys = len(keys)

        b = BST()
        for key in keys:
            b.append(key)

        result_list = list(b.traverse_range(0, 0))
        self.verify_length(result_list, length_keys, 0, 0)

        for min_ in [-10, 0, 1, 2, 10, 100, 500, 998, 999, 1000, 1001, 1010]:
            for max_ in [
                    min_, min_ + 1, min_ + 2, min_ + 3, min_ + 100, min_ + 1000
            ]:

                result_list = list(b.traverse_range(min_, max_))
                self.verify_length(result_list, length_keys, min_, max_)
                prev = None
                for i in result_list:
                    if prev is None:
                        prev = i
                        continue
                    self.assertEqual(prev, i - 1)
                    prev = i
Ejemplo n.º 4
0
    def test_range_simple(self):
        b = BST()

        l = list(b.traverse_range(0, 0))
        self.assertEqual(0, len(l))

        b.append(0)

        l = list(b.traverse_range(0, 0))
        self.assertEqual(1, len(l))

        b.append(1)
        b.append(-1)

        l = list(b.traverse_range(0, 0))
        self.assertEqual(1, len(l))

        l = list(b.traverse_range(-0.1, 0.1))
        self.assertEqual(1, len(l))

        l = list(b.traverse_range(-0.1, 0))
        self.assertEqual(1, len(l))

        l = list(b.traverse_range(0, 0.1))
        self.assertEqual(1, len(l))

        l = list(b.traverse_range(-1, -1))
        self.assertEqual(1, len(l))
        l = list(b.traverse_range(-1.1, -0.9))
        self.assertEqual(1, len(l))
        l = list(b.traverse_range(-1.1, -1))
        self.assertEqual(1, len(l))
        l = list(b.traverse_range(-1, -0.9))
        self.assertEqual(1, len(l))

        l = list(b.traverse_range(1, 1))
        self.assertEqual(1, len(l))
        l = list(b.traverse_range(0.9, 1.1))
        self.assertEqual(1, len(l))
        l = list(b.traverse_range(1, 1.1))
        self.assertEqual(1, len(l))
        l = list(b.traverse_range(0.9, 1))
        self.assertEqual(1, len(l))

        l = list(b.traverse_range(0, 1))
        self.assertEqual(2, len(l))
        l = list(b.traverse_range(-0.1, 1))
        self.assertEqual(2, len(l))
        l = list(b.traverse_range(0, 1.1))
        self.assertEqual(2, len(l))
        l = list(b.traverse_range(-0.1, 1.1))
        self.assertEqual(2, len(l))

        l = list(b.traverse_range(-1, 1))
        self.assertEqual(3, len(l))
        l = list(b.traverse_range(-1.1, 1))
        self.assertEqual(3, len(l))
        l = list(b.traverse_range(-1.1, 1.1))
        self.assertEqual(3, len(l))
        l = list(b.traverse_range(-1, 1.1))
        self.assertEqual(3, len(l))

        l = list(b.traverse_range(-10.6, 1.2))
        self.assertEqual(3, len(l))