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()
def demo(): bplustree = BPlusTree() print('read file ./partfile.txt') keys = [] with open("partfile.txt", 'rb') as reader: bplustree.readfile(reader) with open("partfile.txt", 'r') as reader: for line in reader: s = line.split(maxsplit=1) keys += [s[0]] for i in range(len(keys)): bplustree.delete(keys[i]) if i % 1000 == 0: print('Delete ' + keys[i] + ' item')
tree.insert('zi', b'35') tree.insert('zj', b'36') tree.insert('zk', b'37') tree.display() # In[5]: for key, value in tree.items(): print(key, value) # ### 2. Delete: key를 Tree에서 삭제 # * 삭제 과정에서 redistribute, merge 수행을 확인할 수 있다. # In[6]: tree.delete('j') #redistribute leaf tree.delete('n') #delete entry tree.delete('m') #merge leaf & merge parent # In[7]: tree.delete('zg') tree.display() # In[8]: tree.delete('zk') tree.display() # In[9]: