@Override public long getLongSingleValueRow(int rowNum) { return (long) column.get(rowNum); }
@Benchmark public void readSkipping(Blackhole bh) { ColumnarFloats columnarFloats = supplier.get(); int count = columnarFloats.size(); for (int i = 0; i < count; i += ThreadLocalRandom.current().nextInt(2000)) { bh.consume(columnarFloats.get(i)); } columnarFloats.close(); }
@Benchmark public void readContinuous(Blackhole bh) { ColumnarFloats columnarFloats = supplier.get(); int count = columnarFloats.size(); for (int i = 0; i < count; i++) { bh.consume(columnarFloats.get(i)); } columnarFloats.close(); }
for (int j = 0; j < indexed.size(); ++j) { final float val = vals[j]; final float indexedVal = indexed.get(j); if (Floats.compare(val, indexedVal) != 0) { failureHappened.set(true);
for (int j = indexed2.size() - 1; j >= 0; --j) { final float val = vals[j]; final float indexedVal = indexed2.get(j); if (Floats.compare(val, indexedVal) != 0) { failureHappened.set(true);
private void assertIndexMatchesVals(ColumnarFloats indexed, float[] 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), DELTA); 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), DELTA); } }
@Override public long getLongSingleValueRow(int rowNum) { return (long) column.get(rowNum); }