mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-23 08:38:27 -05:00
Fuzzy test for ZREMRANGEBYLEX added.
This commit is contained in:
parent
ab3afe2f4d
commit
9caa1ae96a
@ -764,7 +764,7 @@ start_server {tags {"zset"}} {
|
|||||||
assert_equal {} $err
|
assert_equal {} $err
|
||||||
}
|
}
|
||||||
|
|
||||||
test "ZRANGEBYLEX fuzzy test, 200 ranges in $elements element sorted set - $encoding" {
|
test "ZRANGEBYLEX fuzzy test, 100 ranges in $elements element sorted set - $encoding" {
|
||||||
set lexset {}
|
set lexset {}
|
||||||
r del zset
|
r del zset
|
||||||
for {set j 0} {$j < $elements} {incr j} {
|
for {set j 0} {$j < $elements} {incr j} {
|
||||||
@ -829,6 +829,46 @@ start_server {tags {"zset"}} {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test "ZREMRANGEBYLEX fuzzy test, 100 ranges in $elements element sorted set - $encoding" {
|
||||||
|
set lexset {}
|
||||||
|
r del zset zsetcopy
|
||||||
|
for {set j 0} {$j < $elements} {incr j} {
|
||||||
|
set e [randstring 0 30 alpha]
|
||||||
|
lappend lexset $e
|
||||||
|
r zadd zset 0 $e
|
||||||
|
}
|
||||||
|
set lexset [lsort -unique $lexset]
|
||||||
|
for {set j 0} {$j < 100} {incr j} {
|
||||||
|
# Copy...
|
||||||
|
r zunionstore zsetcopy 1 zset
|
||||||
|
set lexsetcopy $lexset
|
||||||
|
|
||||||
|
set min [randstring 0 30 alpha]
|
||||||
|
set max [randstring 0 30 alpha]
|
||||||
|
set mininc [randomInt 2]
|
||||||
|
set maxinc [randomInt 2]
|
||||||
|
if {$mininc} {set cmin "\[$min"} else {set cmin "($min"}
|
||||||
|
if {$maxinc} {set cmax "\[$max"} else {set cmax "($max"}
|
||||||
|
|
||||||
|
# Make sure data is the same in both sides
|
||||||
|
assert {[r zrange zset 0 -1] eq $lexset}
|
||||||
|
|
||||||
|
# Get the range we are going to remove
|
||||||
|
set torem [r zrangebylex zset $cmin $cmax]
|
||||||
|
set toremlen [r zlexcount zset $cmin $cmax]
|
||||||
|
r zremrangebylex zsetcopy $cmin $cmax
|
||||||
|
set output [r zrange zsetcopy 0 -1]
|
||||||
|
|
||||||
|
# Remove the range with Tcl from the original list
|
||||||
|
if {$toremlen} {
|
||||||
|
set first [lsearch -exact $lexsetcopy [lindex $torem 0]]
|
||||||
|
set last [expr {$first+$toremlen-1}]
|
||||||
|
set lexsetcopy [lreplace $lexsetcopy $first $last]
|
||||||
|
}
|
||||||
|
assert {$lexsetcopy eq $output}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
test "ZSETs skiplist implementation backlink consistency test - $encoding" {
|
test "ZSETs skiplist implementation backlink consistency test - $encoding" {
|
||||||
set diff 0
|
set diff 0
|
||||||
for {set j 0} {$j < $elements} {incr j} {
|
for {set j 0} {$j < $elements} {incr j} {
|
||||||
|
Loading…
Reference in New Issue
Block a user