[CodeCompletion] Penalize fuzzy matches that aren't on token boundaries even more

rdar://problem/22419553
This commit is contained in:
Ben Langmuir
2015-11-06 19:55:47 -08:00
parent 11444373a5
commit 7b0784958f
2 changed files with 34 additions and 2 deletions

View File

@@ -294,3 +294,25 @@ TEST(FuzzyStringMatcher, NormalizeScore) {
EXPECT_EQ(1.0, n.scoreCandidate("abc"));
EXPECT_EQ(1.0, n.scoreCandidate("ABC"));
}
TEST(FuzzyStringMatcher, TokenizingCharacters) {
FuzzyStringMatcher m("ab");
EXPECT_GT(m.scoreCandidate("a/b"), m.scoreCandidate("acb"));
EXPECT_GT(m.scoreCandidate("a.b"), m.scoreCandidate("acb"));
EXPECT_GT(m.scoreCandidate("a_b"), m.scoreCandidate("acb"));
EXPECT_GT(m.scoreCandidate("a+b"), m.scoreCandidate("acb"));
EXPECT_GT(m.scoreCandidate("a-b"), m.scoreCandidate("acb"));
EXPECT_GT(m.scoreCandidate("a:b"), m.scoreCandidate("acb"));
EXPECT_GT(m.scoreCandidate("a,b"), m.scoreCandidate("acb"));
EXPECT_GT(m.scoreCandidate("a b"), m.scoreCandidate("acb"));
EXPECT_GT(m.scoreCandidate("a(b"), m.scoreCandidate("acb"));
EXPECT_GT(m.scoreCandidate("a)b"), m.scoreCandidate("acb"));
EXPECT_GT(m.scoreCandidate("a!b"), m.scoreCandidate("acb"));
EXPECT_GT(m.scoreCandidate("a?b"), m.scoreCandidate("acb"));
}
TEST(FuzzyStringMatcher, ShortUnconnectedMatches) {
FuzzyStringMatcher m("abcd");
EXPECT_GT(m.scoreCandidate("xaxbxcdxxxxxx"), m.scoreCandidate("xaxbxcxd"));
EXPECT_GT(m.scoreCandidate("xaxbxc_d"), m.scoreCandidate("xaxbxcxd"));
}