add zset withsocre float (#2689)
* add zset withsocre float * update * add IncrbyFloat,HincrbyFloat Co-authored-by: Kevin Wan <wanjunfeng@gmail.com>
This commit is contained in:
@@ -1008,6 +1008,111 @@ func TestRedis_SortedSet(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
func TestRedis_SortedSetByFloat64(t *testing.T) {
|
||||
runOnRedis(t, func(client *Redis) {
|
||||
ok, err := client.ZaddFloat("key", 10.345, "value1")
|
||||
assert.Nil(t, err)
|
||||
assert.True(t, ok)
|
||||
val, err := client.ZscoreByFloat("key", "value1")
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, 10.345, val)
|
||||
_, _ = client.ZaddFloat("key", 10.346, "value2")
|
||||
_, err = New(client.Addr, badType()).ZRevRangeWithScoresByFloat("key", 0, -1)
|
||||
assert.NotNil(t, err)
|
||||
pairs, err := client.ZRevRangeWithScoresByFloat("key", 0, -1)
|
||||
assert.Nil(t, err)
|
||||
assert.EqualValues(t, []PairFloat{
|
||||
{
|
||||
Key: "value2",
|
||||
Score: 10.346,
|
||||
},
|
||||
{
|
||||
Key: "value1",
|
||||
Score: 10.345,
|
||||
},
|
||||
}, pairs)
|
||||
|
||||
pairs, err = client.ZrangeWithScoresByFloat("key", 0, -1)
|
||||
assert.Nil(t, err)
|
||||
assert.EqualValues(t, []PairFloat{
|
||||
{
|
||||
Key: "value1",
|
||||
Score: 10.345,
|
||||
},
|
||||
{
|
||||
Key: "value2",
|
||||
Score: 10.346,
|
||||
},
|
||||
}, pairs)
|
||||
_, err = New(client.Addr, badType()).ZrangebyscoreWithScoresByFloat("key", 0, 20)
|
||||
assert.NotNil(t, err)
|
||||
pairs, err = client.ZrangebyscoreWithScoresByFloat("key", 0,20)
|
||||
assert.Nil(t, err)
|
||||
assert.EqualValues(t, []PairFloat{
|
||||
{
|
||||
Key: "value1",
|
||||
Score: 10.345,
|
||||
},
|
||||
{
|
||||
Key: "value2",
|
||||
Score: 10.346,
|
||||
},
|
||||
}, pairs)
|
||||
_, err = New(client.Addr, badType()).ZrangebyscoreWithScoresByFloatAndLimit(
|
||||
"key", 10.1, 12.2, 1, 1)
|
||||
assert.NotNil(t, err)
|
||||
pairs, err = client.ZrangebyscoreWithScoresByFloatAndLimit("key", 10.1, 12.2, 1, 1)
|
||||
assert.Nil(t, err)
|
||||
assert.EqualValues(t, []PairFloat{
|
||||
{
|
||||
Key: "value2",
|
||||
Score: 10.346,
|
||||
},
|
||||
}, pairs)
|
||||
_, err = New(client.Addr, badType()).ZrevrangebyscoreWithScoresByFloat("key", 10, 12)
|
||||
assert.NotNil(t, err)
|
||||
pairs, err = client.ZrevrangebyscoreWithScoresByFloat("key", 10, 12)
|
||||
assert.Nil(t, err)
|
||||
assert.EqualValues(t, []PairFloat{
|
||||
{
|
||||
Key: "value2",
|
||||
Score: 10.346,
|
||||
},
|
||||
{
|
||||
Key: "value1",
|
||||
Score: 10.345,
|
||||
},
|
||||
}, pairs)
|
||||
_, err = New(client.Addr, badType()).ZrevrangebyscoreWithScoresByFloatAndLimit(
|
||||
"key", 10, 12, 1, 1)
|
||||
assert.NotNil(t, err)
|
||||
pairs, err = client.ZrevrangebyscoreWithScoresByFloatAndLimit("key", 10, 12, 1, 1)
|
||||
assert.Nil(t, err)
|
||||
assert.EqualValues(t, []PairFloat{
|
||||
{
|
||||
Key: "value1",
|
||||
Score: 10.345,
|
||||
},
|
||||
}, pairs)
|
||||
|
||||
})
|
||||
}
|
||||
func TestRedis_IncrbyFloat(t *testing.T) {
|
||||
runOnRedis(t, func(client *Redis) {
|
||||
incrVal, err := client.IncrbyFloat("key", 0.002)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, 0.002,incrVal)
|
||||
incrVal2, err := client.IncrbyFloat("key", -0.001)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, 0.001,incrVal2)
|
||||
hincrVal ,err := client.HincrbyFloat("hkey","i",0.002)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, 0.002,hincrVal)
|
||||
hincrVal2 ,err := client.HincrbyFloat("hkey","i",-0.001)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, 0.001,hincrVal2)
|
||||
})
|
||||
}
|
||||
func TestRedis_Pipelined(t *testing.T) {
|
||||
runOnRedis(t, func(client *Redis) {
|
||||
assert.NotNil(t, New(client.Addr, badType()).Pipelined(func(pipeliner Pipeliner) error {
|
||||
|
||||
Reference in New Issue
Block a user