internal/index/nixattr/nixattr_test.go (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | // Copyright (c) 2016 Couchbase, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package nixattr import ( "reflect" "testing" "github.com/blevesearch/bleve/v2/analysis" ) func TestNixAttrFilter(t *testing.T) { tests := []struct { input analysis.TokenStream output analysis.TokenStream }{ { input: tokenStream(""), output: tokenStream(""), }, { input: tokenStream("a"), output: tokenStream("a"), }, { input: tokenStream("linuxKernel.kernels.linux_6_15"), output: tokenStream("linux", "Kernel", ".", "kernels", ".", "linux_6_15"), }, { input: tokenStream("Lang"), output: tokenStream("Lang"), }, { input: tokenStream("GLang"), output: tokenStream("G", "Lang"), }, { input: tokenStream("GOLang"), output: tokenStream("GO", "Lang"), }, { input: tokenStream("GOOLang"), output: tokenStream("GOO", "Lang"), }, { input: tokenStream("1234"), output: tokenStream("1234"), }, { input: tokenStream("slartibartfast"), output: tokenStream("slartibartfast"), }, } for _, test := range tests { ccFilter := NewFilter() actual := ccFilter.Filter(test.input) if !reflect.DeepEqual(actual, test.output) { t.Errorf("expected %s \n\n got %s", test.output, actual) } } } func tokenStream(termStrs ...string) analysis.TokenStream { tokenStream := make([]*analysis.Token, len(termStrs)) index := 0 for i, termStr := range termStrs { tokenStream[i] = &analysis.Token{ Term: []byte(termStr), Position: i + 1, Start: index, End: index + len(termStr), } index += len(termStr) } return analysis.TokenStream(tokenStream) } |