Esempio n. 1
0
        public void Should_inorder_traverse()
        {
            var tree  = new BinaryTree <int>();
            var node1 = new BinaryTreeNode <int>(3);
            var node2 = new BinaryTreeNode <int>(1);
            var node3 = new BinaryTreeNode <int>(4);
            var node4 = new BinaryTreeNode <int>(5);

            tree.Add(node1);
            tree.Add(node2);
            tree.Add(node3);
            tree.Add(node4);

            var result   = tree.InOrderTraversal <int>(x => x);
            var expected = new List <int> {
                1, 3, 4, 5
            };

            Assert.AreEqual(result, expected);
        }
Esempio n. 2
0
        public void Shoul_remove_leaf_node()
        {
            var tree  = new BinaryTree <int>();
            var node1 = new BinaryTreeNode <int>(3);
            var node2 = new BinaryTreeNode <int>(1);
            var node3 = new BinaryTreeNode <int>(4);

            tree.Add(node1);
            tree.Add(node2);
            tree.Add(node3);

            tree.Remove(4);

            Assert.AreEqual(
                tree.InOrderTraversal <int>(x => x),
                new List <int> {
                1, 3
            }
                );
        }
        public void Add_GivenTreeWithRootAndBiggerNumber_ShouldBeLocatedAsRight()
        {
            // Arrange
            var binaryTree  = new BinaryTree(new Node(100));
            var numberToAdd = 111;

            // Act
            binaryTree.Add(numberToAdd);

            // Assert
            Assert.AreEqual(numberToAdd, binaryTree.Root.Right.Value);
        }
        public void Add_GivenTree_ShouldAddTheNumber()
        {
            // Arrange

            /*
             *              100
             *          90      110
             *              95
             */
            var binaryTree = new BinaryTree(new Node(100));

            binaryTree.Add(90);
            binaryTree.Add(110);
            binaryTree.Add(95);


            // Assert
            Assert.AreEqual(90, binaryTree.Root.Left.Value);
            Assert.AreEqual(110, binaryTree.Root.Right.Value);
            Assert.AreEqual(95, binaryTree.Root.Left.Right.Value);
        }
Esempio n. 5
0
        public void Remove_Add10ElementsAndRemove4FromThese_CountIs6()
        {
            BinaryTree <int> testTree = new BinaryTree <int>();

            testTree.Add(6);
            testTree.Add(34);
            testTree.Add(24);
            testTree.Add(663);
            testTree.Add(766);
            testTree.Add(35);
            testTree.Add(68);
            testTree.Add(97);
            testTree.Add(-24);
            testTree.Add(-17);

            testTree.Remove(34);
            testTree.Remove(68);
            testTree.Remove(35);
            testTree.Remove(97);

            Assert.Equal(6, testTree.Count);
        }
Esempio n. 6
0
        public void Should_add_one_node_to_tree()
        {
            var tree = new BinaryTree <int>();

            tree.Add(new BinaryTreeNode <int>(5));

            var treeValues = tree.GetEnumerator();

            treeValues.MoveNext();

            Assert.AreEqual(1, tree.Count);
            Assert.AreEqual(5, treeValues.Current);
        }
Esempio n. 7
0
        public void Should_remove_nonleaf_node()
        {
            var tree  = new BinaryTree <int>();
            var node1 = new BinaryTreeNode <int>(8);
            var node2 = new BinaryTreeNode <int>(5);
            var node3 = new BinaryTreeNode <int>(10);
            var node4 = new BinaryTreeNode <int>(2);

            tree.Add(node1);
            tree.Add(node2);
            tree.Add(node3);
            tree.Add(node4);

            tree.Remove(5);

            Assert.AreEqual(
                tree.InOrderTraversal <int>(x => x),
                new List <int> {
                2, 8, 10
            }
                );
        }
Esempio n. 8
0
        public void Shoul_remove_root_node()
        {
            var tree  = new BinaryTree <int>();
            var node1 = new BinaryTreeNode <int>(3);

            tree.Add(node1);

            tree.Remove(3);

            Assert.AreEqual(
                tree.InOrderTraversal <int>(x => x),
                new List <int>()
                );
        }
Esempio n. 9
0
        public void GetEnumerator_AddThreeElementAnd()
        {
            BinaryTree <int> testTree = new BinaryTree <int>();

            testTree.Add(6);
            testTree.Add(34);
            testTree.Add(24);

            List <int> testList = new List <int>();

            foreach (var x in testTree)
            {
                testList.Add(x);
            }

            List <int> list = new List <int>();

            list.Add(6);
            list.Add(24);
            list.Add(34);


            Assert.Equal(testList, list);
        }
Esempio n. 10
0
        public void Delete_GivenRootWithNoSmallerValue_ShouldDeleteTheRoot()
        {
            // Arrange

            /*
             *              100                 110
             *                  110    ->
             */
            var binaryTree = new BinaryTree(new Node(100));

            binaryTree.Add(110);


            // Act
            binaryTree.Delete(100);

            // Assert
            Assert.AreEqual(110, binaryTree.Root.Value);
            Assert.IsTrue(binaryTree.Root.IsLeaf);
        }
Esempio n. 11
0
        public void AddTest_MustAddOneElement()
        {
            //arrange
            int data = 1;

            //act
            bt.Add(data);
            //assert
            Assert.AreNotEqual(null, bt.GetHead());
        }