示例#1
0
        public void PermutationsWithDuplicatesResultsInSucess()
        {
            int[] nums = new int[] { 1, 1, 2 };

            var expectedResult = new List <IList <int> >()
            {
                new List <int>()
                {
                    1, 1, 2
                },
                new List <int>()
                {
                    1, 2, 1
                },
                new List <int>()
                {
                    2, 1, 1
                }
            };


            var result = new PermutationsWithDuplicates().PermuteUnique(nums);

            var areEqual = CollectionsAreEqual.AreEqualListOfLists <int>(result, (IList <IList <int> >)expectedResult);

            Assert.IsTrue(areEqual);
        }
示例#2
0
        public void GroupAnagramSuccess()
        {
            string[] input = new string[] { "eat", "tea", "tan", "ate", "nat", "bat" };

            var expectedResult = new List <IList <string> >()
            {
                new List <string>()
                {
                    "eat", "tea", "ate"
                },
                new List <string>()
                {
                    "tan", "nat"
                },
                new List <string>()
                {
                    "bat"
                }
            };



            var result = new GroupAnagramsSolution().GroupAnagrams(input);

            var isEqual = CollectionsAreEqual.AreEqualListOfLists(result, expectedResult);

            Assert.IsTrue(isEqual);
        }
示例#3
0
        public void BFSTraversalIterativeSuccess()
        {
            TreeNode root = new TreeNode(3);

            var node9  = root.Left = new TreeNode(9);
            var node20 = root.Right = new TreeNode(20);

            node20.Left  = new TreeNode(15);
            node20.Right = new TreeNode(7);

            var expectedResult = new List <List <int> >()
            {
                new List <int>()
                {
                    3
                },
                new List <int>()
                {
                    9, 20
                },
                new List <int>()
                {
                    15, 7
                },
            };


            var result = (List <List <int> >) new BFSTraversal().LevelOrder(root);

            var areEqual = CollectionsAreEqual.AreEqualListOfLists(result, expectedResult);
        }
示例#4
0
        public void VerticalOrderTraversalWhenSingleNodeResultsInSuccess()
        {
            TreeNode node   = new TreeNode(1);
            var      result = new BinaryTreeVerticalOrderTraversal().VerticalOrder(node);

            var expectedResult = new List <List <int> >()
            {
                new List <int> {
                    1
                }
            };

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

            Assert.IsTrue(areEqual);
        }
示例#5
0
        public void SubsSetTestsResultsInSucess()
        {
            int[] nums = new int[] { 1, 2, 3 };

            var expectedResult = new List <IList <int> >()
            {
                new List <int>(),
                new List <int>()
                {
                    1
                },
                new List <int>()
                {
                    2
                },
                new List <int>()
                {
                    3
                },
                new List <int>()
                {
                    1, 2
                },
                new List <int>()
                {
                    1, 3
                },
                new List <int>()
                {
                    2, 3
                },
                new List <int>()
                {
                    1, 2, 3
                }
            };


            var result = new SubSet().Subsets(nums);

            var areEqual = CollectionsAreEqual.AreEqualListOfLists <int>(result, (IList <IList <int> >)expectedResult);

            Assert.IsTrue(areEqual);
        }
示例#6
0
        public void TravesalSuccess()
        {
            TreeNode node3  = new TreeNode(3);
            TreeNode node9  = new TreeNode(9);
            TreeNode node20 = new TreeNode(20);
            TreeNode node15 = new TreeNode(15);
            TreeNode node7  = new TreeNode(7);

            node3.left  = node9;
            node3.right = node20;

            node20.left  = node15;
            node20.right = node7;



            List <IList <int> > expectedResult = new List <IList <int> >()
            {
                new List <int>()
                {
                    3
                },
                new List <int>()
                {
                    20, 9
                },
                new List <int>()
                {
                    15, 7
                }
            };


            var result = new ZigzagTraversal().ZigzagLevelOrder(node3);

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

            Assert.IsTrue(areEqual);
        }
示例#7
0
        public void VerticalOrderTraversalResultsInSuccess()
        {
            var treeNode3  = new TreeNode(3);
            var treeNode9  = new TreeNode(9);
            var treeNode20 = new TreeNode(20);
            var treeNode15 = new TreeNode(15);
            var treeNode7  = new TreeNode(7);

            treeNode3.Left  = treeNode9;
            treeNode3.Right = treeNode20;


            treeNode20.Left  = treeNode15;
            treeNode20.Right = treeNode7;

            var expectedResult = new List <List <int> >()
            {
                new List <int> {
                    9
                },
                new List <int> {
                    3, 15
                },
                new List <int> {
                    20
                },
                new List <int> {
                    7
                }
            };


            var result = new BinaryTreeVerticalOrderTraversal().VerticalOrder(treeNode3);

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

            Assert.IsTrue(areEqual);
        }