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)); }
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); }
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)); }
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); }
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()); }
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); }
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); }
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()); }
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()); }
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()); }
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()); }
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); }
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()); }
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()); }
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()); }
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()); }
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()); }
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); }
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()); }
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()); }
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); }
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); }
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); }
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); }
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()); }
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()); }
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()); }
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()); }
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()); }
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); }