github.com/vuuihc/gocedar@v0.1.0/cedar_test.go (about)

     1  package cedar
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/vcaesar/tt"
     7  )
     8  
     9  var (
    10  	cd      *Cedar
    11  	useMMap = true
    12  	words   = []string{
    13  		"魔术师",
    14  		"Cryin'",
    15  		"荒谬世界",
    16  		"活得精彩",
    17  		"梦",
    18  		"声音",
    19  		"最后的答案",
    20  		"阿博",
    21  		"夜长梦多",
    22  		"爱上你只是我的错",
    23  		"毕业",
    24  		"十八岁",
    25  		"比我勇敢",
    26  		"寂寞电梯",
    27  		"你又不是我	",
    28  	}
    29  )
    30  
    31  func TestFLoadData(t *testing.T) {
    32  	cd := New(&Options{
    33  		Reduced:  true,
    34  		UseMMap:  useMMap,
    35  		MMapPath: dumpPath,
    36  	})
    37  	defer cd.Close()
    38  	// add the words
    39  	for i, word := range words {
    40  		err := cd.Insert([]byte(word), i)
    41  		tt.Nil(t, err)
    42  	}
    43  	val, err := cd.Get([]byte("魔术师"))
    44  	tt.Nil(t, err)
    45  	tt.Equal(t, 0, val)
    46  
    47  	// update the words
    48  	for i, word := range words {
    49  		err := cd.Delete([]byte(word))
    50  		tt.Nil(t, err, word)
    51  
    52  		err = cd.Update([]byte(word), i)
    53  		tt.Nil(t, err)
    54  	}
    55  
    56  	// delete not used word
    57  	for i := 10; i < 15; i++ {
    58  		err := cd.Delete([]byte(words[i]))
    59  		tt.Nil(t, err)
    60  	}
    61  }
    62  
    63  func TestFFind(t *testing.T) {
    64  	if !useMMap {
    65  		return
    66  	}
    67  	cd := New(&Options{
    68  		Reduced:  true,
    69  		UseMMap:  useMMap,
    70  		MMapPath: dumpPath,
    71  	})
    72  	defer cd.Close()
    73  	// key, err := cd.Find([]byte("魔术师"), 0)
    74  	// tt.Nil(t, err)
    75  	// tt.Equal(t, 0, key)
    76  
    77  	val, err := cd.Get([]byte("魔术师"))
    78  	tt.Nil(t, err)
    79  	tt.Equal(t, 0, val)
    80  
    81  	// to, err := cd.Jump([]byte("活得精彩"), 0)
    82  	// tt.Nil(t, err)
    83  	// tt.Equal(t, 352, to)
    84  	// val, err = cd.Value(to)
    85  	// tt.Nil(t, err)
    86  	// tt.Equal(t, 3, val)
    87  }