Exemplo n.º 1
0
        public void GivenString_GeneratePermutations_ReturnsListOfPermutations()
        {
            //Arrange
            var str = "abc";
            var expectedPermutations = new List <string>
            {
                "abc",
                "acb",
                "bac",
                "bca",
                "cba",
                "cab"
            };
            var stringPermutation = new StringPermutationsV1();

            //Act
            var actualPermutations = stringPermutation.GeneratePermutations(str);

            //Assert
            Assert.AreEqual(expectedPermutations.Count, actualPermutations.Count);
            for (var i = 0; i < expectedPermutations.Count; i++)
            {
                Assert.AreEqual(expectedPermutations[i], actualPermutations[i]);
            }
        }
        public void GivenString_Generate_ReturnsPermutationsOfString()
        {
            //Arrange
            var str = "abc";
            var stringPermutations   = new StringPermutationsV1();
            var expectedPermutations = new HashSet <string>();

            expectedPermutations.Add("abc");
            expectedPermutations.Add("acb");
            expectedPermutations.Add("bac");
            expectedPermutations.Add("bca");
            expectedPermutations.Add("cab");
            expectedPermutations.Add("cba");

            //Act
            var actualPermutations = stringPermutations.Permutations(str);

            //Assert
            expectedPermutations.ExceptWith(actualPermutations);
            Assert.AreEqual(0, expectedPermutations.Count);
        }