Example #1
0
        public void Test_InnerNode_Merge_Test()
        {
            var leftInnerNode = new InnerNode<int, int>(3);
            var leaf = new LeafNode<int, int>(3);
            leaf.Keys.Add(1);
            leaf.Values.Add(new List<int>());
            leaf.Values[0].Add(1);
            leftInnerNode.Children.Add(leaf);

            leaf = new LeafNode<int, int>(3);
            leaf.Keys.Add(2);
            leaf.Values.Add(new List<int>());
            leaf.Values[0].Add(2);
            leftInnerNode.Children.Add(leaf);

            leftInnerNode.Keys.Add(1);

            var rightInnerNode = new InnerNode<int, int>(3);
            leaf = new LeafNode<int, int>(3);
            leaf.Keys.Add(3);
            leaf.Values.Add(new List<int>());
            leaf.Values[0].Add(3);
            rightInnerNode.Children.Add(leaf);

            rightInnerNode.Keys.Add(4);

            leftInnerNode.Merge(rightInnerNode);

            Assert.AreEqual(0, rightInnerNode.Keys.Count);
            Assert.AreEqual(0, rightInnerNode.Children.Count);
            Assert.AreEqual(2, leftInnerNode.Keys.Count);
            Assert.AreEqual(3, leftInnerNode.Children.Count);
        }