Test Go bindings for various Analyzers.
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/51029f8f Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/51029f8f Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/51029f8f Branch: refs/heads/master Commit: 51029f8f6b5ad7c0d848e20db900cac5339c0bdb Parents: 094b76e Author: Marvin Humphrey <[email protected]> Authored: Tue Oct 6 18:42:58 2015 -0700 Committer: Marvin Humphrey <[email protected]> Committed: Tue Oct 6 18:44:17 2015 -0700 ---------------------------------------------------------------------- go/lucy/analysis_test.go | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy/blob/51029f8f/go/lucy/analysis_test.go ---------------------------------------------------------------------- diff --git a/go/lucy/analysis_test.go b/go/lucy/analysis_test.go index 65a8403..5a068a6 100644 --- a/go/lucy/analysis_test.go +++ b/go/lucy/analysis_test.go @@ -63,6 +63,50 @@ func TestInversionBasics(t *testing.T) { } } +func runAnalyzerTests(t *testing.T, a Analyzer) { + input := "foo bar baz" + fromSplit := a.Split(input) + fromTransform := make([]string, 0) + fromTransformText := make([]string, 0) + invFromTransform := a.Transform(NewInversion(NewToken(input))) + invFromTransformText := a.TransformText(input) + for i := 0; true; i++ { + token := invFromTransform.Next() + if token == nil { + break; + } + fromTransform = append(fromTransform, token.GetText()) + } + for i := 0; true; i++ { + token := invFromTransformText.Next() + if token == nil { + break; + } + fromTransformText = append(fromTransformText, token.GetText()) + } + if !reflect.DeepEqual(fromSplit, fromTransform) { + t.Errorf("Split and Transform not the same: %v, %v", fromSplit, fromTransform) + } + if !reflect.DeepEqual(fromSplit, fromTransformText) { + t.Errorf("Split and TransformText not the same: %v, %v", fromSplit, fromTransformText) + } + + dupe := a.Load(a.Dump()) + if !a.Equals(dupe) { + t.Errorf("Round-trip through Dump/Load failed: %v", dupe) + } +} + +func TestCoreAnalyzers(t *testing.T) { + runAnalyzerTests(t, NewCaseFolder()) + runAnalyzerTests(t, NewEasyAnalyzer("en")) + runAnalyzerTests(t, NewNormalizer("NFKC", true, false)) + runAnalyzerTests(t, NewRegexTokenizer("\\S+")) + runAnalyzerTests(t, NewSnowballStemmer("en")) + runAnalyzerTests(t, NewSnowballStopFilter("en", nil)) + runAnalyzerTests(t, NewStandardTokenizer()) +} + func TestRegexTokenizerSplit(t *testing.T) { tokenizer := NewRegexTokenizer("\\S+") expected := []string{"foo", "bar", "baz"}
