你如何测试Hyperloglog的实现?

时间:2016-01-08 18:07:30

标签: testing verification hyperloglog

那里有很多Hyperloglog实​​现,但是如何验证/测试Hyperloglog实​​现?要检查它的准确性",它是"错误"约束行为?抛出一些静态测试用例看起来非常无效。

更具体的是,有人更改了随机数例程,我怎么知道这不是一个灾难性的选择,并显示一些自动化,可重复的测试?

有人能指出我在github或其他地方进行的任何已知的良好测试,可能会有一些解释吗?

1 个答案:

答案 0 :(得分:1)

好问题。首先,请注意,虽然HyperLogLog的理论基础提供了一些准确性指示,但测试您正在使用的实现至关重要。

测试应该使用随机数据集(也可以使用其他静态数据集),并且应该应用于不同的集合基数。如果您有任何测试自动化框架,那么这将是确保避免回归的自然场所,如上所述。但是,请注意,要测量具有较大基数的精度,测试运行时可能会过高。

您可以使用以下实施作为参考。它包括抽取大量随机数的单元测试,并以固定的间隔检查精度。

https://github.com/Microsoft/CardinalityEstimation