def test_init(self): s = HyperLogLog(0.05) s.upgrade() self.assertEqual(s.p, 9) self.assertEqual(s.alpha, 0.7197831133217303) self.assertEqual(s.m, 512) self.assertEqual(len(s.M), 512)
def test_pickle(self): a = HyperLogLog(0.05) for x in range(100): a.add(str(x)) a.upgrade() b = pickle.loads(pickle.dumps(a)) numpy.testing.assert_array_equal(a.M, b.M) self.assertEqual(a.alpha, b.alpha) self.assertEqual(a.p, b.p) self.assertEqual(a.m, b.m) self.assertEqual(len(a), len(b))
def test_add(self): s = HyperLogLog(0.05) for i in range(10): s.add(str(i)) s.upgrade() M = [(i, v) for i, v in enumerate(s.M) if v > 0] numpy.testing.assert_array_equal( M, [(1, 1), (41, 1), (44, 1), (76, 3), (103, 4), (182, 1), (442, 2), (464, 5), (497, 1), (506, 1)])