Test Go bindings for SortCache.

Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/5cbd112f
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/5cbd112f
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/5cbd112f

Branch: refs/heads/master
Commit: 5cbd112fff62c7b3f165003a898eb4ac252297f2
Parents: 54733ad
Author: Marvin Humphrey <[email protected]>
Authored: Sat Oct 31 18:25:30 2015 -0700
Committer: Marvin Humphrey <[email protected]>
Committed: Sun Nov 1 10:00:35 2015 -0800

----------------------------------------------------------------------
 go/lucy/index_test.go | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/5cbd112f/go/lucy/index_test.go
----------------------------------------------------------------------
diff --git a/go/lucy/index_test.go b/go/lucy/index_test.go
index bf7fd67..842ec2e 100644
--- a/go/lucy/index_test.go
+++ b/go/lucy/index_test.go
@@ -384,3 +384,47 @@ func TestSnapshotMisc(t *testing.T) {
                t.Errorf("SetPath/GetPath: %v", path)
        }
 }
+
+func TestSortCacheMisc(t *testing.T) {
+       schema := NewSchema()
+       spec := NewFullTextType(NewStandardTokenizer())
+       spec.SetSortable(true)
+       schema.SpecField("content", spec)
+       folder := NewRAMFolder("")
+       indexer, _ := OpenIndexer(&OpenIndexerArgs{Index: folder, Schema: 
schema, Create: true})
+       indexer.AddDoc(&testDoc{Content: "foo"})
+       indexer.AddDoc(&testDoc{Content: "bar"})
+       indexer.AddDoc(&testDoc{Content: "baz"})
+       indexer.AddDoc(make(map[string]interface{}))
+       indexer.Commit()
+
+       searcher, _ := OpenIndexSearcher(folder)
+       segReaders := searcher.GetReader().SegReaders()
+       sortReader := 
segReaders[0].(SegReader).Obtain("Lucy::Index::SortReader").(SortReader)
+       sortCache := sortReader.FetchSortCache("content")
+
+       if card := sortCache.GetCardinality(); card != 4 {
+               t.Errorf("GetCardinality: %d", card)
+       }
+       if width := sortCache.GetOrdWidth(); width != 2 {
+               t.Errorf("GetOrdWidth: %d", width)
+       }
+
+       if lowest, ok := sortCache.Value(0).(string); !ok || lowest != "bar" {
+               t.Errorf("Ord")
+       }
+       if ord := sortCache.Ordinal(1); ord != 2 { // "foo" is ordinal 2
+               t.Errorf("Ordinal: %d", ord)
+       }
+       if nullOrd := sortCache.GetNullOrd(); nullOrd != 3 {
+               t.Errorf("GetNullOrd: %d", nullOrd)
+       }
+
+       if ord := sortCache.Find("foo"); ord != 2 {
+               t.Errorf("Find: %d", ord)
+       }
+
+       if sortCache.GetNativeOrds() {
+               t.Errorf("recent index shouldn't have native ords")
+       }
+}

Reply via email to