nip45: remove hyperloglog tests as they have to be rewritten with the new deterministic model.

This commit is contained in:
fiatjaf
2024-12-07 00:14:41 -03:00
parent 851116d2e3
commit 142da7344f

View File

@@ -1,130 +0,0 @@
package hyperloglog
import (
"encoding/hex"
"math/rand/v2"
"testing"
"github.com/stretchr/testify/require"
)
func TestHyperLogLogBasic(t *testing.T) {
rand := rand.New(rand.NewPCG(1, 0))
for _, count := range []int{
2, 4, 6, 7, 12, 15, 22, 36, 44, 47,
64, 77, 89, 95, 104, 116, 122, 144,
150, 199, 300, 350, 400, 500, 600,
777, 922, 1000, 1500, 2222, 9999,
13600, 80000, 133333, 200000,
} {
hll := New()
for range count {
b := make([]byte, 32)
for i := range b {
b[i] = uint8(rand.UintN(256))
}
id := hex.EncodeToString(b)
hll.Add(id)
}
c := hll.Count()
res100 := int(c * 100)
require.Greater(t, res100, count*85, "result too low (actual %d < %d)", c, count)
require.Less(t, res100, count*115, "result too high (actual %d > %d)", c, count)
}
}
func TestHyperLogLogMerge(t *testing.T) {
rand := rand.New(rand.NewPCG(2, 0))
for _, count := range []int{
2, 4, 6, 7, 12, 15, 22, 36, 44, 47,
64, 77, 89, 95, 104, 116, 122, 144,
150, 199, 300, 350, 400, 500, 600,
777, 922, 1000, 1500, 2222, 9999,
13600, 80000, 133333, 200000,
} {
hllA := New()
hllB := New()
for range count / 2 {
b := make([]byte, 32)
for i := range b {
b[i] = uint8(rand.UintN(256))
}
id := hex.EncodeToString(b)
hllA.Add(id)
}
for range count / 2 {
b := make([]byte, 32)
for i := range b {
b[i] = uint8(rand.UintN(256))
}
id := hex.EncodeToString(b)
hllB.Add(id)
}
hll := New()
hll.Merge(hllA)
hll.Merge(hllB)
res100 := int(hll.Count() * 100)
require.Greater(t, res100, count*85, "result too low (actual %d < %d)", hll.Count(), count)
require.Less(t, res100, count*115, "result too high (actual %d > %d)", hll.Count(), count)
}
}
func TestHyperLogLogMergeComplex(t *testing.T) {
rand := rand.New(rand.NewPCG(4, 0))
for _, count := range []int{
3, 6, 9, 12, 15, 22, 36, 46, 57,
64, 77, 89, 95, 104, 116, 122, 144,
150, 199, 300, 350, 400, 500, 600,
777, 922, 1000, 1500, 2222, 9999,
13600, 80000, 133333, 200000,
} {
hllA := New()
hllB := New()
hllC := New()
for range count / 3 {
b := make([]byte, 32)
for i := range b {
b[i] = uint8(rand.UintN(256))
}
id := hex.EncodeToString(b)
hllA.Add(id)
hllC.Add(id)
}
for range count / 3 {
b := make([]byte, 32)
for i := range b {
b[i] = uint8(rand.UintN(256))
}
id := hex.EncodeToString(b)
hllB.Add(id)
hllC.Add(id)
}
for range count / 3 {
b := make([]byte, 32)
for i := range b {
b[i] = uint8(rand.UintN(256))
}
id := hex.EncodeToString(b)
hllC.Add(id)
hllA.Add(id)
}
hll := New()
hll.Merge(hllA)
hll.Merge(hllB)
hll.Merge(hllC)
res100 := int(hll.Count() * 100)
require.Greater(t, res100, count*85, "result too low (actual %d < %d)", hll.Count(), count)
require.Less(t, res100, count*115, "result too high (actual %d > %d)", hll.Count(), count)
}
}