use of org.apache.druid.query.aggregation.PostAggregator in project druid by druid-io.
the class ArrayOfDoublesSketchToEstimatePostAggregatorTest method testComparator.
@Test
public void testComparator() {
ArrayOfDoublesUpdatableSketch s1 = new ArrayOfDoublesUpdatableSketchBuilder().setNominalEntries(16).setNumberOfValues(2).build();
s1.update("foo", new double[] { 1.0, 2.0 });
ArrayOfDoublesUpdatableSketch s2 = new ArrayOfDoublesUpdatableSketchBuilder().setNominalEntries(16).setNumberOfValues(2).build();
s2.update("foo", new double[] { 2.0, 2.0 });
s2.update("bar", new double[] { 3.0, 4.0 });
PostAggregator field1 = EasyMock.createMock(PostAggregator.class);
EasyMock.expect(field1.compute(EasyMock.anyObject(Map.class))).andReturn(s1).anyTimes();
PostAggregator field2 = EasyMock.createMock(PostAggregator.class);
EasyMock.expect(field2.compute(EasyMock.anyObject(Map.class))).andReturn(s2).anyTimes();
EasyMock.replay(field1, field2);
final ArrayOfDoublesSketchToEstimatePostAggregator postAgg1 = new ArrayOfDoublesSketchToEstimatePostAggregator("a", field1);
final ArrayOfDoublesSketchToEstimatePostAggregator postAgg2 = new ArrayOfDoublesSketchToEstimatePostAggregator("a", field2);
// estimate1 is 1.0, estimate2 is 2.0
Double estimate1 = postAgg1.compute(ImmutableMap.of());
Double estimate2 = postAgg2.compute(ImmutableMap.of());
Assert.assertEquals(-1, postAgg1.getComparator().compare(estimate1, estimate2));
}
use of org.apache.druid.query.aggregation.PostAggregator in project druid by druid-io.
the class ArrayOfDoublesSketchToNumEntriesPostAggregatorTest method testComparator.
@Test
public void testComparator() {
ArrayOfDoublesUpdatableSketch s1 = new ArrayOfDoublesUpdatableSketchBuilder().setNominalEntries(16).setNumberOfValues(2).build();
s1.update("foo", new double[] { 1.0, 2.0 });
ArrayOfDoublesUpdatableSketch s2 = new ArrayOfDoublesUpdatableSketchBuilder().setNominalEntries(16).setNumberOfValues(2).build();
s2.update("foo", new double[] { 2.0, 2.0 });
s2.update("bar", new double[] { 3.0, 4.0 });
PostAggregator field1 = EasyMock.createMock(PostAggregator.class);
EasyMock.expect(field1.compute(EasyMock.anyObject(Map.class))).andReturn(s1).anyTimes();
PostAggregator field2 = EasyMock.createMock(PostAggregator.class);
EasyMock.expect(field2.compute(EasyMock.anyObject(Map.class))).andReturn(s2).anyTimes();
EasyMock.replay(field1, field2);
final ArrayOfDoublesSketchToNumEntriesPostAggregator postAgg1 = new ArrayOfDoublesSketchToNumEntriesPostAggregator("a", field1);
final ArrayOfDoublesSketchToNumEntriesPostAggregator postAgg2 = new ArrayOfDoublesSketchToNumEntriesPostAggregator("a", field2);
// computes number of entries per sketch, which is 1 for s1 and 2 for s2
Integer numEntries1 = postAgg1.compute(ImmutableMap.of());
Integer numEntries2 = postAgg2.compute(ImmutableMap.of());
Assert.assertEquals(-1, postAgg1.getComparator().compare(numEntries1, numEntries2));
}
use of org.apache.druid.query.aggregation.PostAggregator in project druid by druid-io.
the class ArrayOfDoublesSketchSetOpPostAggregatorTest method testSerde.
@Test
public void testSerde() throws JsonProcessingException {
final PostAggregator there = new ArrayOfDoublesSketchSetOpPostAggregator("a", "UNION", null, null, Arrays.asList(new ConstantPostAggregator("", 0), new ConstantPostAggregator("", 0)));
DefaultObjectMapper mapper = new DefaultObjectMapper();
ArrayOfDoublesSketchSetOpPostAggregator andBackAgain = mapper.readValue(mapper.writeValueAsString(there), ArrayOfDoublesSketchSetOpPostAggregator.class);
Assert.assertEquals(there, andBackAgain);
Assert.assertArrayEquals(there.getCacheKey(), andBackAgain.getCacheKey());
}
use of org.apache.druid.query.aggregation.PostAggregator in project druid by druid-io.
the class ArrayOfDoublesSketchSetOpPostAggregatorTest method testToString.
@Test
public void testToString() {
PostAggregator postAgg = new ArrayOfDoublesSketchSetOpPostAggregator("a", "UNION", 16, 1000, Arrays.asList(new ConstantPostAggregator("", 0), new ConstantPostAggregator("", 0)));
Assert.assertEquals("ArrayOfDoublesSketchSetOpPostAggregator{name='a', fields=[ConstantPostAggregator{name='', constantValue=0}, ConstantPostAggregator{name='', constantValue=0}], operation=UNION, nominalEntries=16, numberOfValues=1000}", postAgg.toString());
}
use of org.apache.druid.query.aggregation.PostAggregator in project druid by druid-io.
the class ArrayOfDoublesSketchToEstimateAndBoundsPostAggregatorTest method testSerde.
@Test
public void testSerde() throws JsonProcessingException {
final PostAggregator there = new ArrayOfDoublesSketchToEstimateAndBoundsPostAggregator("a", new ConstantPostAggregator("", 0), null);
DefaultObjectMapper mapper = new DefaultObjectMapper();
ArrayOfDoublesSketchToEstimateAndBoundsPostAggregator andBackAgain = mapper.readValue(mapper.writeValueAsString(there), ArrayOfDoublesSketchToEstimateAndBoundsPostAggregator.class);
Assert.assertEquals(there, andBackAgain);
Assert.assertArrayEquals(there.getCacheKey(), andBackAgain.getCacheKey());
}
Aggregations