public void WeissTest() { tree = new SplayTree <int>(); const int NUMS = 40000; const int GAP = 307; for (int i = GAP; i != 0; i = (i + GAP) % NUMS) { tree.Add(i); } for (int i = 1; i < NUMS; i += 2) { tree.Remove(i); } Assert.AreEqual(2, tree.Minimum); Assert.AreEqual(NUMS - 2, tree.Maximum); for (int i = 2; i < NUMS; i += 2) { Assert.IsTrue(tree.Contains(i)); } for (int i = 1; i < NUMS; i += 2) { Assert.IsFalse(tree.Contains(i)); } }
public void ConstructFromEnumerable() { int[] array = new int[] { 41, 92, 71, 12, 20 }; tree = new SplayTree <int>(array); Assert.AreEqual(array.Length, tree.Count); foreach (int item in array) { Assert.IsTrue(tree.Contains(item)); } }
public void SplitKeepTest() { tree = new SplayTree <int> { 5, 11, 8, 13, 3, 7, 12 }; SplayTree <int> leftover = tree.SplitAt(11, true); Assert.AreEqual(5, tree.Count); Assert.AreEqual(2, leftover.Count); Assert.IsTrue(tree.Contains(3)); Assert.IsTrue(tree.Contains(5)); Assert.IsTrue(tree.Contains(7)); Assert.IsTrue(tree.Contains(8)); Assert.IsTrue(tree.Contains(11)); Assert.IsFalse(tree.Contains(12)); Assert.IsFalse(tree.Contains(13)); Assert.IsTrue(leftover.Contains(12)); Assert.IsTrue(leftover.Contains(13)); }
public void RootTest() { tree = new SplayTree <int> { 5, 3, 7 }; Assert.IsTrue(tree.Contains(5)); Assert.AreEqual(5, tree.Root); Assert.AreEqual(7, tree.Right); Assert.AreEqual(3, tree.Minimum); Assert.AreEqual(7, tree.Maximum); }
public void MergeTest() { tree = new SplayTree <int> { 5, 3, 7, 12 }; SplayTree <int> tree2 = new SplayTree <int> { 11, 8, 13 }; tree.Merge(7, tree2); Assert.AreEqual(6, tree.Count); Assert.AreEqual(0, tree2.Count); Assert.IsTrue(tree.Contains(3)); Assert.IsTrue(tree.Contains(5)); Assert.IsTrue(tree.Contains(7)); Assert.IsTrue(tree.Contains(8)); Assert.IsTrue(tree.Contains(11)); Assert.IsFalse(tree.Contains(12)); Assert.IsTrue(tree.Contains(13)); }
public bool Contains(KeyValuePair <K, V> item) { return(tree.Contains(item)); }