示例#1
0
        public void CloneGraphSolutionResultsInSuccess()
        {
            var node1 = new Node(1, new List <Node>());
            var node2 = new Node(2, new List <Node>());
            var node3 = new Node(3, new List <Node>());
            var node4 = new Node(4, new List <Node>());

            node1.neighbors.Add(node2);
            node1.neighbors.Add(node4);


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

            node3.neighbors.Add(node2);
            node3.neighbors.Add(node4);


            node4.neighbors.Add(node1);
            node4.neighbors.Add(node3);

            var expectedResult = DFS(node1);

            var result = new CloneGraph().CloneGraphSolution(node1);

            var actualResult = DFS(result);

            var areEqual = CollectionsAreEqual.AreEqual(actualResult, expectedResult, new GraphComparer());

            Assert.IsTrue(areEqual);
        }
示例#2
0
        public void BinaryTreePathResultsInSucessForIterativeImplementation()
        {
            var treeNode1 = new TreeNode(1);
            var treeNode2 = new TreeNode(2);
            var treeNode3 = new TreeNode(3);
            var treeNode5 = new TreeNode(5);

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

            treeNode2.Right = treeNode5;

            var expectedResult = new List <string>()
            {
                "1->2->5",
                "1->3"
            };


            var result = new BinaryTreePaths().BinaryTreePathsIterative(treeNode1);

            var areEqual = CollectionsAreEqual.AreEqual <string>(result, expectedResult);

            Assert.IsTrue(areEqual);
        }
示例#3
0
        public void LetterCombinationResultsInSuccess()
        {
            var expectedResult = new List <string>
            {
                "ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"
            };

            var result = new LetterCombinations().LetterCombinationsSolution("23");

            var areEqual = CollectionsAreEqual.AreEqual <string>(result, expectedResult);

            Assert.IsTrue(areEqual);
        }
        public void PreOrderInOrderTraversalRecursive_Success()
        {
            var preorder = new int[] { 3, 9, 20, 15, 7 };
            var inorder  = new int[] { 9, 3, 15, 20, 7 };

            var result = new ConstructBinaryTreefromPreorderInorderTraversal().BuildTreeRecursive(preorder, inorder);

            var preOrderTraversalResult = PreOrderTraversal(result);

            var areEqual = CollectionsAreEqual.AreEqual <int>(preorder, preOrderTraversalResult);

            Assert.IsNotNull(result);
            Assert.IsTrue(areEqual);
        }
示例#5
0
        public void PreOrderPostOrderTraversal_Success()
        {
            var preorder  = new int[] { 1, 2, 4, 8, 9, 5, 3, 6, 7 };
            var postorder = new int[] { 8, 9, 4, 5, 2, 6, 7, 3, 1 };

            var result = new ConstructBinaryTreefromPreorderPostorderTraversal().BuildTree(preorder, postorder);

            var preOrderTraversalResult = PreOrderTraversal(result);

            var areEqual = CollectionsAreEqual.AreEqual <int>(preorder, preOrderTraversalResult);

            Assert.IsNotNull(result);
            Assert.IsTrue(areEqual);
        }
示例#6
0
        public void ConstructBinaryTreeFromInorderPostorderTraversalSuccess()
        {
            var postorder = new int[] { 9, 15, 7, 20, 3 };
            var inorder   = new int[] { 9, 3, 15, 20, 7 };

            var result = new ConstructBinaryTreeFromInorderPostorderTraversal().BuildTree(inorder, postorder);

            var inOrderTraversalResult = new InOrderTraversalIterative().InOrderTraversal(result);

            var areEqual = CollectionsAreEqual.AreEqual <int>(inorder, inOrderTraversalResult);

            Assert.IsNotNull(result);
            Assert.IsTrue(areEqual);
        }
        public void RemoveParenThesisResultsInSuccess()
        {
            string input = "()())()";

            List <string> expectedResult = new List <string>()
            {
                "(())()",
                "()()()",
            };

            var result = new RemoveInvalidParenthesesSolution().RemoveInvalidParentheses(input);

            var areEqual = CollectionsAreEqual.AreEqual(result, expectedResult);

            Assert.IsTrue(areEqual);
        }
示例#8
0
        public void MissingRangeTests_Success()
        {
            int[]         nums           = new int[] { 0, 1, 3, 50, 75 };
            List <string> expectedResult = new List <string>()
            {
                "2", "4->49", "51->74", "76->99"
            };
            var result = new MissingRanges().FindMissingRanges(nums, 0, 99);

            var areEqual = CollectionsAreEqual.AreEqual(result, expectedResult);

            Assert.IsTrue(areEqual);


            nums           = new int[] { -1 };
            expectedResult = new List <string>()
            {
                "-2"
            };
            result = new MissingRanges().FindMissingRanges(nums, -2, -1);

            areEqual = CollectionsAreEqual.AreEqual(result, expectedResult);
            Assert.IsTrue(areEqual);
        }