From 0eea1dc08d10cd748b8738d8d5dada2a0a217242 Mon Sep 17 00:00:00 2001 From: Gian Merlino Date: Tue, 26 Aug 2014 18:47:52 -0700 Subject: [PATCH] Test for desired timeseries zero-filling behavior. --- .../timeseries/TimeseriesQueryRunnerTest.java | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/processing/src/test/java/io/druid/query/timeseries/TimeseriesQueryRunnerTest.java b/processing/src/test/java/io/druid/query/timeseries/TimeseriesQueryRunnerTest.java index e6cdcd391d..1f4ba61eac 100644 --- a/processing/src/test/java/io/druid/query/timeseries/TimeseriesQueryRunnerTest.java +++ b/processing/src/test/java/io/druid/query/timeseries/TimeseriesQueryRunnerTest.java @@ -21,7 +21,9 @@ package io.druid.query.timeseries; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; import com.google.common.collect.Lists; +import com.metamx.common.Granularity; import com.metamx.common.guava.Sequences; import io.druid.granularity.PeriodGranularity; import io.druid.granularity.QueryGranularity; @@ -465,6 +467,74 @@ public class TimeseriesQueryRunnerTest TestHelper.assertExpectedResults(expectedResults1, results1); } + @Test + public void testTimeseriesQueryZeroFilling() + { + TimeseriesQuery query1 = Druids.newTimeseriesQueryBuilder() + .dataSource(QueryRunnerTestHelper.dataSource) + .filters(QueryRunnerTestHelper.providerDimension, "spot", "upfront", "total_market") + .granularity(QueryGranularity.HOUR) + .intervals( + Arrays.asList( + new Interval( + "2011-04-14T00:00:00.000Z/2011-05-01T00:00:00.000Z" + ) + ) + ) + .aggregators( + Arrays.asList( + QueryRunnerTestHelper.rowsCount, + new LongSumAggregatorFactory( + "idx", + "index" + ) + ) + ) + .build(); + + List> lotsOfZeroes = Lists.newArrayList(); + for (final Long millis : QueryGranularity.HOUR.iterable( + new DateTime("2011-04-14T01").getMillis(), + new DateTime("2011-04-15").getMillis() + )) { + lotsOfZeroes.add( + new Result<>( + new DateTime(millis), + new TimeseriesResultValue( + ImmutableMap.of("rows", 0L, "idx", 0L) + ) + ) + ); + } + List> expectedResults1 = Lists.newArrayList( + Iterables.concat( + Arrays.asList( + new Result<>( + new DateTime("2011-04-14T00"), + new TimeseriesResultValue( + ImmutableMap.of("rows", 13L, "idx", 4907L) + ) + ) + ), + lotsOfZeroes, + Arrays.asList( + new Result<>( + new DateTime("2011-04-15T00"), + new TimeseriesResultValue( + ImmutableMap.of("rows", 13L, "idx", 4717L) + ) + ) + ) + ) + ); + + Iterable> results1 = Sequences.toList( + runner.run(query1), + Lists.>newArrayList() + ); + TestHelper.assertExpectedResults(expectedResults1, results1); + } + @Test public void testTimeseriesQueryGranularityNotAlignedWithRollupGranularity() { -- GitLab