public void testDoubleNullSafeEqualsBloomFilter() { PredicateLeaf pred = TestSearchArgumentImpl.createPredicateLeaf( PredicateLeaf.Operator.NULL_SAFE_EQUALS, PredicateLeaf.Type.FLOAT, "x", 15.0, null); BloomFilter bf = new BloomFilter(10000); for (int i = 20; i < 1000; i++) { bf.addDouble(i); } ColumnStatistics cs = ColumnStatisticsImpl.deserialize(createDoubleStats(10.0, 100.0)); Assert.Equal(TruthValue.NO, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); bf.addDouble(15.0); Assert.Equal(TruthValue.YES_NO, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); }
public void testBloomFilterFloat() { BloomFilter bf = new BloomFilter(10000); float val = Single.MinValue; float val1 = 1.1f; float val2 = 2.2f; float val3 = Single.MaxValue; Assert.Equal(false, bf.testDouble(val)); Assert.Equal(false, bf.testDouble(val1)); Assert.Equal(false, bf.testDouble(val2)); Assert.Equal(false, bf.testDouble(val3)); bf.addDouble(val); Assert.Equal(true, bf.testDouble(val)); Assert.Equal(false, bf.testDouble(val1)); Assert.Equal(false, bf.testDouble(val2)); Assert.Equal(false, bf.testDouble(val3)); bf.addDouble(val1); Assert.Equal(true, bf.testDouble(val)); Assert.Equal(true, bf.testDouble(val1)); Assert.Equal(false, bf.testDouble(val2)); Assert.Equal(false, bf.testDouble(val3)); bf.addDouble(val2); Assert.Equal(true, bf.testDouble(val)); Assert.Equal(true, bf.testDouble(val1)); Assert.Equal(true, bf.testDouble(val2)); Assert.Equal(false, bf.testDouble(val3)); bf.addDouble(val3); Assert.Equal(true, bf.testDouble(val)); Assert.Equal(true, bf.testDouble(val1)); Assert.Equal(true, bf.testDouble(val2)); Assert.Equal(true, bf.testDouble(val3)); float randVal = 0; for (int i = 0; i < COUNT; i++) { randVal = rand.NextFloat(); bf.addDouble(randVal); } // last value should be present Assert.Equal(true, bf.testDouble(randVal)); // most likely this value should not exist Assert.Equal(false, bf.testDouble(-120.2f)); Assert.Equal(7800, bf.sizeInBytes()); }
public void testDoubleInBloomFilter() { List<object> args = new List<object>(); args.Add(15.0); args.Add(19.0); PredicateLeaf pred = TestSearchArgumentImpl.createPredicateLeaf (PredicateLeaf.Operator.IN, PredicateLeaf.Type.FLOAT, "x", null, args); BloomFilter bf = new BloomFilter(10000); for (int i = 20; i < 1000; i++) { bf.addDouble(i); } ColumnStatistics cs = ColumnStatisticsImpl.deserialize(createDoubleStats(10.0, 100.0)); Assert.Equal(TruthValue.NO_NULL, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); bf.addDouble(19.0); Assert.Equal(TruthValue.YES_NO_NULL, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); bf.addDouble(15.0); Assert.Equal(TruthValue.YES_NO_NULL, RecordReaderImpl.evaluatePredicate(cs, pred, bf)); }