private void verifyCountQuery(Cube cube, String aggregation, long startTs, long endTs, int resolution,
String measureName, AggregationFunction aggFunction,
Map<String, String> dimValues, List<String> groupByDims,
Collection<TimeSeries> expected, Interpolator interpolator) throws Exception {
CubeQuery query = CubeQuery.builder()
.select()
.measurement(measureName, aggFunction)
.from(aggregation).resolution(resolution, TimeUnit.SECONDS)
.where()
.dimensions(dimValues)
.timeRange(startTs, endTs)
.groupBy()
.dimensions(groupByDims)
.limit(Integer.MAX_VALUE)
.interpolator(interpolator)
.build();
Collection<TimeSeries> result = cube.query(query);
Assert.assertEquals(String.format("expected: %s, found: %s", expected, result), expected.size(), result.size());
Assert.assertTrue(String.format("expected: %s, found: %s", expected, result), expected.containsAll(result));
}