public void It_Should_Return_The_Word_If_The_StartWord_And_EndWord_Match() { // Arrange var wordDictionary = new[] { "Spin", "Spit", "Spat", "Spot", "Span" }; var expected = new[] { "Spin" }; var startWord = "Spin"; var endWord = "Spin"; var serviceUnderTest = new BreadthFirstShortestPathCalculator(); // Act var actual = serviceUnderTest.GetShortestPathFromStartWordToEndWord(startWord, endWord, wordDictionary); // Assert actual.Should().BeEquivalentTo(expected, "The start and end words match - no path between them is needed."); }
public void It_Should_Determine_The_Shortest_Path_Between_Two_Words_Using_Only_Words_In_The_Dictionary() { // Arrange var wordDictionary = new[] { "Spin", "Spit", "Spat", "Spot", "Span" }; var expected = new[] { "Spin", "Spit", "Spot" }; var startWord = "Spin"; var endWord = "Spot"; var serviceUnderTest = new BreadthFirstShortestPathCalculator(); // Act var actual = serviceUnderTest.GetShortestPathFromStartWordToEndWord(startWord, endWord, wordDictionary); // Assert actual.Should().BeEquivalentTo(expected, "This is the shortest path from the start word to the end word"); }