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])); }
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])); }
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); }
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)); }
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)); }
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()); }
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)); }