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
e0389f03
Commit
e0389f03
authored
Apr 03, 2014
by
antirez
Browse files
Initial HyperLogLog tests.
parent
5056450b
Changes
2
Hide whitespace changes
Inline
Side-by-side
tests/test_helper.tcl
View file @
e0389f03
...
...
@@ -47,6 +47,7 @@ set ::all_tests {
unit/obuf-limits
unit/bitops
unit/memefficiency
unit/hyperloglog
}
# Index to the next test to run in the ::all_tests list.
set ::next_test 0
...
...
tests/unit/hyperloglog.tcl
0 → 100644
View file @
e0389f03
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