Exemplo n.º 1
0
        public void Test_ContainsMethod_Should_Return_False_Tree_Does_Not_Contain_Given_Node()
        {
            //Given
            var tree = new BinaryTreeCollection <int>()
            {
                4,
                2,
                5
            };

            //Then
            Assert.False(tree.Contains(1));
        }
Exemplo n.º 2
0
        public void Test_FindNode_Check_That_Node_Is_Found_When_Last_Element_Is_Called()
        {
            //Given
            var tree = new BinaryTreeCollection <int>(3)
            {
                3, 5, 6
            };
            //When
            var checkNode = tree.FindNode(6);

            //Then
            Assert.Equal(new[] { 3, 5, 6 }, checkNode);
        }
Exemplo n.º 3
0
        public void Test_ContainsMethod_Should_Return_TRUE_Tree_Has_Only_3_Nodes()
        {
            //Given
            var tree = new BinaryTreeCollection <int>()
            {
                4,
                2,
                5
            };

            //Then
            Assert.True(tree.Contains(2));
        }
Exemplo n.º 4
0
        public void Test_AsReadOnly_Should_Return_False_When_List_Is_NOT_RO()
        {
            //Given
            var tree = new BinaryTreeCollection <int>
            {
                5,
                3,
                6,
            };

            //Then
            Assert.False(tree.IsReadOnly);
        }
Exemplo n.º 5
0
        public void Test_InOrderTraversal_Root_Has_1_Right_Child()
        {
            //Given
            var tree = new BinaryTreeCollection <int>()
            {
                4
            };

            //When
            tree.Add(6);
            //Then
            Assert.Equal(new[] { 4, 6 }, tree.InOrderTraversal());
        }
Exemplo n.º 6
0
        public void Test_RemoveMethod_Tree_Only_Has_Rootnode()
        {
            //Given
            var tree = new BinaryTreeCollection <int>()
            {
                4,
            };

            //When
            Assert.True(tree.Remove(4));
            //Then
            Assert.Empty(tree);
        }
Exemplo n.º 7
0
        public void Test_Remove_When_Node_IS_ROOT_And_Is_Not_Full()
        {
            //Given
            var tree = new BinaryTreeCollection <int>(5)
            {
                1,
            };

            //When
            tree.Remove(1);
            //Then
            Assert.Empty(tree);
        }
Exemplo n.º 8
0
        public void Test_AddMethod_Should_Correctly_Shift_Elements_When_Size_Is_2()
        {
            //Given
            var tree = new BinaryTreeCollection <int>(2)
            {
                2,
                0,
                3,
                4,
            };

            //Then
            Assert.Equal(new[] { 0, 2, 3, 4 }, tree.InOrderTraversal());
        }
Exemplo n.º 9
0
        public void Test_PreOrderTraversal_When_Size_Is_2_()
        {
            //Given
            var tree = new BinaryTreeCollection <int>(2)
            {
                1,
                2,
                3,
                4
            };

            //Then
            Assert.Equal(new[] { 1, 2, 3, 4 }, tree.InOrderTraversal());
        }
Exemplo n.º 10
0
        public void Test_InOrderTraversal_Root_Has_2_Children()
        {
            //Given
            var tree = new BinaryTreeCollection <int>()
            {
                4
            };

            //When
            tree.Add(2);
            tree.Add(5);
            //Then
            Assert.Equal(new[] { 2, 4, 5 }, tree.InOrderTraversal());
        }
Exemplo n.º 11
0
        public void Test_RemoveChild_Method_Remove_LEAF_When_Tree_Has_3_Nodes()
        {
            //Given
            var tree = new BinaryTreeCollection <int>
            {
                2,
                1,
                3
            };

            //Then
            Assert.True(tree.Remove(3));
            Assert.Equal(new[] { 1, 2 }, tree.InOrderTraversal());
        }
Exemplo n.º 12
0
        public void Test_AddMethod_Should_Throw_Exception_When_Value_Is_Already_In_Tree()
        {
            //Given
            var tree = new BinaryTreeCollection <int>(2)
            {
                2,
                0,
                3,
            };
            //When
            var exception = Assert.Throws <InvalidOperationException>(() => tree.Add(2));

            //Then
            Assert.Equal("Tree cannot contain duplicates! ", exception.Message);
        }
Exemplo n.º 13
0
        public void Test_AddMethod_For_Edge_Case_When_Size_Is_2()
        {
            //Given
            var tree = new BinaryTreeCollection <int>(2)
            {
                1,
                3,
                4,
                5,
                2,
            };

            //Then
            Assert.Equal(new[] { 1, 2, 3, 4, 5 }, tree.InOrderTraversal());
        }
Exemplo n.º 14
0
        public void Test_DataArray_Should_Not_Lose_Last_Element_After_Addition()
        {
            //Given
            var tree = new BinaryTreeCollection <int>(2)
            {
                1,
                2,
                3,
                4,
                5
            };

            //Then
            Assert.Equal(new[] { 1, 2, 3, 4, 5 }, tree.InOrderTraversal());
        }
Exemplo n.º 15
0
        public void Test_RemoveChild_When_Node_Is_ROOT_And_Has_2_Children()
        {
            //Given
            var tree = new BinaryTreeCollection <int>
            {
                5,
                3,
                6,
            };

            //When
            tree.Remove(5);
            //Then
            Assert.Equal(new[] { 3, 6 }, tree.InOrderTraversal());
        }
Exemplo n.º 16
0
        public void Test_RemoveChild_When_NODE_is_ROOT_and_has_only_1_child()
        {
            //Given
            var tree = new BinaryTreeCollection <int>
            {
                2,
                3,
                4,
                5
            };

            //Then
            Assert.True(tree.Remove(2));
            Assert.Equal(new[] { 3, 4, 5 }, tree.InOrderTraversal());
        }
Exemplo n.º 17
0
        public void Test_RemoveChild_When_Node_is_ROOT_and_has_Only_Left_Children()
        {
            //Given
            var tree = new BinaryTreeCollection <int>
            {
                2,
                1,
                0,
                -1
            };

            //Then
            Assert.True(tree.Remove(2));
            Assert.Equal(new[] { -1, 0, 1 }, tree.InOrderTraversal());
        }
Exemplo n.º 18
0
        public void Test_InsertChild_Should_Correctly_Add_Elements_Repeatedely_As_Left_Children()
        {
            //Given
            var tree = new BinaryTreeCollection <int>();

            //When
            tree.Add(10);
            tree.Add(9);
            tree.Add(8);
            tree.Add(7);
            tree.Add(6);
            tree.Add(5);
            //Then
            Assert.Equal(new[] { 5, 6, 7, 8, 9, 10 }, tree.InOrderTraversal());
            Assert.Equal(6, tree.Count);
        }
Exemplo n.º 19
0
        public void Test_InOrderTraversal_Unbalanced_Tree()
        {
            //Given, Whwn
            var tree = new BinaryTreeCollection <int>
            {
                4,
                3,
                2,
                0,
                -1,
                6
            };

            //Then
            Assert.Equal(new[] { -1, 0, 2, 3, 4, 6 }, tree.InOrderTraversal());
        }
Exemplo n.º 20
0
        public void Test_RemoveChild_When_Node_Has_Only_Left_Children()
        {
            //Given
            var tree = new BinaryTreeCollection <int>
            {
                6,
                4,
                2,
                1,
                3
            };

            //Then
            Assert.True(tree.Remove(4));
            Assert.Equal(new[] { 1, 2, 3, 6 }, tree.InOrderTraversal());
        }
Exemplo n.º 21
0
        public void Test_CopyTo_Should_Copy_Nodes_When_Array_Has_Enough_Capacity()
        {
            //Given
            int[] array = new int[5];
            var   tree  = new BinaryTreeCollection <int>
            {
                5,
                3,
                6,
            };

            //When
            tree.CopyTo(array, 1);
            //Then
            Assert.Equal(new[] { 0, 3, 5, 6, 0 }, array);
        }
