public void TestRandomInsertsCompareCallCount() { var comparer1 = new CountingComparer(); var comparer2 = new CountingComparer(); var comparer4 = new CountingComparer(); var comparer5 = new CountingComparer(); var tree1 = new AvlTree <int>(comparer1); var tree2 = new CompactAvlTree <int>(comparer2); var list = new List <int>(); var set = new SortedSet <int>(comparer5); for (int i = 0; i < _data.Length; i++) { var n = _data[i]; tree1.Add(n); tree2.Add(n); set.Add(n); var index = list.BinarySearch(n, comparer4); if (index < 0) { list.Insert(~index, n); } } _output.WriteLine($"AvlTree compare calls per 10000 inserts: {comparer1.Count}"); _output.WriteLine($"CompactAvlTree compare calls per 10000 inserts: {comparer2.Count}"); _output.WriteLine($"List compare calls per 10000 inserts: {comparer4.Count}"); _output.WriteLine($"SortedSet (Red-Black tree) compare calls per 10000 inserts: {comparer5.Count}"); Assert.True(comparer1.Count > 0); Assert.True(comparer2.Count > 0); Assert.True(comparer4.Count > 0); Assert.True(comparer5.Count > 0); }
public void GlobalSetup() { var random = new Random(Seed); var set = new HashSet <int>(Count); _data = new int[Count]; _tree = new AvlTree <int>(); _compactTree = new CompactAvlTree <int>(); _list = new List <int>(); _set = new SortedSet <int>(); for (int i = 0; i < Count; i++) { int number; do { number = random.Next(MaxNumber) | 1; } while (!set.Add(number)); _data[i] = number; var num1 = number + 1; _tree.Add(num1); _compactTree.Add(num1); _set.Add(num1); _list.Add(num1); } _list.Sort(); }
public void TestCompactAvlTree() { var tree = new CompactAvlTree <decimal>(); for (int i = 0; i < _data.Length; i++) { var number = _data[i]; tree.Add(number); } }
public void InsertBalanceTest() { var tree = new CompactAvlTree <int>(); for (int i = 1; i <= 100; i++) { tree.Add(i); CheckBalance(tree); } }
public void DeleteBalanceTest() { var tree = new CompactAvlTree <int>(); for (int i = 1; i <= 100; i++) { tree.Add(i); } for (int i = 1; i <= 100; i++) { tree.Remove(i); CheckBalance(tree); } }
public void TestDelete() { var tree = new CompactAvlTree <int>(); for (int i = 1; i <= 100; i++) { tree.Add(i); } Assert.False(tree.Remove(1000)); for (int i = 1; i <= 100; i++) { Assert.True(tree.Remove(i)); } }
public void IterationSetup() { _tree = new AvlTree <decimal>(); _compactTree = new CompactAvlTree <decimal>(); _list = new List <decimal>(); _set = new SortedSet <decimal>(); for (int i = 0; i < _data.Length; i++) { var number = _data[i]; _tree.Add(number); _compactTree.Add(number); _set.Add(number); _list.Add(number); } _list.Sort(); }
public void CopyToArrayTest() { var tree = new CompactAvlTree <int>(); var src = new int[100]; for (int i = 0; i < src.Length; i++) { src[i] = i + 1; tree.Add(i + 1); } var dest = new int[100]; tree.CopyTo(dest, 0); Assert.Equal(src, dest); }