Fix Transform result cache to speed up subsequent searches

This commit is contained in:
Junegunn Choi
2015-01-11 01:47:46 +09:00
parent 4f40314433
commit ca4bdfb4bd
3 changed files with 23 additions and 15 deletions

View File

@@ -86,19 +86,25 @@ func TestCaseSensitivity(t *testing.T) {
}
}
func TestOrigText(t *testing.T) {
func TestOrigTextAndTransformed(t *testing.T) {
strptr := func(str string) *string {
return &str
}
pattern := BuildPattern(MODE_EXTENDED, CASE_SMART, []Range{}, nil, []rune("jg"))
tokens := Tokenize(strptr("junegunn"), nil)
trans := Transform(tokens, []Range{Range{1, 1}})
for _, fun := range []func(*Chunk) []*Item{pattern.fuzzyMatch, pattern.extendedMatch} {
chunk := Chunk{
&Item{text: strptr("junegunn"), origText: strptr("junegunn.choi")},
&Item{
text: strptr("junegunn"),
origText: strptr("junegunn.choi"),
transformed: trans},
}
matches := fun(&chunk)
if *matches[0].text != "junegunn" || *matches[0].origText != "junegunn.choi" ||
matches[0].offsets[0][0] != 0 || matches[0].offsets[0][1] != 5 {
matches[0].offsets[0][0] != 0 || matches[0].offsets[0][1] != 5 ||
matches[0].transformed != trans {
t.Error("Invalid match result", matches)
}
}