public void testBloomFilterByte() { BloomFilter bf = new BloomFilter(10000); byte val = Byte.MinValue; byte val1 = 1; byte val2 = 2; byte val3 = Byte.MaxValue; Assert.Equal(false, bf.testLong(val)); Assert.Equal(false, bf.testLong(val1)); Assert.Equal(false, bf.testLong(val2)); Assert.Equal(false, bf.testLong(val3)); bf.addLong(val); Assert.Equal(true, bf.testLong(val)); Assert.Equal(false, bf.testLong(val1)); Assert.Equal(false, bf.testLong(val2)); Assert.Equal(false, bf.testLong(val3)); bf.addLong(val1); Assert.Equal(true, bf.testLong(val)); Assert.Equal(true, bf.testLong(val1)); Assert.Equal(false, bf.testLong(val2)); Assert.Equal(false, bf.testLong(val3)); bf.addLong(val2); Assert.Equal(true, bf.testLong(val)); Assert.Equal(true, bf.testLong(val1)); Assert.Equal(true, bf.testLong(val2)); Assert.Equal(false, bf.testLong(val3)); bf.addLong(val3); Assert.Equal(true, bf.testLong(val)); Assert.Equal(true, bf.testLong(val1)); Assert.Equal(true, bf.testLong(val2)); Assert.Equal(true, bf.testLong(val3)); byte randVal = 0; for (int i = 0; i < COUNT; i++) { randVal = (byte)rand.Next(Byte.MaxValue); bf.addLong(randVal); } // last value should be present Assert.Equal(true, bf.testLong(randVal)); // most likely this value should not exist Assert.Equal(false, bf.testLong(unchecked((byte)-120))); Assert.Equal(7800, bf.sizeInBytes()); }
public void testBloomFilterLong() { BloomFilter bf = new BloomFilter(10000); long val = Int64.MinValue; long val1 = 1; long val2 = 2; long val3 = Int64.MaxValue; Assert.Equal(false, bf.testLong(val)); Assert.Equal(false, bf.testLong(val1)); Assert.Equal(false, bf.testLong(val2)); Assert.Equal(false, bf.testLong(val3)); bf.addLong(val); Assert.Equal(true, bf.testLong(val)); Assert.Equal(false, bf.testLong(val1)); Assert.Equal(false, bf.testLong(val2)); Assert.Equal(false, bf.testLong(val3)); bf.addLong(val1); Assert.Equal(true, bf.testLong(val)); Assert.Equal(true, bf.testLong(val1)); Assert.Equal(false, bf.testLong(val2)); Assert.Equal(false, bf.testLong(val3)); bf.addLong(val2); Assert.Equal(true, bf.testLong(val)); Assert.Equal(true, bf.testLong(val1)); Assert.Equal(true, bf.testLong(val2)); Assert.Equal(false, bf.testLong(val3)); bf.addLong(val3); Assert.Equal(true, bf.testLong(val)); Assert.Equal(true, bf.testLong(val1)); Assert.Equal(true, bf.testLong(val2)); Assert.Equal(true, bf.testLong(val3)); long randVal = 0; for (int i = 0; i < COUNT; i++) { randVal = rand.NextLong(); bf.addLong(randVal); } // last value should be present Assert.Equal(true, bf.testLong(randVal)); // most likely this value should not exist Assert.Equal(false, bf.testLong(-120)); Assert.Equal(7800, bf.sizeInBytes()); }
public void testIntNullSafeEqualsBloomFilter() { PredicateLeaf pred = TestSearchArgumentImpl.createPredicateLeaf( PredicateLeaf.Operator.NULL_SAFE_EQUALS, PredicateLeaf.Type.LONG, "x", 15L, null); BloomFilter bf = new BloomFilter(10000); for (int i = 20; i < 1000; i++) { bf.addLong(i); } ColumnStatistics cs = ColumnStatisticsImpl.deserialize(createIntStats(10, 100)); Assert.Equal(TruthValue.NO, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); bf.addLong(15); Assert.Equal(TruthValue.YES_NO, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); }
public void testIntInBloomFilter() { List<object> args = new List<object>(); args.Add(15L); args.Add(19L); PredicateLeaf pred = TestSearchArgumentImpl.createPredicateLeaf (PredicateLeaf.Operator.IN, PredicateLeaf.Type.LONG, "x", null, args); BloomFilter bf = new BloomFilter(10000); for (int i = 20; i < 1000; i++) { bf.addLong(i); } ColumnStatistics cs = ColumnStatisticsImpl.deserialize(createIntStats(10, 100)); Assert.Equal(TruthValue.NO_NULL, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); bf.addLong(19); Assert.Equal(TruthValue.YES_NO_NULL, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); bf.addLong(15); Assert.Equal(TruthValue.YES_NO_NULL, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); }
public void testDateWritableEqualsBloomFilter() { PredicateLeaf pred = TestSearchArgumentImpl.createPredicateLeaf( PredicateLeaf.Operator.EQUALS, PredicateLeaf.Type.DATE, "x", new Date(15), null); BloomFilter bf = new BloomFilter(10000); for (int i = 20; i < 1000; i++) { bf.addLong((new Date(i)).Days); } ColumnStatistics cs = ColumnStatisticsImpl.deserialize(createDateStats(10, 100)); Assert.Equal(TruthValue.NO_NULL, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); bf.addLong((new Date(15)).Days); Assert.Equal(TruthValue.YES_NO_NULL, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); }
public void testTimestampNullSafeEqualsBloomFilter() { PredicateLeaf pred = TestSearchArgumentImpl.createPredicateLeaf( PredicateLeaf.Operator.NULL_SAFE_EQUALS, PredicateLeaf.Type.TIMESTAMP, "x", new Timestamp(15), null); BloomFilter bf = new BloomFilter(10000); for (int i = 20; i < 1000; i++) { bf.addLong((new Timestamp(i)).Milliseconds); } ColumnStatistics cs = ColumnStatisticsImpl.deserialize(createTimestampStats(10, 100)); Assert.Equal(TruthValue.NO, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); bf.addLong((new Timestamp(15)).Milliseconds); Assert.Equal(TruthValue.YES_NO, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); }