示例#1
0
        public void AreSameTreesTests(object[] tree1Nodes, object[] tree2Nodes, bool expectedAreSameTrees)
        {
            // arrange
            var root1 = TreeNode.Build(tree1Nodes);
            var root2 = TreeNode.Build(tree2Nodes);

            // act
            bool areSame = SameTree.IsSameTree(root1, root2);

            // assert
            Assert.AreEqual(expectedAreSameTrees, areSame, $"Tree1: { root1 } and Tree2: {root2} failed when compared");
        }
示例#2
0
        public void TestSameTree()
        {
            var t1 = Build1();
            var t2 = Build1();
            var r  = SameTree.IsSame(t1, t2);

            Assert.AreEqual(r, true);


            t1 = Build2();
            t2 = Build3();
            r  = SameTree.IsSame(t1, t2);
            Assert.AreEqual(r, false);
        }
示例#3
0
        public void SimilarTreeResultsInSucessForIterativeImplementation()
        {
            var treeNode1 = new TreeNode(1);
            var treeNode2 = new TreeNode(2);
            var treeNode3 = new TreeNode(3);

            treeNode1.Left  = treeNode2;
            treeNode1.Right = treeNode3;



            var result = new SameTree().IsSameTreeIterative(treeNode1, treeNode1);

            Assert.IsTrue(result);
        }
示例#4
0
        public void DisimilarTreeResultsInSuccessForIterativeImplementation()
        {
            var treeNode1A = new TreeNode(1);
            var treeNode2A = new TreeNode(2);

            treeNode1A.Left = treeNode2A;

            var treeNode1B = new TreeNode(1);
            var treeNode2B = new TreeNode(2);

            treeNode1B.Right = treeNode2B;



            var result = new SameTree().IsSameTreeIterative(treeNode1A, treeNode1B);

            Assert.IsFalse(result);
        }
示例#5
0
        public void SameTreeTestMethod()
        {
            SameTree sameTree = new SameTree();
            TreeNode root     = new TreeNode(1)
            {
                left  = new TreeNode(2),
                right = new TreeNode(3)
            };


            TreeNode root1 = new TreeNode(1)
            {
                left  = new TreeNode(2),
                right = new TreeNode(3)
            };

            Assert.AreEqual(true, sameTree.IsSameTree(root, root1));
        }
示例#6
0
        public void SameTree()
        {
            TreeNode tree = new TreeNode(1);

            tree.left  = new TreeNode(2);
            tree.right = new TreeNode(3);
            // tree.left.left = new TreeNode(4);
            // tree.left.right = new TreeNode(5);

            TreeNode tree2 = new TreeNode(1);

            tree2.left  = new TreeNode(2);
            tree2.right = new TreeNode(3);
            //tree2.left.left = new TreeNode(4);
            // tree2.left.right = new TreeNode(5);

            SameTree SameTree = new SameTree();
            var      answer   = SameTree.IsSameTree(tree, tree2);
        }