@Override public ColumnValueSelector<?> makeColumnValueSelector(ReadableOffset offset) { return column.makeColumnValueSelector(offset, nullValueBitmap); }
private void assertIndexMatchesVals(ColumnarLongs indexed, long[] vals) { Assert.assertEquals(vals.length, indexed.size()); for (int i = 0; i < indexed.size(); ++i) { Assert.assertEquals( StringUtils.format( "Value [%d] at row '%d' does not match [%d]", indexed.get(i), i, vals[i] ), vals[i], indexed.get(i) ); } } }
@Override public void close() { column.close(); }
@Override public int length() { return column.size(); }
@Override public long getLongSingleValueRow(int rowNum) { return column.get(rowNum); }
private void tryFill(ColumnarLongs indexed, long[] vals, final int startIndex, final int size) { long[] filled = new long[size]; indexed.fill(startIndex, filled); for (int i = startIndex; i < filled.length; i++) { Assert.assertEquals(vals[i + startIndex], filled[i]); } }
private void assertIndexMatchesVals(ColumnarLongs indexed, long[] vals) { Assert.assertEquals(vals.length, indexed.size()); // sequential access int[] indices = new int[vals.length]; for (int i = 0; i < indexed.size(); ++i) { Assert.assertEquals(vals[i], indexed.get(i)); indices[i] = i; } // random access, limited to 1000 elements for large lists (every element would take too long) IntArrays.shuffle(indices, ThreadLocalRandom.current()); final int limit = Math.min(indexed.size(), 1000); for (int i = 0; i < limit; ++i) { int k = indices[i]; Assert.assertEquals(vals[k], indexed.get(k)); } }
public void testValues(long[] values) throws Exception { ColumnarLongsSerializer serializer = CompressionFactory.getLongSerializer( new OffHeapMemorySegmentWriteOutMedium(), "test", order, encodingStrategy, compressionStrategy ); serializer.open(); for (long value : values) { serializer.add(value); } Assert.assertEquals(values.length, serializer.size()); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); serializer.writeTo(Channels.newChannel(baos), null); Assert.assertEquals(baos.size(), serializer.getSerializedSize()); CompressedColumnarLongsSupplier supplier = CompressedColumnarLongsSupplier.fromByteBuffer(ByteBuffer.wrap(baos.toByteArray()), order); ColumnarLongs longs = supplier.get(); assertIndexMatchesVals(longs, values); longs.close(); }
@Override public int length() { return column.size(); }
@Override public long getLongSingleValueRow(int rowNum) { return column.get(rowNum); }
testConcurrentThreadReads(supplier, longs, values); longs.close();
@Override public ColumnValueSelector<?> makeColumnValueSelector(ReadableOffset offset) { return column.makeColumnValueSelector(offset, IndexIO.LEGACY_FACTORY.getBitmapFactory().makeEmptyImmutableBitmap()); }
@Override public void close() { column.close(); }
@Override public ColumnValueSelector<?> makeColumnValueSelector(ReadableOffset offset) { return column.makeColumnValueSelector(offset, nullValueBitmap); }
@Override public ColumnValueSelector<?> makeColumnValueSelector(ReadableOffset offset) { return column.makeColumnValueSelector(offset, IndexIO.LEGACY_FACTORY.getBitmapFactory().makeEmptyImmutableBitmap()); }