Пример #1
0
        public void BinaryTreeUnbalancedIndexAccess1()
        {
            UnbalancedBinaryTree <int, int> tree = new UnbalancedBinaryTree <int, int>();
            List <int> inputs = Enumerable.Range(1, 10).ToList();

            this.TestOrderPreservationOnInsertStructs <IBinaryTreeNode <int, int>, int>(inputs, tree);

            for (int i = 0; i < 10; i++)
            {
                Assert.AreEqual(i + 1, tree.GetValueAt(i));
            }

            // Swap the values using index access
            for (int i = 0, j = 9; i < j; i++, j--)
            {
                int temp = tree.GetValueAt(i);
                tree.SetValueAt(i, tree.GetValueAt(j));
                tree.SetValueAt(j, temp);
            }

            TestTools.PrintEnumerableStruct(tree.Values, ",");
            for (int i = 0; i < 10; i++)
            {
                Assert.AreEqual(10 - i, tree.GetValueAt(i));
            }
        }
Пример #2
0
        public void BinaryTreeUnbalancedIndexAccess2()
        {
            UnbalancedBinaryTree <int, int> tree = new UnbalancedBinaryTree <int, int>();
            List <int> inputs = Enumerable.Range(1, 10).ToList();

            this.TestOrderPreservationOnInsertStructs <IBinaryTreeNode <int, int>, int>(inputs, tree);

            for (int i = 0; i < 10; i++)
            {
                Assert.AreEqual(i + 1, tree.GetValueAt(i));
            }

            // Remove values in random order
            while (tree.Root != null)
            {
                int index = this._rnd.Next(tree.Root.Size);
                tree.RemoveAt(index);
                inputs.RemoveAt(index);
                this.TestOrderStructs(inputs, tree.Keys.ToList());
            }
        }