Added tests for GET/BY against hashes fields

This commit is contained in:
antirez 2010-04-16 16:23:10 +02:00
parent b4eb9ccdcb
commit c4e8313231

View File

@ -953,6 +953,7 @@ proc main {} {
$r lpush tosort $i $r lpush tosort $i
$r sadd tosort-set $i $r sadd tosort-set $i
$r set weight_$i $rint $r set weight_$i $rint
$r hset wobj_$i weight $rint
lappend tosort [list $i $rint] lappend tosort [list $i $rint]
} }
set sorted [lsort -index 1 -real $tosort] set sorted [lsort -index 1 -real $tosort]
@ -967,15 +968,28 @@ proc main {} {
$r sort tosort {BY weight_*} $r sort tosort {BY weight_*}
} $res } $res
test {the same SORT with BY, but against the newly created set} { test {SORT with BY (hash field) against the newly created list} {
$r sort tosort {BY wobj_*->weight}
} $res
test {SORT with BY, but against the newly created set} {
$r sort tosort-set {BY weight_*} $r sort tosort-set {BY weight_*}
} $res } $res
test {SORT with BY (hash field), but against the newly created set} {
$r sort tosort-set {BY wobj_*->weight}
} $res
test {SORT with BY and STORE against the newly created list} { test {SORT with BY and STORE against the newly created list} {
$r sort tosort {BY weight_*} store sort-res $r sort tosort {BY weight_*} store sort-res
$r lrange sort-res 0 -1 $r lrange sort-res 0 -1
} $res } $res
test {SORT with BY (hash field) and STORE against the newly created list} {
$r sort tosort {BY wobj_*->weight} store sort-res
$r lrange sort-res 0 -1
} $res
test {SORT direct, numeric, against the newly created list} { test {SORT direct, numeric, against the newly created list} {
$r sort tosort $r sort tosort
} [lsort -integer $res] } [lsort -integer $res]
@ -995,6 +1009,17 @@ proc main {} {
format {} format {}
} {} } {}
test {SORT speed, as above but against hash field} {
set start [clock clicks -milliseconds]
for {set i 0} {$i < 100} {incr i} {
set sorted [$r sort tosort {BY wobj_*->weight LIMIT 0 10}]
}
set elapsed [expr [clock clicks -milliseconds]-$start]
puts -nonewline "\n Average time to sort: [expr double($elapsed)/100] milliseconds "
flush stdout
format {}
} {}
test {SORT speed, sorting 10000 elements list directly, 100 times} { test {SORT speed, sorting 10000 elements list directly, 100 times} {
set start [clock clicks -milliseconds] set start [clock clicks -milliseconds]
for {set i 0} {$i < 100} {incr i} { for {set i 0} {$i < 100} {incr i} {