public virtual void TestDelete26() { NeoDatis.Btree.IBTree tree = GetBTree(3); tree.Insert("Z", "Z"); tree.Insert("Y", "Y"); tree.Insert("X", "X"); tree.Insert("V", "V"); tree.Insert("U", "U"); tree.Insert("T", "T"); tree.Insert("S", "S"); tree.Insert("R", "R"); tree.Insert("Q", "Q"); tree.Insert("P", "P"); tree.Insert("O", "O"); tree.Insert("N", "N"); tree.Insert("M", "M"); tree.Insert("L", "L"); tree.Insert("K", "K"); tree.Insert("J", "J"); tree.Insert("G", "G"); tree.Insert("F", "F"); tree.Insert("E", "E"); tree.Insert("D", "D"); tree.Insert("C", "C"); tree.Insert("B", "B"); tree.Insert("A", "A"); AssertEquals(23, tree.GetSize()); NeoDatis.Btree.IBTreeNodeOneValuePerKey child1 = (NeoDatis.Btree.IBTreeNodeOneValuePerKey )tree.GetRoot().GetChildAt(0, false); NeoDatis.Btree.IBTreeNodeOneValuePerKey child14 = (NeoDatis.Btree.IBTreeNodeOneValuePerKey )child1.GetChildAt(3, false); AssertNotNull(child14); }
public virtual void TestSplit() { NeoDatis.Btree.IBTree tree = GetBTree(2); tree.Insert(10, "Key 10"); tree.Insert(100, "Key 100"); NeoDatis.Btree.IBTreeNodeOneValuePerKey c1 = GetBTreeNode(tree, "child 1"); NeoDatis.Btree.IBTreeNodeOneValuePerKey c2 = GetBTreeNode(tree, "child 2"); NeoDatis.Btree.IBTreeNodeOneValuePerKey node1 = (NeoDatis.Btree.IBTreeNodeOneValuePerKey )tree.GetRoot(); node1.SetChildAt(c1, 0); node1.SetChildAt(c2, 1); node1.SetNbKeys(2); node1.SetNbChildren(2); c1.SetKeyAndValueAt(1, "Key 1", 0); c1.SetKeyAndValueAt(2, "Key 2", 1); c1.SetKeyAndValueAt(3, "Key 3", 2); c1.SetNbKeys(3); AssertEquals(0, c1.GetNbChildren()); tree.Split(node1, c1, 0); AssertEquals(3, node1.GetNbKeys()); AssertEquals(3, node1.GetNbChildren()); AssertEquals(2, node1.GetKeyAndValueAt(0).GetKey()); AssertEquals(10, node1.GetKeyAndValueAt(1).GetKey()); AssertEquals(100, node1.GetKeyAndValueAt(2).GetKey()); NeoDatis.Btree.IBTreeNodeOneValuePerKey c1New = (NeoDatis.Btree.IBTreeNodeOneValuePerKey )node1.GetChildAt(0, false); AssertEquals(1, c1New.GetNbKeys()); AssertEquals(0, c1New.GetNbChildren()); AssertEquals(1, c1New.GetKeyAt(0)); AssertEquals(null, c1New.GetKeyAt(1)); AssertEquals(null, c1New.GetKeyAt(2)); AssertEquals(node1, c1New.GetParent()); NeoDatis.Btree.IBTreeNodeOneValuePerKey c1bis = (NeoDatis.Btree.IBTreeNodeOneValuePerKey )node1.GetChildAt(1, false); AssertEquals(1, c1bis.GetNbKeys()); AssertEquals(0, c1bis.GetNbChildren()); AssertEquals(3, c1bis.GetKeyAt(0)); AssertEquals(node1, c1bis.GetParent()); AssertEquals(null, c1bis.GetKeyAt(1)); AssertEquals(null, c1bis.GetKeyAt(2)); NeoDatis.Btree.IBTreeNodeOneValuePerKey c2New = (NeoDatis.Btree.IBTreeNodeOneValuePerKey )node1.GetChildAt(2, false); AssertEquals(c2, c2New); }