public void RankTest() { // "it ranks full-word > start-of-word > end-of-word > middle-of-word > split > scattered letters" var candidates = new List <string> { "controller x", "0_co_re_00 x", "0core0_000 x", "0core_0000 x", "0_core0_00 x", "0_core_000 x" }; var result = StringScorer.Filter(candidates, "core"); Assert.Equal(result[0].Word, candidates[5]); Assert.Equal(result[1].Word, candidates[4]); Assert.Equal(result[2].Word, candidates[3]); Assert.Equal(result[3].Word, candidates[2]); Assert.Equal(result[4].Word, candidates[1]); Assert.Equal(result[5].Word, candidates[0]); var result2 = StringScorer.Filter(candidates, "core x"); Assert.Equal(result2[0].Word, candidates[5]); Assert.Equal(result2[1].Word, candidates[4]); Assert.Equal(result2[2].Word, candidates[3]); Assert.Equal(result2[3].Word, candidates[2]); Assert.Equal(result2[4].Word, candidates[1]); Assert.Equal(result2[5].Word, candidates[0]); }
public void ReturnMostAccurateResultTest() { var candidates = new List <string> { "GruntFile", "filter", "bile" }; var result = StringScorer.Filter(candidates, "file"); var words = result.Select(x => x.Word).ToList(); Assert.Equal(2, result.Length); Assert.Contains("GruntFile", words); Assert.Contains("filter", words); }
public void ReturnMostAccurateLimitedResultTest() { var opts = new StringScorerOptions(maxResults: 1); var candidates = new List <string> { "GruntFile", "filter", "bile" }; var result = StringScorer.Filter(candidates, "file", opts); var words = result.Select(x => x.Word).ToList(); Assert.Single(result); Assert.Equal(new [] { "GruntFile" }, words); }
private IResultSubject[] Filter(List <string> candidates, string query, StringScorerOptions options = null) { return(StringScorer.Filter(candidates, query, options)); }