예제 #1
0
    def test_finds_proper_node_that_holds_our_key(self):
        # k = 5 and input values 1..5
        k = 3

        tree = BTree(k)
        for i in range(1, 32):
            tree.insert(i, None)

        root = tree.get_root()

        self.assertTrue(
            8 in tree._get_next_biggest_smallest_child(3, root).keys)
        self.assertTrue(4 in tree._get_next_biggest_smallest_child(
            3, root.children[0]).keys)
        self.assertTrue(2 in tree._get_next_biggest_smallest_child(
            3, root.children[0].children[0]).keys)
        self.assertTrue(3 in tree._get_next_biggest_smallest_child(
            3, root.children[0].children[0].children[0]).keys)
예제 #2
0
    def test_pick_second_child_as_smallest(self):
        node = BNode(data=[125, 250, 375, 500])
        a = BNode([25, 50, 75, 100])
        b = BNode([150, 175, 200, 225])
        c = BNode([275, 300, 320, 350])
        d = BNode([400, 425, 450, 475])
        e = BNode([525, 550, 575, 600])
        node.add_child(a)
        node.add_child(b)
        node.add_child(c)
        node.add_child(d)
        node.add_child(e)
        k = 5
        tree = BTree(k)

        result = tree._get_next_biggest_smallest_child(128, node)

        self.assertEqual(b, result)