@Override public double getDouble(ByteBuffer buf, int position) { return delegate.getDouble(buf, position); }
@Override public double getDouble(ByteBuffer buf, int position) { return delegate.getDouble(buf, position); }
@Override public double getDouble(ByteBuffer buf, int position) { if (buf.get(position) == NullHandling.IS_NULL_BYTE) { throw new IllegalStateException("Cannot return double for Null Value"); } return delegate.getDouble(buf, position + Byte.BYTES); }
@Override public double getMetricDoubleValue(int rowOffset, int aggOffset) { BufferAggregator agg = getAggs()[aggOffset]; int[] indexAndOffset = indexAndOffsets.get(rowOffset); ByteBuffer bb = aggBuffers.get(indexAndOffset[0]).get(); return agg.getDouble(bb, indexAndOffset[1] + aggOffsetInBuffer[aggOffset]); }
@Test public void testDoubleLastCombiningBufferAggregator() { BufferAggregator agg = combiningAggFactory.factorizeBuffered( colSelectorFactory); ByteBuffer buffer = ByteBuffer.wrap(new byte[doubleLastAggFactory.getMaxIntermediateSizeWithNulls()]); agg.init(buffer, 0); aggregate(agg, buffer, 0); aggregate(agg, buffer, 0); aggregate(agg, buffer, 0); aggregate(agg, buffer, 0); Pair<Long, Double> result = (Pair<Long, Double>) agg.get(buffer, 0); Pair<Long, Double> expected = (Pair<Long, Double>) pairs[2]; Assert.assertEquals(expected.lhs, result.lhs); Assert.assertEquals(expected.rhs, result.rhs, 0.0001); Assert.assertEquals(expected.rhs.longValue(), agg.getLong(buffer, 0)); Assert.assertEquals(expected.rhs, agg.getDouble(buffer, 0), 0.0001); }
@Test public void testDoubleFirstCombiningBufferAggregator() { BufferAggregator agg = combiningAggFactory.factorizeBuffered( colSelectorFactory); ByteBuffer buffer = ByteBuffer.wrap(new byte[doubleFirstAggFactory.getMaxIntermediateSizeWithNulls()]); agg.init(buffer, 0); aggregate(agg, buffer, 0); aggregate(agg, buffer, 0); aggregate(agg, buffer, 0); aggregate(agg, buffer, 0); Pair<Long, Double> result = (Pair<Long, Double>) agg.get(buffer, 0); Pair<Long, Double> expected = (Pair<Long, Double>) pairs[2]; Assert.assertEquals(expected.lhs, result.lhs); Assert.assertEquals(expected.rhs, result.rhs, 0.0001); Assert.assertEquals(expected.rhs.longValue(), agg.getLong(buffer, 0)); Assert.assertEquals(expected.rhs, agg.getDouble(buffer, 0), 0.0001); }
@Test public void testDoubleLastBufferAggregator() { BufferAggregator agg = doubleLastAggFactory.factorizeBuffered( colSelectorFactory); ByteBuffer buffer = ByteBuffer.wrap(new byte[doubleLastAggFactory.getMaxIntermediateSizeWithNulls()]); agg.init(buffer, 0); aggregate(agg, buffer, 0); aggregate(agg, buffer, 0); aggregate(agg, buffer, 0); aggregate(agg, buffer, 0); Pair<Long, Double> result = (Pair<Long, Double>) agg.get(buffer, 0); Assert.assertEquals(times[0], result.lhs.longValue()); Assert.assertEquals(doubles[0], result.rhs, 0.0001); Assert.assertEquals((long) doubles[0], agg.getLong(buffer, 0)); Assert.assertEquals(doubles[0], agg.getDouble(buffer, 0), 0.0001); }
@Test public void testDoubleFirstBufferAggregator() { BufferAggregator agg = doubleFirstAggFactory.factorizeBuffered( colSelectorFactory); ByteBuffer buffer = ByteBuffer.wrap(new byte[doubleFirstAggFactory.getMaxIntermediateSizeWithNulls()]); agg.init(buffer, 0); aggregate(agg, buffer, 0); aggregate(agg, buffer, 0); aggregate(agg, buffer, 0); aggregate(agg, buffer, 0); Pair<Long, Double> result = (Pair<Long, Double>) agg.get(buffer, 0); Assert.assertEquals(times[1], result.lhs.longValue()); Assert.assertEquals(doubleValues[1], result.rhs, 0.0001); Assert.assertEquals((long) doubleValues[1], agg.getLong(buffer, 0)); Assert.assertEquals(doubleValues[1], agg.getDouble(buffer, 0), 0.0001); }
@Override public double getDouble(ByteBuffer buf, int position) { return delegate.getDouble(buf, position); }
@Override public double getDouble(ByteBuffer buf, int position) { return delegate.getDouble(buf, position); }
@Override public double getDouble(ByteBuffer buf, int position) { if (buf.get(position) == NullHandling.IS_NULL_BYTE) { throw new IllegalStateException("Cannot return double for Null Value"); } return delegate.getDouble(buf, position + Byte.BYTES); }
@Override public double getMetricDoubleValue(int rowOffset, int aggOffset) { BufferAggregator agg = getAggs()[aggOffset]; int[] indexAndOffset = indexAndOffsets.get(rowOffset); ByteBuffer bb = aggBuffers.get(indexAndOffset[0]).get(); return agg.getDouble(bb, indexAndOffset[1] + aggOffsetInBuffer[aggOffset]); }