Exemplo n.º 1
0
        public void TestDeleteInLeaf()
        {
            var store = new Store();
            var btree = new PersistentBTree <IntData>(store.GetNextObjectId(), 3, store);

            btree.Insert(1, null);
            btree.Insert(3, null);
            btree.Insert(4, null);
            btree.Insert(2, null);
            btree.Insert(5, null);

            btree.Delete(2);

            Assert.IsNull(btree.Lookup(2));
            AssertOrderInList(InOrderTraversal(btree));
        }
Exemplo n.º 2
0
        public void TestDeleteInLeafWithRightSiblingBorrow()
        {
            var store = new Store();
            var btree = new PersistentBTree <IntData>(store.GetNextObjectId(), 3, store);

            btree.Insert(1, null);
            btree.Insert(2, null);
            btree.Insert(3, null);
            btree.Insert(4, null);

            Assert.IsNotNull(btree.Lookup(1));

            btree.Delete(1);

            Assert.IsNull(btree.Lookup(1));
            AssertOrderInList(InOrderTraversal(btree));

            Assert.AreEqual(3ul, btree.Root.Keys[0].Key);
            Assert.AreEqual(2ul, btree.LoadNode(btree.Root.ChildNodes[0]).Keys[0].Key);
            Assert.AreEqual(4ul, btree.LoadNode(btree.Root.ChildNodes[1]).Keys[0].Key);
        }