mirror of
https://github.com/zeek/zeek.git
synced 2025-10-15 13:08:20 +00:00
Merge branch 'topic/bernhard/hyperloglog' into topic/bernhard/hyperloglog-with-measurement
This commit is contained in:
commit
25c0ffc3ab
7 changed files with 298 additions and 361 deletions
23
testing/btest/Baseline/bifs.hll_cardinality/out
Normal file
23
testing/btest/Baseline/bifs.hll_cardinality/out
Normal file
|
@ -0,0 +1,23 @@
|
|||
This value should be around 13:
|
||||
13.00129
|
||||
This value should be about 12:
|
||||
12.001099
|
||||
This value should be around 0:
|
||||
0.0
|
||||
This value should be around 13:
|
||||
13.00129
|
||||
This value should be 0:
|
||||
0.0
|
||||
This value should be true:
|
||||
T
|
||||
This value should be about 12:
|
||||
12.001099
|
||||
12.001099
|
||||
This value should be true:
|
||||
T
|
||||
This value should be about 21:
|
||||
21.003365
|
||||
This value should be about 13:
|
||||
13.00129
|
||||
This value should be about 12:
|
||||
12.001099
|
|
@ -4,135 +4,78 @@
|
|||
|
||||
event bro_init()
|
||||
{
|
||||
local m1 = "measurement1";
|
||||
local m2 = "measurement2";
|
||||
|
||||
print "This value should be true:";
|
||||
print hll_cardinality_init(0.01, m1);
|
||||
hll_cardinality_init(0.01, m2);
|
||||
|
||||
print "This value should be false:";
|
||||
print hll_cardinality_init(0.02, "measurement1");
|
||||
local c1 = hll_cardinality_init(0.01);
|
||||
local c2 = hll_cardinality_init(0.01);
|
||||
|
||||
local add1 = "hey";
|
||||
local add2 = "hi";
|
||||
local add3 = 123;
|
||||
|
||||
hll_cardinality_add(add1, m1);
|
||||
hll_cardinality_add(add2, m1);
|
||||
hll_cardinality_add(add3, m1);
|
||||
hll_cardinality_add("a", m1);
|
||||
hll_cardinality_add("b", m1);
|
||||
hll_cardinality_add("c", m1);
|
||||
hll_cardinality_add("d", m1);
|
||||
hll_cardinality_add("e", m1);
|
||||
hll_cardinality_add("f", m1);
|
||||
hll_cardinality_add("g", m1);
|
||||
hll_cardinality_add("h", m1);
|
||||
hll_cardinality_add("i", m1);
|
||||
hll_cardinality_add(c1, add1);
|
||||
hll_cardinality_add(c1, add2);
|
||||
hll_cardinality_add(c1, add3);
|
||||
hll_cardinality_add(c1, "a");
|
||||
hll_cardinality_add(c1, "b");
|
||||
hll_cardinality_add(c1, "c");
|
||||
hll_cardinality_add(c1, "d");
|
||||
hll_cardinality_add(c1, "e");
|
||||
hll_cardinality_add(c1, "f");
|
||||
hll_cardinality_add(c1, "g");
|
||||
hll_cardinality_add(c1, "h");
|
||||
hll_cardinality_add(c1, "i");
|
||||
hll_cardinality_add(c1, "j");
|
||||
|
||||
print "This value should be true:";
|
||||
print hll_cardinality_add("j", m1);
|
||||
|
||||
print "This value should be false:";
|
||||
print hll_cardinality_add("asdf", "something");
|
||||
|
||||
|
||||
hll_cardinality_add(add1, m2);
|
||||
hll_cardinality_add(add2, m2);
|
||||
hll_cardinality_add(add3, m2);
|
||||
hll_cardinality_add(1, m2);
|
||||
hll_cardinality_add("b", m2);
|
||||
hll_cardinality_add(2, m2);
|
||||
hll_cardinality_add(3, m2);
|
||||
hll_cardinality_add(4, m2);
|
||||
hll_cardinality_add(5, m2);
|
||||
hll_cardinality_add(6, m2);
|
||||
hll_cardinality_add(7, m2);
|
||||
hll_cardinality_add(8, m2);
|
||||
hll_cardinality_add(c2, add1);
|
||||
hll_cardinality_add(c2, add2);
|
||||
hll_cardinality_add(c2, add3);
|
||||
hll_cardinality_add(c2, 1);
|
||||
hll_cardinality_add(c2, "b");
|
||||
hll_cardinality_add(c2, 2);
|
||||
hll_cardinality_add(c2, 3);
|
||||
hll_cardinality_add(c2, 4);
|
||||
hll_cardinality_add(c2, 5);
|
||||
hll_cardinality_add(c2, 6);
|
||||
hll_cardinality_add(c2, 7);
|
||||
hll_cardinality_add(c2, 8);
|
||||
|
||||
print "This value should be around 13:";
|
||||
print hll_cardinality_estimate("measurement1");
|
||||
print hll_cardinality_estimate(c1);
|
||||
|
||||
print "This value should be -1.0:";
|
||||
print hll_cardinality_estimate("m2");
|
||||
print "This value should be about 12:";
|
||||
print hll_cardinality_estimate(c2);
|
||||
|
||||
hll_cardinality_init(0.02, "m2");
|
||||
local m2 = hll_cardinality_init(0.02);
|
||||
|
||||
print "This value should be around 0:";
|
||||
print hll_cardinality_estimate("m2");
|
||||
print hll_cardinality_estimate(m2);
|
||||
|
||||
print "This value should be true:";
|
||||
print hll_cardinality_destroy("m2");
|
||||
|
||||
print "This value should be false:";
|
||||
print hll_cardinality_destroy("m2");
|
||||
|
||||
print "This value should be -1.0:";
|
||||
print hll_cardinality_estimate("m2");
|
||||
|
||||
print "This next thing should be false:";
|
||||
print hll_cardinality_clone("m3", "m2");
|
||||
|
||||
print "This next thing should be true:";
|
||||
print hll_cardinality_clone("measurement3", "measurement1");
|
||||
local c3 = hll_cardinality_clone(c1);
|
||||
|
||||
print "This value should be around 13:";
|
||||
print hll_cardinality_estimate("measurement3");
|
||||
print hll_cardinality_estimate(c3);
|
||||
|
||||
hll_cardinality_destroy("measurement3");
|
||||
|
||||
print "This next thing should be equal to -1.0:";
|
||||
print hll_cardinality_estimate("measurement3");
|
||||
|
||||
print "This value should be around 13:";
|
||||
print hll_cardinality_estimate("measurement1");
|
||||
c3 = hll_cardinality_init(0.01);
|
||||
print "This value should be 0:";
|
||||
print hll_cardinality_estimate(c3);
|
||||
|
||||
print "This value should be true:";
|
||||
print hll_cardinality_merge_into("measurement3", "measurement2");
|
||||
|
||||
print "This value should be false:";
|
||||
print hll_cardinality_merge_into("measurement4", "measurement6");
|
||||
print hll_cardinality_merge_into(c3, c2);
|
||||
|
||||
print "This value should be about 12:";
|
||||
print hll_cardinality_estimate("measurement3");
|
||||
|
||||
print "This value should be false:";
|
||||
print hll_cardinality_merge_into("measurement3", "measurement15");
|
||||
|
||||
print "This value should be about 12:";
|
||||
print hll_cardinality_estimate("measurement3");
|
||||
print hll_cardinality_estimate(c2);
|
||||
print hll_cardinality_estimate(c3);
|
||||
|
||||
print "This value should be true:";
|
||||
print hll_cardinality_merge_into("measurement2", "measurement1");
|
||||
print hll_cardinality_merge_into(c2, c1);
|
||||
|
||||
print "This value should be about 21:";
|
||||
print hll_cardinality_estimate("measurement2");
|
||||
print hll_cardinality_estimate(c2);
|
||||
|
||||
print "This value should be about 13:";
|
||||
print hll_cardinality_estimate("measurement1");
|
||||
print hll_cardinality_estimate(c1);
|
||||
|
||||
print "This value should be about 12:";
|
||||
print hll_cardinality_estimate("measurement3");
|
||||
print hll_cardinality_estimate(c3);
|
||||
|
||||
local keys = hll_cardinality_keys();
|
||||
for(key in keys)
|
||||
{
|
||||
print "The key is:";
|
||||
print key;
|
||||
print "The value is:";
|
||||
print hll_cardinality_estimate(key);
|
||||
}
|
||||
}
|
||||
|
||||
#function hll_cardinality_keys%(%): bool
|
||||
# %{
|
||||
#// TableVal* a = new TableVal(string_set);
|
||||
#// map<BroString, CardinalityCounter*>::iterator it;
|
||||
#
|
||||
#// for(it = hll_counters.begin() ; it != hll_counters.end(); it++)
|
||||
#// {
|
||||
#// a->Assign((*it).first);
|
||||
#// }
|
||||
#// return a;
|
||||
# return new Val(1, TYPE_BOOL);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue