diff --git a/index_test.go b/index_test.go index 232d33b7..ced23ca6 100644 --- a/index_test.go +++ b/index_test.go @@ -422,6 +422,65 @@ func TestDict(t *testing.T) { t.Fatal(err) } + // test start and end range + dict, err = index.FieldDictRange("name", []byte("marty"), []byte("rose")) + if err != nil { + t.Error(err) + } + + terms = []string{} + de, err = dict.Next() + for err == nil && de != nil { + terms = append(terms, string(de.Term)) + de, err = dict.Next() + } + + expectedTerms = []string{"marty", "rose"} + if !reflect.DeepEqual(terms, expectedTerms) { + t.Errorf("expected %v, got %v", expectedTerms, terms) + } + + err = dict.Close() + if err != nil { + t.Fatal(err) + } + + docz := map[string]interface{}{ + "name": "prefix", + "desc": "bob cat cats catting dog doggy zoo", + } + err = index.Index("z", docz) + if err != nil { + t.Error(err) + } + + dict, err = index.FieldDictPrefix("desc", []byte("cat")) + if err != nil { + t.Error(err) + } + + terms = []string{} + de, err = dict.Next() + for err == nil && de != nil { + terms = append(terms, string(de.Term)) + de, err = dict.Next() + } + + expectedTerms = []string{"cat", "cats", "catting"} + if !reflect.DeepEqual(terms, expectedTerms) { + t.Errorf("expected %v, got %v", expectedTerms, terms) + } + + stats := index.Stats() + if stats == nil { + t.Errorf("expected IndexStat, got nil") + } + + err = dict.Close() + if err != nil { + t.Fatal(err) + } + err = index.Close() if err != nil { t.Fatal(err)