throne-developer / skiplist

Using REDIS-ZSET mode to operate skiplist, support rank
2 stars 1 forks source link

GetRank 以及 span 的计算是错的... Delete 时候也没处理 span #1

Open Akagi201 opened 4 years ago

throne-developer commented 4 years ago

麻烦贴出你的测试代码,谢谢

Akagi201 commented 4 years ago

import (
"github.com/spf13/cast"
    "github.com/stretchr/testify/assert"
)

func TestSkipListRank(t *testing.T) {
    assert := assert.New(t)
    sl := skiplist.NewSeed(1)

    kv := make(map[string]float64)

    for i := 1; i <= 6; i++ {
        kv["a"+cast.ToString(i)] = cast.ToFloat64(i)
    }

    for k, v := range kv {
        sl.Insert(k, v)
    }

    fmt.Println(sl.PrintNodes())
    fmt.Println()

    for k, _ := range kv {
        offset, ok := sl.GetRank(k)
        assert.True(ok)
        fmt.Printf("%v, offset: %v\n", k, offset)
    }
}