public void GetWordMutations_DictionaryWithNoPath_ReturnsEmptyList() { var startWord = "AA"; var endWord = "BB"; var dictionary = new List<string> { "AA", "BB" }; var wordChains = new WordChains(dictionary); List<string> mutation = wordChains.GetWordMutationPath(startWord, endWord); Assert.AreEqual(0, mutation.Count); }
public void GetWordMutations_DictionaryWithOnePossibleMutation_ReturnsMutation() { var startWord = "A"; var endWord = "B"; var dictionary = new List<string> { "A", "B" }; var wordChains = new WordChains(dictionary); List<string> mutation = wordChains.GetWordMutationPath(startWord, endWord); Assert.AreEqual( "A", mutation[0]); Assert.AreEqual( "B", mutation[1]); }
public void GetWordMutations_DictionaryWithEndWordAndImpossibleMutation_ReturnsCorrectMutation() { var startWord = "AA"; var endWord = "AB"; var dictionary = new List<string> { "AA","AB", "BB" }; var wordChains = new WordChains(dictionary); List<string> mutation = wordChains.GetWordMutationPath(startWord, endWord); Assert.AreEqual(2, mutation.Count); Assert.AreEqual("AA", mutation[0]); Assert.AreEqual("AB", mutation[1]); }
public void GetWordMutations_DictionaryWithTwoMutationCaseBA_ReturnsMutation() { var startWord = "AA"; var endWord = "BB"; var dictionary = new List<string> { "AA", "BA", "BB" }; var wordChains = new WordChains(dictionary); List<string> mutation = wordChains.GetWordMutationPath(startWord, endWord); Assert.AreEqual(3, mutation.Count); Assert.AreEqual("AA", mutation[0]); Assert.AreEqual("BA", mutation[1]); Assert.AreEqual("BB", mutation[2]); }