@Override public AggregatorFactory getCombiningFactory() { return new LongMinAggregatorFactory(name, name, null, macroTable); }
@Test public void testEqualsAndHashCode() { LongMinAggregatorFactory one = new LongMinAggregatorFactory("name1", "fieldName1"); LongMinAggregatorFactory oneMore = new LongMinAggregatorFactory("name1", "fieldName1"); LongMinAggregatorFactory two = new LongMinAggregatorFactory("name2", "fieldName2"); Assert.assertEquals(one.hashCode(), oneMore.hashCode()); Assert.assertTrue(one.equals(oneMore)); Assert.assertFalse(one.equals(two)); }
@Override protected BaseLongColumnValueSelector selector(ColumnSelectorFactory metricFactory) { return getLongColumnSelector( metricFactory, Long.MAX_VALUE ); }
@Test public void testCombine() { Assert.assertEquals(-9223372036854775803L, longMinAggFactory.combine(-9223372036854775800L, -9223372036854775803L)); }
@Test public void testLongMinBufferAggregator() { BufferAggregator agg = longMinAggFactory.factorizeBuffered(colSelectorFactory); ByteBuffer buffer = ByteBuffer.wrap(new byte[Long.BYTES + Byte.BYTES]); agg.init(buffer, 0); aggregate(selector, agg, buffer, 0); aggregate(selector, agg, buffer, 0); aggregate(selector, agg, buffer, 0); aggregate(selector, agg, buffer, 0); Assert.assertEquals(values[2], ((Long) agg.get(buffer, 0)).longValue()); Assert.assertEquals(values[2], agg.getLong(buffer, 0)); Assert.assertEquals((float) values[2], agg.getFloat(buffer, 0), 0.0001); }
@Test public void testLongMinAggregator() { Aggregator agg = longMinAggFactory.factorize(colSelectorFactory); aggregate(selector, agg); aggregate(selector, agg); aggregate(selector, agg); aggregate(selector, agg); Assert.assertEquals(values[2], ((Long) agg.get()).longValue()); Assert.assertEquals(values[2], agg.getLong()); Assert.assertEquals((float) values[2], agg.getFloat(), 0.0001); }
@Override public List<AggregatorFactory> getRequiredColumns() { return Collections.singletonList(new LongMinAggregatorFactory(fieldName, fieldName, expression, macroTable)); }
@Override protected BaseLongColumnValueSelector selector(ColumnSelectorFactory metricFactory) { return getLongColumnSelector( metricFactory, Long.MAX_VALUE ); }
private static AggregatorFactory createMinAggregatorFactory( final ValueType aggregationType, final String name, final String fieldName, final String expression, final ExprMacroTable macroTable ) { switch (aggregationType) { case LONG: return new LongMinAggregatorFactory(name, fieldName, expression, macroTable); case FLOAT: return new FloatMinAggregatorFactory(name, fieldName, expression, macroTable); case DOUBLE: return new DoubleMinAggregatorFactory(name, fieldName, expression, macroTable); default: throw new ISE("Cannot create aggregator factory for type[%s]", aggregationType); } } }
LongMinAggregatorFactory longMinAggregatorFactory = new LongMinAggregatorFactory(NAME, FIELD); constructorArrays.add( new Object[]{
new CountAggregatorFactory("a2:count"), new LongSumAggregatorFactory("a3", "cnt"), new LongMinAggregatorFactory("a4", "cnt"), new LongMaxAggregatorFactory("a5", "cnt"), new FilteredAggregatorFactory(
.setAggregatorSpecs(AGGS( new LongMaxAggregatorFactory("_a0", "a0"), new LongMinAggregatorFactory("_a1", "a0"), new LongSumAggregatorFactory("_a2:sum", "a0"), new CountAggregatorFactory("_a2:count"),
@Override public AggregatorFactory getCombiningFactory() { return new LongMinAggregatorFactory(name, name, null, macroTable); }
@Override public List<AggregatorFactory> getRequiredColumns() { return Collections.singletonList(new LongMinAggregatorFactory(fieldName, fieldName, expression, macroTable)); }
private static AggregatorFactory createMinAggregatorFactory( final ValueType aggregationType, final String name, final String fieldName, final String expression, final ExprMacroTable macroTable ) { switch (aggregationType) { case LONG: return new LongMinAggregatorFactory(name, fieldName, expression, macroTable); case FLOAT: return new FloatMinAggregatorFactory(name, fieldName, expression, macroTable); case DOUBLE: return new DoubleMinAggregatorFactory(name, fieldName, expression, macroTable); default: throw new ISE("Cannot create aggregator factory for type[%s]", aggregationType); } } }