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);
            }
        }
Ejemplo n.º 4
0
        public void InsertBalanceTest()
        {
            var tree = new CompactAvlTree <int>();

            for (int i = 1; i <= 100; i++)
            {
                tree.Add(i);
                CheckBalance(tree);
            }
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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();
 }
Ejemplo n.º 8
0
        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);
        }