Ejemplo n.º 1
0
class TestBPlusTree(TestCase):
    def setUp(self) -> None:
        self.bplustree = BPlusTree()
        self.random_list = random.sample(range(1, 100), 20)
        for i in self.random_list:
            self.bplustree[i] = 'test' + str(i)
        random.shuffle(self.random_list)

    def test_query(self):
        for i in self.random_list:
            self.assertEqual(self.bplustree.query(i), 'test' + str(i))

    def test_change(self):
        self.assertTrue(self.bplustree.change(self.random_list[0], 'try'))
        self.assertEqual(self.bplustree.query(self.random_list[0]), 'try')

    def test_insert(self):
        self.bplustree.show()
        i = random.randint(1, 100)
        print('Insert ' + str(i))
        self.bplustree[i] = 'test' + str(i)
        self.bplustree.show()

    def test_delete(self):
        print(self.random_list)
        for i in self.random_list:
            print('Delete ' + str(i))
            self.bplustree.delete(i)
            self.bplustree.show()
Ejemplo n.º 2
0
def demo_bplustree():
    print('Initializing B+ tree...')
    bplustree = BPlusTree()

    print('\nB+ tree with 1 item...')
    bplustree.insert('a', 'alpha')
    bplustree.show()

    print('\nB+ tree with 2 items...')
    bplustree.insert('b', 'bravo')
    bplustree.show()

    print('\nB+ tree with 3 items...')
    bplustree.insert('c', 'charlie')
    bplustree.show()

    print('\nB+ tree with 4 items...')
    bplustree.insert('d', 'delta')
    bplustree.show()

    print('\nB+ tree with 5 items...')
    bplustree.insert('e', 'echo')
    bplustree.show()

    for i in range(20):
        print('\nB+ tree with ' + str(i + 5) + ' items...')
        bplustree.insert(str(i), 'foxtrot' + str(i))
        bplustree.show()

    print('\nRetrieving values with key e...')
    print(bplustree.query('e'))