Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
aff94a70
Commit
aff94a70
authored
Apr 18, 2014
by
antirez
Browse files
Fuzzy test for ZREMRANGEBYLEX added.
parent
5b5dd730
Changes
1
Hide whitespace changes
Inline
Side-by-side
tests/unit/type/zset.tcl
View file @
aff94a70
...
...
@@ -764,7 +764,7 @@ start_server {tags {"zset"}} {
assert_equal
{}
$err
}
test
"ZRANGEBYLEX fuzzy test,
2
00 ranges in
$elements
element sorted set -
$encoding
"
{
test
"ZRANGEBYLEX fuzzy test,
1
00 ranges in
$elements
element sorted set -
$encoding
"
{
set lexset
{}
r del zset
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
"
{
set diff 0
for
{
set j 0
}
{
$j
< $elements
}
{
incr j
}
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment