public void Given_String_When_GeneratePermutations_Then_ShoulReturnPermutationsOfString() { //Given var str = "abc"; var problem = new StringPermutationsV3(); var expectedPermutations = new HashSet <string> { "abc", "acb", "bac", "bca", "cba", "cab" }; //When var actualPermutations = problem.GeneratePermutations(str); //Then Assert.AreEqual(expectedPermutations.Count, actualPermutations.Count); foreach (var item in actualPermutations) { Assert.AreEqual(true, expectedPermutations.Contains(item)); } }
public void GivenString_GeneratePermutations_ReturnsListOfPermutations() { //Arrange var str = "aab"; var expectedPermutations = new HashSet <string> { "aab", "aba", "baa" }; var stringPermutation = new StringPermutationsV3(); //Act var actualPermutations = stringPermutation.GeneratePermutations(str); //Assert Assert.AreEqual(expectedPermutations.Count, actualPermutations.Count); for (var i = 0; i < actualPermutations.Count; i++) { Assert.AreEqual(true, expectedPermutations.Contains(actualPermutations[i])); } }