Example #1
0
 public void EmptyTree23Finds()
 {
     var t = new AbTree<int>(2, 3);
     Assert.AreEqual(t.Contains(0), false);
     Assert.AreEqual(t.Contains(1), false);
     Assert.AreEqual(t.Contains(1000), false);
     Assert.AreEqual(t.Contains(-1), false);
     Assert.AreEqual(t.Contains(-1000), false);
 }
Example #2
0
        public void Tree23DeleteFromEmpty()
        {
            var t = new AbTree<int>(2, 4);
            t.Delete(500);

            Assert.AreEqual(t.Contains(500), false);

            Assert.AreEqual(0, t.Count);
            Assert.AreEqual(0, t.NodesCount);
        }
Example #3
0
        public void Tree23FirstSplitRoot()
        {
            var t = new AbTree<int>(2, 3);
            t.Insert(1000);
            t.Insert(500);
            t.Insert(1);

            Assert.AreEqual(t.Contains(1), true);
            Assert.AreEqual(t.Contains(500), true);
            Assert.AreEqual(t.Contains(1000), true);

            //Assert.AreEqual(t.Root, t.Root.Children[0].Parent);

            Assert.AreEqual(1, t.Root.Keys.Count);
            Assert.AreEqual(3, t.NodesCount);
            Assert.AreEqual(3, t.Count);
        }
Example #4
0
        public void Tree23SimpleAddBelowRoot()
        {
            var t = new AbTree<int>(2, 3);
            t.Insert(1000);
            t.Insert(500);
            t.Insert(1);
            t.Insert(0);
            t.Insert(2000);

            Assert.AreEqual(t.Contains(0), true);
            Assert.AreEqual(t.Contains(1), true);
            Assert.AreEqual(t.Contains(500), true);
            Assert.AreEqual(t.Contains(1000), true);
            Assert.AreEqual(t.Contains(2000), true);

            //Assert.AreEqual(t.Root, t.Root.Children[0].Parent);
            //Assert.AreEqual(t.Root, t.Root.Children[1].Parent);

            Assert.AreEqual(5, t.Count);
            Assert.AreEqual(1, t.Root.Keys.Count);
            Assert.AreEqual(3, t.NodesCount);
        }
Example #5
0
        public void Tree23SimpleDelete()
        {
            var t = new AbTree<int>(2, 4);
            t.Insert(1000);
            t.Insert(500);
            t.Delete(1000);
            t.Delete(500);

            Assert.AreEqual(t.Contains(500), false);
            Assert.AreEqual(t.Contains(1000), false);

            Assert.AreEqual(0, t.Count);
            Assert.AreEqual(null, t.Root);
            Assert.AreEqual(0, t.NodesCount);
        }
Example #6
0
        public void Tree24SplitLeftRightRoot()
        {
            var t = new AbTree<int>(2, 4);
            t.Insert(1000);
            t.Insert(500);
            t.Insert(1);
            t.Insert(0);
            t.Insert(2000);
            t.Insert(-1);
            t.Insert(5000);

            Assert.AreEqual(t.Contains(-1), true);
            Assert.AreEqual(t.Contains(0), true);
            Assert.AreEqual(t.Contains(1), true);
            Assert.AreEqual(t.Contains(500), true);
            Assert.AreEqual(t.Contains(1000), true);
            Assert.AreEqual(t.Contains(2000), true);
            Assert.AreEqual(t.Contains(5000), true);

            Assert.AreEqual(7, t.Count);
            Assert.AreEqual(1, t.Root.Keys.Count);
            Assert.AreEqual(3, t.NodesCount);
        }
Example #7
0
        public void Tree24FullRoot()
        {
            var t = new AbTree<int>(2, 4);
            t.Insert(1000);
            t.Insert(500);
            t.Insert(1);
            Assert.AreEqual(3, t.Count);

            Assert.AreEqual(t.Contains(1), true);
            Assert.AreEqual(t.Contains(500), true);
            Assert.AreEqual(t.Contains(1000), true);

            Assert.IsTrue(t.Root.Keys[0] < t.Root.Keys[1]);
            Assert.IsTrue(t.Root.Keys[1] < t.Root.Keys[2]);

            Assert.AreEqual(1, t.NodesCount);
        }
