def test_rotation_more_RedBlackTree(): db = connect("test.dbdb") db.set("kobe", "stillyoung") db.set("pavlos", "aged") db.set("rahul", "aged") db.commit() db.close() newdb = connect("test.dbdb") assert newdb.get("pavlos") == "aged" newdb.close() os.remove('test.dbdb')
def test_commit_RedBlackTree(): db = connect("test.dbdb") db.set("rahul", "aged") db.set("pavlos", "aged") db.set("kobe", "stillyoung") db.close() db = connect("test.dbdb") with raises(KeyError): db.get("pavlos") db.close() os.remove('test.dbdb')
def test_basic(): db = connect("test.dbdb") db.set(2, "aged") db.set(1, "gd") db.set(4, "stillyoung") db.set(5, "stillyoung") db.set(9, "stillyoung") db.set(3, "stillyoung") db.set(6, "stillyoung") db.set(7, "stillyoung") db.commit() db.close() newdb = connect("test.dbdb") assert newdb.get(2) == "aged" newdb.close() os.remove('test.dbdb')
def test_store_ValueRef(): ref = ValueRef() db = connect('test.dbdb') storage = db._storage ref._referent = '007' ref.store(storage) assert ref.get(storage) == '007' os.remove('test.dbdb')
def test_follow_RedBlackTree(): db = connect('test.dbdb') storage = db._storage rbtree = RedBlackTree(storage) rbtree.set('1', '2') rbtree.set('2', '3') root = rbtree._follow(rbtree._tree_ref) assert root.key == '1' os.remove('test.dbdb')
def test_insert_RedBlackTree(): db = connect('test.dbdb') storage = db._storage rbtree = RedBlackTree(storage) root = rbtree._follow(rbtree._tree_ref) value_ref = ValueRef('2') rbtree._tree_ref = rbtree._insert(root, '1', value_ref) assert rbtree._tree_ref._referent.key == '1' os.remove('test.dbdb')
def test_get_set_RedBlackTree(): db = connect('test.dbdb') storage = db._storage rbtree = RedBlackTree(storage) rbtree.set('1', 'aaa') rbtree.set('2', 'bbb') rbtree.set('3', 'ccc') assert rbtree.get('3') == 'ccc' os.remove('test.dbdb')
def test_store_refs_RedBlackNode(): ref = ValueRef() db = connect('test.dbdb') storage = db._storage ref._referent = '000' node = RedBlackNode(ValueRef(), '1', ref, ValueRef(), ValueRef()) node.store_refs(storage) assert node.value_ref.get(storage) == '000' os.remove('test.dbdb')
def test_referent_to_bytes_RedBlackNodeRef(): ref = RedBlackNodeRef() db = connect('test.dbdb') storage = db._storage referent = RedBlackNode(ValueRef(), '1', ValueRef(), ValueRef(), ValueRef()) bytes = ref.referent_to_bytes(referent) node = ref.bytes_to_referent(bytes) assert node.key == '1' os.remove('test.dbdb')
def test__find_max_RedBlackTree(): db = connect('test.dbdb') storage = db._storage rbtree = RedBlackTree(storage) rbtree.set('1', 2) rbtree.set('2', 3) rbtree.set('3', 4) root = rbtree._follow(rbtree._tree_ref) rbtree._find_max(root).key == '3' os.remove('test.dbdb')
def test_prepare_to_store_RedBlackNodeRef(): ref = RedBlackNodeRef() db = connect('test.dbdb') storage = db._storage ref._referent = RedBlackNode(ValueRef(), '1', ValueRef(), ValueRef(), ValueRef()) ref.prepare_to_store(storage) node = ref.get(storage) assert type(node) == RedBlackNode assert node.key == '1' os.remove('test.dbdb')
def test_red_black_tree(): db = connect('test.dbdb') storage = db._storage rbtree = RedBlackTree(storage) rbtree.set(13, 'aaa') rbtree.set(8, 'bbb') rbtree.set(17, 'ccc') rbtree.set(1, 'ddd') rbtree.set(11, 'eee') rbtree.set(6, 'fff') rbtree.set(15, 'ggg') rbtree.set(25, 'hhh') rbtree.set(22, 'iii') rbtree.set(27, 'jjj') root = rbtree._follow(rbtree._tree_ref) leftNode = root._follow(root.left_ref) rightNode = root._follow(root.right_ref) leftleftNode = leftNode._follow(leftNode.left_ref) leftrightNode = leftNode._follow(leftNode.right_ref) rightleftNode = rightNode._follow(rightNode.left_ref) rightrightNode = rightNode._follow(rightNode.right_ref) leftleftrightNode = leftleftNode._follow(leftleftNode.right_ref) rightrightleftNode = rightrightNode._follow(rightrightNode.left_ref) rightrightrightNode = rightrightNode._follow(rightrightNode.right_ref) q = Queue() q.put(root) q.put(leftNode) q.put(rightNode) q.put(leftleftNode) q.put(leftrightNode) q.put(rightleftNode) q.put(rightrightNode) q.put(leftleftrightNode) q.put(rightrightleftNode) q.put(rightrightrightNode) #level = 1 assert q.empty() == False node1 = q.get() assert node1.key == 13 assert node1._follow(node1.color_ref) == "black" # level = 2 node2 = q.get() assert node2.key == 8 assert node2._follow(node2.color_ref) == "red" node3 = q.get() assert node3.key == 17 assert node3._follow(node3.color_ref) == "red" # level = 3 node4 = q.get() assert node4.key == 1 assert node4._follow(node4.color_ref) == "black" node5 = q.get() assert node5.key == 11 assert node5._follow(node5.color_ref) == "black" node6 = q.get() assert node6.key == 15 assert node6._follow(node6.color_ref) == "black" node7 = q.get() assert node7.key == 25 assert node7._follow(node7.color_ref) == "black" # level = 4 node8 = q.get() assert node8.key == 6 assert node8._follow(node8.color_ref) == "red" node9 = q.get() assert node9.key == 22 assert node9._follow(node9.color_ref) == "red" node10 = q.get() assert node10.key == 27 assert node10._follow(node10.color_ref) == "red" os.remove('test.dbdb')
def test_init_RedBlackTree(): db = connect('test.dbdb') storage = db._storage tree = RedBlackTree(storage) assert type(tree) == RedBlackTree os.remove('test.dbdb')