public void deserializeTest1()
        {
            string   input  = "";
            TreeNode result = new SerializeAndDeserializeBinaryTree().deserialize(input);

            Assert.AreEqual(null, result);
        }
        public void Serializes()
        {
            var inputOne  = TreeNode.BuildTreeOne();
            var resultOne = SerializeAndDeserializeBinaryTree.Serialize(inputOne);

            Assert.Equal("531XXX76XXX", resultOne);

            var inputTwo  = TreeNode.BuildTreeTwo();
            var resultTwo = SerializeAndDeserializeBinaryTree.Serialize(inputTwo);

            Assert.Equal("31XX65XX7XX", resultTwo);
        }
        public void Deserializes()
        {
            var deserializedOne = SerializeAndDeserializeBinaryTree.Deserialize("531XXX76XXX");
            var resultOne       = SerializeAndDeserializeBinaryTree.Serialize(deserializedOne);

            Assert.Equal("531XXX76XXX", resultOne);

            var deserializedTwo = SerializeAndDeserializeBinaryTree.Deserialize("31XX65XX7XX");
            var resultTwo       = SerializeAndDeserializeBinaryTree.Serialize(deserializedTwo);

            Assert.Equal("31XX65XX7XX", resultTwo);
        }
        public void TestMethod()
        {
            SerializeAndDeserializeBinaryTree l = new SerializeAndDeserializeBinaryTree();

            TreeNode treeNode =
                new TreeNode(0)
            {
                left = new TreeNode(1)
                {
                    left = new TreeNode(2)
                    {
                    },
                    right = new TreeNode(2)
                    {
                    }
                },
                right = new TreeNode(3)
                {
                    right = new TreeNode(4)
                    {
                    }
                }
            };

            var x = l.serialize(treeNode);

            TreeNode tree = l.deserialize(x);

            treeNode =
                new TreeNode(1)
            {
                left  = new TreeNode(2),
                right = new TreeNode(3)
                {
                    left = new TreeNode(4)
                    {
                    },
                    right = new TreeNode(5)
                    {
                    }
                }
            };

            x = l.serialize(treeNode);

            tree = l.deserialize(x);
        }
        public void deserializeTest()
        {
            string input = "1,2,3,,,4,5";

            TreeNode expected = new TreeNode(1);

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

            TreeNode result = new SerializeAndDeserializeBinaryTree().deserialize(input);

            Assert.AreEqual(new BinaryTreePreorderTraversal().PreorderTraversal(result), new BinaryTreePreorderTraversal().PreorderTraversal(expected));

            Assert.AreEqual(new BinaryTreeInorderTraversal().InorderTraversal(expected), new BinaryTreeInorderTraversal().InorderTraversal(result));
        }