Example #8
0
        public void Tree23SplitTwiceLeft()
        {
            var t = new AbTree<int>(2, 3);
            t.Insert(1000);
            t.Insert(500);
            t.Insert(1);
            t.Insert(0);
            t.Insert(2000);
            t.Insert(-1);

            Assert.AreEqual(t.Contains(-1), true);
            Assert.AreEqual(t.Contains(0), true);
            Assert.AreEqual(t.Contains(1), true);
            Assert.AreEqual(t.Contains(500), true);
            Assert.AreEqual(t.Contains(1000), true);
            Assert.AreEqual(t.Contains(2000), true);

            //Assert.AreEqual(t.Root, t.Root.Children[0].Parent);
            //Assert.AreEqual(t.Root, t.Root.Children[1].Parent);
            //Assert.AreEqual(t.Root, t.Root.Children[2].Parent);

            Assert.AreEqual(6, t.Count);
            Assert.AreEqual(2, t.Root.Keys.Count);
            Assert.AreEqual(4, t.NodesCount);
        }
Example #9
0
        public void Tree23SimpleInsert()
        {
            var t = new AbTree<int>(2, 3);
            t.Insert(1000);
            t.Insert(1);
            Assert.AreEqual(2, t.Count);

            Assert.AreEqual(t.Contains(0), false);
            Assert.AreEqual(t.Contains(1), true);
            Assert.AreEqual(t.Contains(1000), true);
            Assert.AreEqual(t.Contains(-1), false);
            Assert.AreEqual(t.Contains(-1000), false);

            Assert.IsTrue(t.Root.Keys[0] < t.Root.Keys[1]);
        }
Example #10
0
        public void Tree23SimpleDeleteMergeRight()
        {
            var t = new AbTree<int>(2, 3);
            t.Insert(100);
            t.Insert(50);
            t.Insert(1000);
            t.Delete(50);

            Assert.AreEqual(t.Contains(50), false);
            Assert.AreEqual(t.Contains(100), true);
            Assert.AreEqual(t.Contains(1000), true);

            Assert.AreEqual(2, t.Count);
            Assert.AreEqual(2, t.Root.Keys.Count);
            Assert.AreEqual(1, t.NodesCount);
        }
Example #11
0
        public void Tree23SimpleDeleteBorrowMergePurgeRight()
        {
            var t = new AbTree<int>(2, 3);
            t.Insert(100);
            t.Insert(50);
            t.Insert(1000);
            t.Insert(2000);
            t.Delete(50);
            t.Delete(1000);
            t.Delete(100);
            t.Delete(2000);

            Assert.AreEqual(t.Contains(50), false);
            Assert.AreEqual(t.Contains(100), false);
            Assert.AreEqual(t.Contains(1000), false);
            Assert.AreEqual(t.Contains(2000), false);

            Assert.AreEqual(0, t.Count);
            Assert.AreEqual(null, t.Root);
            Assert.AreEqual(0, t.NodesCount);
        }
Example #12
0
        public void Tree23SimpleDeleteBorrowLeft()
        {
            var t = new AbTree<int>(2, 3);
            t.Insert(100);
            t.Insert(50);
            t.Insert(25);
            t.Insert(0);
            t.Delete(100);

            Assert.AreEqual(t.Contains(25), true);
            Assert.AreEqual(t.Contains(50), true);
            Assert.AreEqual(t.Contains(100), false);
            Assert.AreEqual(t.Contains(0), true);

            Assert.AreEqual(3, t.Count);
            Assert.AreEqual(1, t.Root.Keys.Count);
            Assert.AreEqual(3, t.NodesCount);
            Assert.IsFalse(t.Root.Children[1].IsUnderflowing);
        }
Example #13
0
 public void EmptyTree23()
 {
     var t = new AbTree<int>(2, 3);
     Assert.AreEqual(0, t.Count);
 }