Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
352208ff
Commit
352208ff
authored
Apr 03, 2014
by
antirez
Browse files
Initial HyperLogLog tests.
parent
d2ca4bb6
Changes
2
Hide whitespace changes
Inline
Side-by-side
tests/test_helper.tcl
View file @
352208ff
...
@@ -47,6 +47,7 @@ set ::all_tests {
...
@@ -47,6 +47,7 @@ set ::all_tests {
unit/obuf-limits
unit/obuf-limits
unit/bitops
unit/bitops
unit/memefficiency
unit/memefficiency
unit/hyperloglog
}
}
# Index to the next test to run in the ::all_tests list.
# Index to the next test to run in the ::all_tests list.
set ::next_test 0
set ::next_test 0
...
...
tests/unit/hyperloglog.tcl
0 → 100644
View file @
352208ff
start_server
{
tags
{
"hll"
}}
{
test
{
HyperLogLog self test passes
}
{
catch
{
r pfselftest
}
e
set e
}
{
OK
}
test
{
PFADD without arguments creates an HLL value
}
{
r pfadd hll
r exists hll
}
{
1
}
test
{
Approximated cardinality after creation is zero
}
{
r pfcount hll
}
{
0
}
test
{
PFADD returns 1 when at least 1 reg was modified
}
{
r pfadd hll a b c
}
{
1
}
test
{
PFADD returns 0 when no reg was modified
}
{
r pfadd hll a b c
}
{
0
}
test
{
PFADD works with empty string
(
regression
)}
{
r pfadd hll
""
}
# Note that the self test stresses much better the
# cardinality estimation error. We are testing just the
# command implementation itself here.
test
{
PFCOUNT returns approximated cardinality of set
}
{
r del hll
set res
{}
r pfadd hll 1 2 3 4 5
lappend res
[
r pfcount hll
]
# Call it again to test cached value invalidation.
r pfadd hll 6 7 8 8 9 10
lappend res
[
r pfcount hll
]
set res
}
{
5 10
}
test
{
PFADD, PFCOUNT, PFMERGE type checking works
}
{
r set foo bar
catch
{
r pfadd foo 1
}
e
assert_match
{
*WRONGTYPE*
}
$e
catch
{
r pfcount foo
}
e
assert_match
{
*WRONGTYPE*
}
$e
catch
{
r pfmerge bar foo
}
e
assert_match
{
*WRONGTYPE*
}
$e
catch
{
r pfmerge foo bar
}
e
assert_match
{
*WRONGTYPE*
}
$e
}
test
{
PFMERGE results on the cardinality of union of sets
}
{
r del hll hll1 hll2 hll3
r pfadd hll1 a b c
r pfadd hll2 b c d
r pfadd hll3 c d e
r pfmerge hll hll1 hll2 hll3
r pfcount hll
}
{
5
}
test
{
PFGETREG returns the HyperLogLog raw registers
}
{
r del hll
r pfadd hll 1 2 3
llength
[
r pfgetreg hll
]
}
{
16384
}
}
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