31 uint32_t (*Hash)(
const void *, uint16_t, uint8_t, uint32_t)) {
34 if (size == 0 || iter == 0)
81 printf(
"\n---------- Bloom Filter Stats -----------\n");
83 printf(
"Memory size: %" PRIu32
" bytes\n", bf->
bitarray_size/8 + 1);
84 printf(
"Hash function pointer: %p\n", bf->
Hash);
86 printf(
"-----------------------------------------\n");
94 if (bf == NULL || data == NULL || datalen == 0)
126 static uint32_t BloomFilterTestHash(
const void *data, uint16_t datalen, uint8_t iter, uint32_t hash_size)
128 uint8_t *d = (uint8_t *)data;
132 for (i = 0; i < datalen; i++) {
133 if (i == 0) hash += (((uint32_t)*d++));
134 else if (i == 1) hash += (((uint32_t)*d++) * datalen);
135 else hash *= (((uint32_t)*d++) * i);
138 hash *= (iter + datalen);
143 static int BloomFilterTestInit01 (
void)
154 static int BloomFilterTestInit02 (
void)
164 static int BloomFilterTestInit03 (
void)
171 if (bf->
Hash == BloomFilterTestHash)
178 static int BloomFilterTestInit04 (
void)
188 static int BloomFilterTestInit05 (
void)
198 static int BloomFilterTestAdd01 (
void)
216 static int BloomFilterTestAdd02 (
void)
234 static int BloomFilterTestFull01 (
void)
245 r = BloomFilterTest(bf,
"test", 4);
256 static int BloomFilterTestFull02 (
void)
263 int r = BloomFilterTest(bf,
"test", 4);