Пример #1
0
        public void Should_Check_InOrder_Traversal()
        {
            //arrange
            var tree = new MyBinarySearchTree <int>();

            tree.Insert(38);
            tree.Insert(5);
            tree.Insert(45);
            tree.Insert(1);
            tree.Insert(9);
            tree.Insert(47);
            tree.Insert(8);
            tree.Insert(15);
            tree.Insert(46);
            tree.Insert(13);

            var inOrderTraversal = new int[] { 1, 5, 8, 9, 13, 15, 38, 45, 46, 47 };

            //act
            var result = tree.InOrderTraversal().ToArray();

            //assert
            tree.Count.ShouldBeEquivalentTo(10);

            inOrderTraversal.Length.ShouldBeEquivalentTo(result.Length);
            for (int i = 0; i < inOrderTraversal.Length; i++)
            {
                inOrderTraversal[i].ShouldBeEquivalentTo(result[i]);
            }
        }
Пример #2
0
        public void Should_Check_InOrder_Traversal_Empty()
        {
            //arrange
            var tree             = new MyBinarySearchTree <int>();
            var inOrderTraversal = new int[] { };

            //act
            var result = tree.InOrderTraversal().ToArray();

            //assert
            tree.Count.ShouldBeEquivalentTo(0);
            inOrderTraversal.Length.ShouldBeEquivalentTo(result.Length);
        }
Пример #3
0
        public void BSTSequences_Should_Check_Complex()
        {
            //arrange
            var tree = new MyBinarySearchTree <int>();

            tree.Insert(10);
            tree.Insert(6);
            tree.Insert(15);
            tree.Insert(4);
            tree.Insert(8);
            tree.Insert(13);
            tree.Insert(17);
            tree.Insert(3);
            tree.Insert(5);
            tree.Insert(7);
            tree.Insert(14);
            tree.Insert(2);

            //act
            var result = _treesGraphs.BSTSequences(tree);

            //assert
            var inOrderTraversal = tree.InOrderTraversal().ToList();

            foreach (var item in result)
            {
                var tempTree = new MyBinarySearchTree <int>();
                foreach (var value in item)
                {
                    tempTree.Insert(value);
                }

                var tempTraversal = tempTree.InOrderTraversal().ToList();
                tempTraversal.Count.ShouldBeEquivalentTo(inOrderTraversal.Count);

                for (int i = 0; i < tempTraversal.Count; i++)
                {
                    tempTraversal[i].ShouldBeEquivalentTo(inOrderTraversal[i]);
                }
            }
        }