public void FindAllAnagrams_NoWords_ReturnsEmptyResult(IAnagramalist sut) { var result = sut.FindAllAnagrams(new string[0]); Assert.IsNotNull(result); Assert.IsEmpty(result); }
public static TestResult RunMultileTests(IAnagramalist sut, string[] words, int testRepeatCount, int expectedNumberOfAnagrams) { // run the anagramalist here so the JITer will compile all code var resultLost = RunSingleTest(sut, words); double sumSeconds = 0; var results = new List <SingleTestResult>(); for (int i = 1; i <= testRepeatCount; i++) { var result = RunSingleTest(sut, words); results.Add(result); sumSeconds += result.Time.TotalSeconds; if (result.Anagrams.Length != expectedNumberOfAnagrams) { Console.WriteLine("Wrong Number of anagrams!"); Console.WriteLine(result.Anagrams.Length); } Console.SetCursorPosition(0, Console.CursorTop); Console.Write( $"test {i} of {testRepeatCount} last run: {result.Time.TotalSeconds}s average: {sumSeconds / (i)}s "); } Console.WriteLine(); var testResult = TestResult.Create(results); return(testResult); }
public void FindAllAnagrams_3WordsInInputWithSameLetters_Returns3WordsAnagram(IAnagramalist sut) { string[] input = new [] { "word", "drow", "drwo" }; var result = sut.FindAllAnagrams(input); Assert.IsTrue(result.Any(x => x.Contains("word") && x.Contains("drwo") && x.Contains("drow"))); }
public void FindAllAnagrams_OnePossibleAnagramInInput_ReturnsAnagram(IAnagramalist sut) { string[] input = new [] { "word", "drow" }; var result = sut.FindAllAnagrams(input); Assert.IsTrue(result.Any(x => x.Contains("word") && x.Contains("drow"))); }
private static SingleTestResult RunSingleTest(IAnagramalist sut, string[] words) { var sw = new Stopwatch(); sw.Start(); var allAnagrams = sut.FindAllAnagrams(words); sw.Stop(); return(new SingleTestResult { Anagrams = allAnagrams, Time = sw.Elapsed }); }
public void FindAllAnagrams_FirstWordHasSameLengthButHasDifferentLetters_AnagramIsReturnedAnyway(IAnagramalist sut) { string[] input = new [] { "xxxx", "word", "drow" }; var result = sut.FindAllAnagrams(input); CollectionAssert.AreEqual(new [] { "word drow" }, result); }
public void FindAllAnagrams_WordsHasSameLengthButThereIsNoAnagrams_ReturnsEmptyArray(IAnagramalist sut) { string[] input = new [] { "word", "yyyy", "xxxx" }; var result = sut.FindAllAnagrams(input); Assert.IsEmpty(result); }
public void FindAllAnagrams_NonMachingWordInInputWithSameLength_Returns2WordsAnagram(IAnagramalist sut) { string[] input = new [] { "word", "drow", "xxxx" }; var result = sut.FindAllAnagrams(input); Assert.IsTrue(result.Any(x => x.Contains("word") && x.Contains("drow"))); }