コード例 #1
0
        void InternalTest(int?[] tree, bool expected)
        {
            TreeNode root   = TreeNode.Get(tree);
            bool     actual = SymmetricTree.IsSymmetric(root);

            Assert.Equal <bool>(expected, actual);
        }
コード例 #2
0
        public void DescendantsAndSelf_OnTreeRoot_ReturnsAll()
        {
            var root        = SymmetricTree.Create();
            var descendants = root.DescendantsAndSelf();

            Assert.Collection(descendants, SymmetricTree.ValidateElements(includeSelf: true).ToArray());
        }
コード例 #3
0
        public void IsSymmetricTest2()
        {
            TreeNode root = null;

            bool expected    = true;
            var  isSymmetric = new SymmetricTree().IsSymmetric(root);

            Assert.AreEqual(expected, isSymmetric);
        }
コード例 #4
0
        public void NonSymmetricCases()
        {
            var t = new SymmetricTree.TreeNode(1);

            t.left        = new SymmetricTree.TreeNode(2);
            t.right       = new SymmetricTree.TreeNode(2);
            t.left.right  = new SymmetricTree.TreeNode(3);
            t.right.right = new SymmetricTree.TreeNode(3);
            Assert.IsFalse(SymmetricTree.IsSymmetric(t));
        }
コード例 #5
0
        public void SymmetricTreeTestCase4()
        {
            var tree = new MyBinaryTree(1);

            tree.Left       = new MyBinaryTree(2);
            tree.Left.Right = new MyBinaryTree(3);
            tree.Right      = new MyBinaryTree(2);
            tree.Right.Left = new MyBinaryTree(3);

            SymmetricTree.IsSymmetric(tree).Should().Be(true);
        }
コード例 #6
0
        public void CheckSymmetricTreeTest(object[] treeNodes, bool expectedSymmetricTree)
        {
            // arrange
            TreeNode root = TreeNode.Build(treeNodes);

            // act
            bool isSymmetric = SymmetricTree.IsSymmetric(root);

            // assert
            Assert.AreEqual(expectedSymmetricTree, isSymmetric);
        }
コード例 #7
0
        public void IsSymmetricTest3()
        {
            TreeNode root = new TreeNode(1);

            root.left  = new TreeNode(2);
            root.right = new TreeNode(2);

            bool expected    = true;
            var  isSymmetric = new SymmetricTree().IsSymmetric(root);

            Assert.AreEqual(expected, isSymmetric);
        }
コード例 #8
0
        public void Descendants_OnTreeRoot_WithNoContainerChildrenPredicate_ReturnsAllContainers()
        {
            var root        = SymmetricTree.Create();
            var descendants = root.Descendants(descendIntoChildren: x => !(x is ContainerNode));

            Assert.Collection(
                descendants,
                x => Assert.IsType <ContainerListNode>(x),
                x => Assert.IsType <ContainerNode>(x),
                x => Assert.IsType <ContainerNode>(x),
                x => Assert.IsType <ContainerListNode>(x),
                x => Assert.IsType <ContainerNode>(x),
                x => Assert.IsType <ContainerNode>(x));
        }
コード例 #9
0
        public void IsSymmetricOfIterationTest4()
        {
            TreeNode root = new TreeNode(1);

            root.left        = new TreeNode(2);
            root.left.right  = new TreeNode(3);
            root.right       = new TreeNode(2);
            root.right.right = new TreeNode(3);

            bool expected    = false;
            var  isSymmetric = new SymmetricTree().IsSymmetricOfIteration(root);

            Assert.AreEqual(expected, isSymmetric);
        }
コード例 #10
0
        public void SymmetricTreeTestCase1()
        {
            var tree = new MyBinaryTree(6);

            tree.Left             = new MyBinaryTree(2);
            tree.Left.Left        = new MyBinaryTree(1);
            tree.Left.Right       = new MyBinaryTree(4);
            tree.Left.Right.Left  = new MyBinaryTree(3);
            tree.Left.Right.Right = new MyBinaryTree(5);
            tree.Right            = new MyBinaryTree(7);
            tree.Right.Right      = new MyBinaryTree(9);
            tree.Right.Right.Left = new MyBinaryTree(8);

            SymmetricTree.IsSymmetric(tree).Should().Be(false);
        }
コード例 #11
0
        public void TestMethod3()
        {
            // Arrange
            SymmetricTree question = new SymmetricTree();
            TreeNode      root     = new TreeNode(1);

            root.left       = new TreeNode(2);
            root.right      = new TreeNode(3);
            root.left.left  = new TreeNode(3);
            root.right.left = new TreeNode(2);
            bool expected = false;

            // Act
            bool actual = question.IsSymmetric(root);

            // Assert
            Assert.AreEqual(expected, actual);
        }
コード例 #12
0
 public void IsSymmetricTreeTest()
 {
     TreeNode      root = buildTreeTest(new object[] { 1, 2, 2, 3, 5, 4, 3 });
     SymmetricTree test = new SymmetricTree();
     bool          sym  = test.IsSymmetric(root);
 }
コード例 #13
0
 public void CornerCases()
 {
     Assert.IsTrue(SymmetricTree.IsSymmetric(null));
     Assert.IsTrue(SymmetricTree.IsSymmetric(new SymmetricTree.TreeNode(5)));
 }
コード例 #14
0
 public void BeforeEach()
 {
     SymmetricTree = new SymmetricTree();
 }