Search in sources :

Example 1 with SingleTypedHistogram

use of com.facebook.presto.operator.aggregation.histogram.SingleTypedHistogram in project presto by prestodb.

the class TestTypedHistogram method testMassive.

@Test
public void testMassive() {
    BlockBuilder inputBlockBuilder = BIGINT.createBlockBuilder(null, 5000);
    TypedHistogram typedHistogram = new SingleTypedHistogram(BIGINT, 1000);
    IntStream.range(1, 2000).flatMap(i -> IntStream.iterate(i, IntUnaryOperator.identity()).limit(i)).forEach(j -> BIGINT.writeLong(inputBlockBuilder, j));
    Block inputBlock = inputBlockBuilder.build();
    for (int i = 0; i < inputBlock.getPositionCount(); i++) {
        typedHistogram.add(i, inputBlock, 1);
    }
    MapType mapType = mapType(BIGINT, BIGINT);
    BlockBuilder out = mapType.createBlockBuilder(null, 1);
    typedHistogram.serialize(out);
    Block outputBlock = mapType.getObject(out, 0);
    for (int i = 0; i < outputBlock.getPositionCount(); i += 2) {
        assertEquals(BIGINT.getLong(outputBlock, i + 1), BIGINT.getLong(outputBlock, i));
    }
}
Also used : IntStream(java.util.stream.IntStream) BIGINT(com.facebook.presto.common.type.BigintType.BIGINT) BlockBuilder(com.facebook.presto.common.block.BlockBuilder) MapType(com.facebook.presto.common.type.MapType) IntUnaryOperator(java.util.function.IntUnaryOperator) SingleTypedHistogram(com.facebook.presto.operator.aggregation.histogram.SingleTypedHistogram) Assert.assertEquals(org.testng.Assert.assertEquals) Test(org.testng.annotations.Test) StructuralTestUtil.mapType(com.facebook.presto.util.StructuralTestUtil.mapType) Block(com.facebook.presto.common.block.Block) TypedHistogram(com.facebook.presto.operator.aggregation.histogram.TypedHistogram) SingleTypedHistogram(com.facebook.presto.operator.aggregation.histogram.SingleTypedHistogram) TypedHistogram(com.facebook.presto.operator.aggregation.histogram.TypedHistogram) SingleTypedHistogram(com.facebook.presto.operator.aggregation.histogram.SingleTypedHistogram) Block(com.facebook.presto.common.block.Block) MapType(com.facebook.presto.common.type.MapType) BlockBuilder(com.facebook.presto.common.block.BlockBuilder) Test(org.testng.annotations.Test)

Aggregations

Block (com.facebook.presto.common.block.Block)1 BlockBuilder (com.facebook.presto.common.block.BlockBuilder)1 BIGINT (com.facebook.presto.common.type.BigintType.BIGINT)1 MapType (com.facebook.presto.common.type.MapType)1 SingleTypedHistogram (com.facebook.presto.operator.aggregation.histogram.SingleTypedHistogram)1 TypedHistogram (com.facebook.presto.operator.aggregation.histogram.TypedHistogram)1 StructuralTestUtil.mapType (com.facebook.presto.util.StructuralTestUtil.mapType)1 IntUnaryOperator (java.util.function.IntUnaryOperator)1 IntStream (java.util.stream.IntStream)1 Assert.assertEquals (org.testng.Assert.assertEquals)1 Test (org.testng.annotations.Test)1