You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2015/10/15 23:24:27 UTC
[4/5] lucy git commit: Tests for Schema Go bindings.
Tests for Schema Go bindings.
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/f1628478
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/f1628478
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/f1628478
Branch: refs/heads/master
Commit: f162847839fc3835cbe504a96301a85346491085
Parents: 43addb0
Author: Marvin Humphrey <ma...@rectangular.com>
Authored: Mon Oct 5 16:15:51 2015 -0700
Committer: Marvin Humphrey <ma...@rectangular.com>
Committed: Mon Oct 5 19:06:48 2015 -0700
----------------------------------------------------------------------
go/lucy/plan_test.go | 117 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 117 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/f1628478/go/lucy/plan_test.go
----------------------------------------------------------------------
diff --git a/go/lucy/plan_test.go b/go/lucy/plan_test.go
new file mode 100644
index 0000000..f16c0f6
--- /dev/null
+++ b/go/lucy/plan_test.go
@@ -0,0 +1,117 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 lucy
+
+import "testing"
+import "reflect"
+
+func TestSchemaSpecField(t *testing.T) {
+ schema := NewSchema()
+ fieldType := NewStringType()
+ schema.SpecField("foo", fieldType)
+ if got, ok := schema.FetchType("foo").(FieldType); !ok {
+ t.Errorf("SpecField failed, type is %T", got)
+ }
+}
+
+func TestSchemaFetchType(t *testing.T) {
+ schema := createTestSchema()
+ fieldType := schema.FetchType("content")
+ if _, ok := fieldType.(FullTextType); !ok {
+ t.Errorf("Unexpected result for FetchType: %T", fieldType)
+ }
+ if got := schema.FetchType(""); got != nil {
+ t.Errorf("Expected nil from FetchType, got %T %v", got, got)
+ }
+}
+
+func TestSchemaFetchAnalyzer(t *testing.T) {
+ schema := createTestSchema()
+ analyzer := schema.FetchAnalyzer("content")
+ if _, ok := analyzer.(StandardTokenizer); !ok {
+ t.Errorf("Unexpected result for FetchAnalyzer: %T", analyzer)
+ }
+ if got := schema.FetchAnalyzer(""); got != nil {
+ t.Errorf("Expected nil from FetchAnalyzer, got %T %v", got, got)
+ }
+}
+
+func TestSchemaFetchSim(t *testing.T) {
+ schema := createTestSchema()
+ sim := schema.FetchSim("content")
+ if _, ok := sim.(Similarity); !ok {
+ t.Errorf("Unexpected result for FetchSim: %T", sim)
+ }
+ if got := schema.FetchSim(""); got != nil {
+ t.Errorf("Expected nil from FetchSim, got %T %v", got, got)
+ }
+}
+
+func TestSchemaNumFields(t *testing.T) {
+ num := createTestSchema().NumFields()
+ if num != 1 {
+ t.Errorf("Unexpected NumFields result: %d", num)
+ }
+}
+
+func TestSchemaAllFields(t *testing.T) {
+ schema := createTestSchema()
+ got := schema.AllFields()
+ expected := []string{"content"}
+ if !reflect.DeepEqual(got, expected) {
+ t.Errorf("Invalid AllFields(): %v", got)
+ }
+}
+
+func TestSchemaArchitecture(t *testing.T) {
+ schema := createTestSchema()
+ if arch, ok := schema.Architecture().(Architecture); !ok {
+ t.Errorf("Unexpected result for Architecture(): %T", arch)
+ }
+}
+
+func TestSchemaAccessors(t *testing.T) {
+ schema := createTestSchema()
+ if sim, ok := schema.GetSimilarity().(Similarity); !ok {
+ t.Errorf("Unexpected result for GetSimilarity(): %T", sim)
+ }
+ if arch, ok := schema.GetArchitecture().(Architecture); !ok {
+ t.Errorf("Unexpected result for GetArchitecture(): %T", arch)
+ }
+}
+
+func TestSchemaDumpLoad(t *testing.T) {
+ schema := createTestSchema()
+ dupe := schema.Load(schema.Dump())
+ if _, ok := dupe.(Schema); !ok {
+ t.Errorf("Failed Dump/Load round trip produced a %T", dupe)
+ }
+}
+
+func TestSchemaWrite(t *testing.T) {
+ schema := createTestSchema()
+ folder := NewRAMFolder("")
+ schema.Write(folder, "serialized_schema.json")
+}
+
+func TestSchemaEat(t *testing.T) {
+ cannibal := NewSchema()
+ cannibal.Eat(createTestSchema())
+ if _, ok := cannibal.FetchType("content").(FieldType); !ok {
+ t.Error("Failed to Eat other Schema")
+ }
+}