public void GivenTwoPOsWithTheSamename_WhenCompletionRequested_ShouldNotReturnDuplicateName() { var testData = new List <string> { AchalPur, AchalPur }; var completer = new TreeBasedPostOfficeNameCompleter(testData); var completions = completer.SuggestCompletedNames("Achal"); Assert.That(completions, Is.EquivalentTo(new[] { "pur B.O" })); }
public void WhenCompletionCalledWithEmptyString_ShouldReturnEmptySet() { var testData = new List <string> { AchalPur, AchalPurCity, Achalu }; var completer = new TreeBasedPostOfficeNameCompleter(testData); var completions = completer.SuggestCompletedNames(string.Empty); Assert.That(completions, Is.EquivalentTo(new List <string>())); }
public void GivenAllPOsStartWithAchal_WhenCompletionForAchal_ShouldReturnAllPostOffices() { var testData = new List <string> { AchalPur, AchalPurCity, Achalu }; var completer = new TreeBasedPostOfficeNameCompleter(testData); var completions = completer.SuggestCompletedNames("Achal"); Assert.That(completions, Is.EquivalentTo(new[] { "pur B.O", "pur City S.O", "u" })); }
public void GivenTreeBasedAndSimpleCompleters_WhenLookupCalled_TreeBasedShouldBeFaster() { var testData = new PostOfficeDataFile(); var treeBasedPostOfficeNameCompleter = new TreeBasedPostOfficeNameCompleter(testData.Read()); var timeForTreeBasedLookup = Time(() => treeBasedPostOfficeNameCompleter.SuggestCompletedNames("Acha")); var simplePostOfficeNameCompleter = new SimplePostOfficeNameCompleter(testData.Read()); var timeForSimpleLookup = Time(() => simplePostOfficeNameCompleter.SuggestCompletedNames("Acha")); Console.WriteLine("Simple lookup took {0}", timeForSimpleLookup); Console.WriteLine("Tree based lookup took {0}", timeForTreeBasedLookup); Assert.That(timeForSimpleLookup, Is.GreaterThan(timeForTreeBasedLookup)); }