@Test public void testBuildSimple() { DefaultLimitSpec limitSpec = new DefaultLimitSpec( ImmutableList.of(), 2 ); Function<Sequence<Row>, Sequence<Row>> limitFn = limitSpec.build( ImmutableList.of(), ImmutableList.of(), ImmutableList.of(), Granularities.NONE, false ); Assert.assertEquals( ImmutableList.of(testRowsList.get(0), testRowsList.get(1)), limitFn.apply(testRowsSequence).toList() ); }
@Test public void testSortDimensionDescending() { DefaultLimitSpec limitSpec = new DefaultLimitSpec( ImmutableList.of(new OrderByColumnSpec("k1", OrderByColumnSpec.Direction.DESCENDING)), 2 ); Function<Sequence<Row>, Sequence<Row>> limitFn = limitSpec.build( ImmutableList.of(new DefaultDimensionSpec("k1", "k1")), ImmutableList.of(), ImmutableList.of(), Granularities.NONE, false ); // Note: This test encodes the fact that limitSpec sorts numbers like strings; we might want to change this // in the future. Assert.assertEquals( ImmutableList.of(testRowsList.get(2), testRowsList.get(1)), limitFn.apply(testRowsSequence).toList() ); }
@Test public void testWithAllGranularity() { DefaultLimitSpec limitSpec = new DefaultLimitSpec( ImmutableList.of(new OrderByColumnSpec("k1", OrderByColumnSpec.Direction.ASCENDING, StringComparators.NUMERIC)), 2 ); Function<Sequence<Row>, Sequence<Row>> limitFn = limitSpec.build( ImmutableList.of(new DefaultDimensionSpec("k1", "k1", ValueType.DOUBLE)), ImmutableList.of(), ImmutableList.of(), Granularities.ALL, true ); Assert.assertEquals( ImmutableList.of(testRowsList.get(0), testRowsList.get(1)), limitFn.apply(testRowsSequence).toList() ); }
@Test public void testWithSortByDimsFirst() { DefaultLimitSpec limitSpec = new DefaultLimitSpec( ImmutableList.of(new OrderByColumnSpec("k1", OrderByColumnSpec.Direction.ASCENDING, StringComparators.NUMERIC)), 2 ); Function<Sequence<Row>, Sequence<Row>> limitFn = limitSpec.build( ImmutableList.of(new DefaultDimensionSpec("k1", "k1", ValueType.DOUBLE)), ImmutableList.of(), ImmutableList.of(), Granularities.NONE, true ); Assert.assertEquals( ImmutableList.of(testRowsList.get(2), testRowsList.get(0)), limitFn.apply(testRowsSequence).toList() ); }
Function<Sequence<Row>, Sequence<Row>> limitFn = limitSpec.build( ImmutableList.of( new DefaultDimensionSpec("k1", "k1") limitFn = limitSpec.build( ImmutableList.of( new DefaultDimensionSpec("k1", "k1") limitFn = limitSpec.build( ImmutableList.of( new DefaultDimensionSpec("k1", "k1") limitFn = limitSpec.build( ImmutableList.of(new DefaultDimensionSpec("k1", "k1")), ImmutableList.of(new LongSumAggregatorFactory("k2", "k2")),