Пример #1
0
        public void SmallRemove()
        {
            var tree = new VEBTree <string>(4);

            tree.Add(5, "asd");
            Assert.IsTrue(tree.Remove(5));
            Assert.IsFalse(tree.Remove(0));
            Assert.Throws <KeyNotFoundException>(() => Ignore(tree[5]));
        }
Пример #2
0
        public void LargeRemove()
        {
            var tree = new VEBTree <string>(4);

            tree.Add(1, "1");
            tree.Add(8, "8");
            tree.Add(2, "2");
            Assert.IsTrue(tree.Remove(2));
            CorrectnessCheck(tree, new uint[] { 1, 8 });
            tree.Add(0, "0");
            tree.Add(15, "15");
            tree.Add(12, "12");
            tree.Add(7, "7");
            tree.Add(9, "9");
            tree.Add(10, "10");
            tree.Add(11, "11");
            Assert.IsTrue(tree.Remove(15));
            // start deletion correctness check
            Assert.AreEqual("1", tree[1]);
            CorrectnessCheck(tree, new uint[] { 1, 8, 0, 12, 7, 9, 10, 11 });
            // end deletion correctness check
            Assert.IsTrue(tree.Remove(8));
            CorrectnessCheck(tree, new uint[] { 1, 0, 12, 7, 9, 10, 11 });
            Assert.IsTrue(tree.Remove(0));
            CorrectnessCheck(tree, new uint[] { 1, 12, 7, 9, 10, 11 });
            Assert.IsFalse(tree.Remove(8));
            Assert.IsTrue(tree.Remove(11));
            CorrectnessCheck(tree, new uint[] { 1, 12, 7, 9, 10 });
            Assert.IsTrue(tree.Remove(10));
            CorrectnessCheck(tree, new uint[] { 1, 12, 7, 9 });
            Assert.IsTrue(tree.Remove(9));
            CorrectnessCheck(tree, new uint[] { 1, 12, 7 });
            Assert.IsTrue(tree.Remove(12));
            CorrectnessCheck(tree, new uint[] { 1, 7 });
            Assert.Throws <KeyNotFoundException>(() => Ignore(tree[15]));
        }
Пример #3
0
        public void Count()
        {
            var tree = new VEBTree <string>(4);

            tree.Add(1, "1");
            tree.Add(8, "8");
            tree.Add(2, "2");
            Assert.IsTrue(tree.Remove(2));
            tree.Add(0, "0");
            tree.Add(15, "15");
            Assert.IsTrue(tree.Remove(0));
            tree.Add(12, "12");
            tree.Add(7, "7");
            Assert.IsTrue(tree.Remove(8));
            Assert.IsTrue(tree.Remove(12));
            tree.Add(9, "9");
            Assert.AreEqual(4, tree.Count);
        }
Пример #4
0
        public void Higher()
        {
            var tree = new VEBTree <string>(8);

            tree.Add(44, "44");
            tree.Add(200, "200");
            tree.Add(46, "46");
            tree.Add(216, "216");
            tree.Add(248, "248");
            tree.Add(188, "188");
            Assert.AreEqual(new KeyValuePair <uint, string>(188, "188"), tree.Higher(155));
            Assert.AreEqual(new KeyValuePair <uint, string>(248, "248"), tree.Higher(238));
            Assert.AreEqual(new KeyValuePair <uint, string>(188, "188"), tree.Higher(84));
            Assert.AreEqual(null, tree.Higher(248));
        }
Пример #5
0
        public void Lower()
        {
            var tree = new VEBTree <string>(8);

            tree.Add(22, "22");
            tree.Add(69, "69");
            tree.Add(248, "248");
            tree.Add(55, "55");
            tree.Add(26, "26");
            tree.Add(76, "76");
            Assert.AreEqual(null, tree.Lower(5));
            Assert.AreEqual(new KeyValuePair <uint, string>(55, "55"), tree.Lower(61));
            Assert.AreEqual(new KeyValuePair <uint, string>(248, "248"), tree.Lower(255));
            Assert.AreEqual(new KeyValuePair <uint, string>(76, "76"), tree.Lower(248));
            Assert.AreEqual(new KeyValuePair <uint, string>(76, "76"), tree.Lower(115));
            Assert.AreEqual(new KeyValuePair <uint, string>(69, "69"), tree.Lower(73));
        }
Пример #6
0
        public void FirstLast()
        {
            var tree = new VEBTree <string>(8);

            Assert.AreEqual(null, tree.First());
            Assert.AreEqual(null, tree.Last());
            tree.Add(229, "229");
            Assert.AreEqual(new KeyValuePair <uint, string>(229, "229"), tree.First());
            Assert.AreEqual(new KeyValuePair <uint, string>(229, "229"), tree.Last());
            tree.Add(216, "216");
            tree.Add(21, "21");
            tree.Add(162, "162");
            tree.Add(240, "240");
            tree.Add(95, "95");
            tree.Remove(240);
            Assert.AreEqual(new KeyValuePair <uint, string>(21, "21"), tree.First());
            Assert.AreEqual(new KeyValuePair <uint, string>(229, "229"), tree.Last());
        }
Пример #7
0
        public void Enumerator()
        {
            var tree = new VEBTree <string>(4);

            tree.Add(8, "8");
            tree.Add(15, "15");
            tree.Add(1, "1");
            tree.Add(2, "2");
            tree.Add(0, "0");
            tree.Add(3, "3");
            Assert.IsTrue(tree.Contains(new KeyValuePair <uint, string>(0, "0"), new KVPComparer()));
            Assert.IsTrue(tree.Contains(new KeyValuePair <uint, string>(1, "1"), new KVPComparer()));
            Assert.IsTrue(tree.Contains(new KeyValuePair <uint, string>(2, "2"), new KVPComparer()));
            Assert.IsTrue(tree.Contains(new KeyValuePair <uint, string>(3, "3"), new KVPComparer()));
            Assert.IsTrue(tree.Contains(new KeyValuePair <uint, string>(8, "8"), new KVPComparer()));
            Assert.IsTrue(tree.Contains(new KeyValuePair <uint, string>(15, "15"), new KVPComparer()));
            Assert.AreEqual(6, tree.Count((kvp) => true));
        }