github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/core/store/fst_test.go (about) 1 package store 2 3 import ( 4 "fmt" 5 "github.com/balzaczyy/golucene/core/codec" 6 "testing" 7 ) 8 9 func TestClone(t *testing.T) { 10 fmt.Println("Testing Loading FST...") 11 path := "../search/testdata/belfrysample" 12 d, err := OpenFSDirectory(path) 13 if err != nil { 14 t.Error(err) 15 } 16 ctx := NewIOContextBool(false) 17 in, err := d.OpenInput("_0_Lucene41_0.tip", ctx) 18 if err != nil { 19 t.Error(err) 20 } 21 version, err := codec.CheckHeader(in, "BLOCK_TREE_TERMS_INDEX", 0, 1) 22 var indexDirOffset int64 = 0 23 if version < 1 { 24 indexDirOffset, err = in.ReadLong() 25 if err != nil { 26 t.Error(err) 27 } 28 } else { // >= 1 29 in.Seek(in.Length() - 8) 30 indexDirOffset, err = in.ReadLong() 31 if err != nil { 32 t.Error(err) 33 } 34 } 35 fmt.Println("indexDirOffset:", indexDirOffset) 36 in.Seek(indexDirOffset) 37 38 indexStartFP, err := in.ReadVLong() 39 if err != nil { 40 t.Error(err) 41 } 42 fmt.Println("indexStartFP:", indexStartFP) 43 44 fmt.Println("Before clone", in) 45 clone := in.Clone() 46 fmt.Println("After clone", clone) 47 if _, ok := clone.(*SimpleFSIndexInput); !ok { 48 t.Error("Clone() should return *SimpleFSIndexInput.") 49 } 50 clone.Seek(indexStartFP) 51 fmt.Println("After clone.Seek()", clone) 52 53 _, err = codec.CheckHeader(clone, "FST", 3, 4) 54 if err != nil { 55 t.Error(err) 56 } 57 }