Esempio n. 1
0
        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]);
        }
Esempio n. 2
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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 private IResultSubject[] Filter(List <string> candidates, string query, StringScorerOptions options = null)
 {
     return(StringScorer.Filter(candidates, query, options));
 }