public void testBloomFilterBytes() { BloomFilter bf = new BloomFilter(10000); byte[] val = new byte[] { 1, 2, 3 }; byte[] val1 = new byte[] { 1, 2, 3, 4 }; byte[] val2 = new byte[] { 1, 2, 3, 4, 5 }; byte[] val3 = new byte[] { 1, 2, 3, 4, 5, 6 }; Assert.Equal(false, bf.test(val)); Assert.Equal(false, bf.test(val1)); Assert.Equal(false, bf.test(val2)); Assert.Equal(false, bf.test(val3)); bf.add(val); Assert.Equal(true, bf.test(val)); Assert.Equal(false, bf.test(val1)); Assert.Equal(false, bf.test(val2)); Assert.Equal(false, bf.test(val3)); bf.add(val1); Assert.Equal(true, bf.test(val)); Assert.Equal(true, bf.test(val1)); Assert.Equal(false, bf.test(val2)); Assert.Equal(false, bf.test(val3)); bf.add(val2); Assert.Equal(true, bf.test(val)); Assert.Equal(true, bf.test(val1)); Assert.Equal(true, bf.test(val2)); Assert.Equal(false, bf.test(val3)); bf.add(val3); Assert.Equal(true, bf.test(val)); Assert.Equal(true, bf.test(val1)); Assert.Equal(true, bf.test(val2)); Assert.Equal(true, bf.test(val3)); byte[] randVal = new byte[COUNT]; for (int i = 0; i < COUNT; i++) { rand.NextBytes(randVal); bf.add(randVal); } // last value should be present Assert.Equal(true, bf.test(randVal)); // most likely this value should not exist randVal[0] = 0; randVal[1] = 0; randVal[2] = 0; randVal[3] = 0; randVal[4] = 0; Assert.Equal(false, bf.test(randVal)); Assert.Equal(7800, bf.sizeInBytes()); }