ref: 27af5a339a4d3c5712b5ed946a636a8c21916039
parent: b3c825756f3251f8b26e53262f9d6f484aecf750
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Tue Apr 21 13:44:48 EDT 2020
related: Fix toLower Don't change the slice. Fixes #7198
--- a/related/inverted_index.go
+++ b/related/inverted_index.go
@@ -274,9 +274,12 @@
keywords = append(keywords, StringKeyword(vv))
case []string:
if toLower {- for i := 0; i < len(vv); i++ {- vv[i] = strings.ToLower(vv[i])
+ vc := make([]string, len(vv))
+ copy(vc, vv)
+ for i := 0; i < len(vc); i++ {+ vc[i] = strings.ToLower(vc[i])
}
+ vv = vc
}
keywords = append(keywords, StringsToKeywords(vv...)...)
case time.Time:
--- a/related/inverted_index_test.go
+++ b/related/inverted_index_test.go
@@ -201,6 +201,21 @@
}
+func TestToKeywordsToLower(t *testing.T) {+ c := qt.New(t)
+ slice := []string{"A", "B", "C"}+ config := IndexConfig{ToLower: true}+ keywords, err := config.ToKeywords(slice)
+ c.Assert(err, qt.IsNil)
+ c.Assert(slice, qt.DeepEquals, []string{"A", "B", "C"})+ c.Assert(keywords, qt.DeepEquals, []Keyword{+ StringKeyword("a"),+ StringKeyword("b"),+ StringKeyword("c"),+ })
+
+}
+
func BenchmarkRelatedNewIndex(b *testing.B) {pages := make([]*testDoc, 100)
--
⑨