Exemplo n.º 22
0
        public void Test_InsertChild_Should_Correctly_Add_Elements_Repeatedely_As_Right_Children()
        {
            //Given
            var tree = new BinaryTreeCollection <int>();

            //When
            tree.Add(1);
            tree.Add(2);
            tree.Add(3);
            tree.Add(4);
            tree.Add(5);
            tree.Add(6);
            //Then
            Assert.Equal(new[] { 1, 2, 3, 4, 5, 6 }, tree.InOrderTraversal());
            Assert.Equal(6, tree.Count);
        }
Exemplo n.º 23
0
        public void Test_AsReadOnly_Should_Return_True_When_List_Is_RO()
        {
            //Given
            var tree = new BinaryTreeCollection <int>
            {
                5,
                3,
                6,
            };
            //When
            var roTree = tree.AsReadOnly();

            //Then
            Assert.False(tree.IsReadOnly);
            Assert.True(roTree.IsReadOnly);
        }
Exemplo n.º 24
0
        public void Test_CopyTo_Should_Not_Copy_Nodes_When_Array_Does_Not_Have_Enough_Capacity()
        {
            //Given
            int[] array = new int[3];
            var   tree  = new BinaryTreeCollection <int>
            {
                5,
                3,
                6,
            };

            //When
            Assert.Throws <ArgumentException>(() => tree.CopyTo(array, 1));
            //Then
            Assert.Equal(new[] { 0, 0, 0 }, array);
        }
Exemplo n.º 25
0
        public void Test_Add_Method_For_Edge_Case()
        {
            //Given
            var tree = new BinaryTreeCollection <int>
            {
                5,
                2,
                6,
                4,
                3
            };

            //Then
            Assert.Equal(new[] { 6, 5, 4, 3, 2 }, tree.PostOrderTraversal());
            Assert.Equal(new[] { 2, 3, 4, 5, 6 }, tree.InOrderTraversal());
        }
Exemplo n.º 26
0
        public void Test_RemoveChild_Edge_Case()
        {
            //Given
            var tree = new BinaryTreeCollection <int>
            {
                -1,
                2,
                0,
                1,
                3
            };

            //When
            tree.Remove(2);
            //Then
            Assert.Equal(new[] { -1, 0, 1, 3 }, tree.InOrderTraversal());
        }
Exemplo n.º 27
0
        public void Test_RemoveChild_Method_Should_Return_TRUE_When_Removed_Node_Is_Left_Leaf()
        {
            //Given
            var node = new Node <int>(3);
            var tree = new BinaryTreeCollection <int>
            {
                5,
                2,
                6,
                1,
                node.FirstValue,
            };

            //Then
            Assert.True(tree.Remove(node.FirstValue));
            Assert.Equal(new[] { 1, 2, 5, 6 }, tree.InOrderTraversal());
        }
Exemplo n.º 28
0
        public void Test_RemoveChild_Method_Should_Work_Correctly_When_Node_Has_1_Child()
        {
            //Given
            var tree = new BinaryTreeCollection <int>
            {
                2,
                1,
                3,
                4,
                5,
                6
            };

            //Then
            Assert.True(tree.Remove(4));
            Assert.Equal(new[] { 1, 2, 3, 5, 6 }, tree.InOrderTraversal());
        }
Exemplo n.º 29
0
        public void Test_Clear_Method_Should_Properly_Work_for_a_random_case()
        {
            //Given
            var tree = new BinaryTreeCollection <int>
            {
                5,
                3,
                2,
                6,
                4
            };

            //When
            tree.Clear();
            //Then
            Assert.Empty(tree.InOrderTraversal());
        }
Exemplo n.º 30
0
        public void Test_InsertChild_Should_Correctly_Add_More_Children_To_Root()
        {
            //When
            var tree = new BinaryTreeCollection <int>
            {
                4,
                2,
                1,
                3,
                5,
                6
            };

            //Then
            Assert.Equal(new[] { 1, 2, 3, 4, 5, 6 }, tree.InOrderTraversal());
            Assert.Equal(6, tree.Count);
        }