Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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));
        }