@Test public void testCopyPositions() { for (int fixedSize = 0; fixedSize < 20; fixedSize++) { Slice[] expectedValues = alternatingNullValues(createExpectedValues(17, fixedSize)); BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues, fixedSize); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), () -> blockBuilder.newBlockBuilderLike(null), 0, 2, 4, 6, 7, 9, 10, 16); } }
private void assertFixedWithValues(Slice[] expectedValues, int fixedSize) { BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues, fixedSize); assertBlock(blockBuilder, () -> blockBuilder.newBlockBuilderLike(null), expectedValues); assertBlock(blockBuilder.build(), () -> blockBuilder.newBlockBuilderLike(null), expectedValues); }
@Test public void test() { for (int fixedSize = 0; fixedSize < 20; fixedSize++) { Slice[] expectedValues = createExpectedValues(17, fixedSize); assertFixedWithValues(expectedValues, fixedSize); assertFixedWithValues(alternatingNullValues(expectedValues), fixedSize); } }
@Test public void testEstimatedDataSizeForStats() { for (int fixedSize = 0; fixedSize < 20; fixedSize++) { Slice[] expectedValues = alternatingNullValues(createExpectedValues(17, fixedSize)); BlockBuilder blockBuilder = new FixedWidthBlockBuilder(fixedSize, null, expectedValues.length); writeValues(expectedValues, blockBuilder); assertEstimatedDataSizeForStats(blockBuilder, expectedValues); } }
@Test public void testLazyBlockBuilderInitialization() { for (int fixedSize = 0; fixedSize < 20; fixedSize++) { Slice[] expectedValues = alternatingNullValues(createExpectedValues(17, fixedSize)); BlockBuilder emptyBlockBuilder = new FixedWidthBlockBuilder(fixedSize, null, 0); BlockBuilder blockBuilder = new FixedWidthBlockBuilder(fixedSize, null, expectedValues.length); assertEquals(blockBuilder.getSizeInBytes(), emptyBlockBuilder.getSizeInBytes()); assertEquals(blockBuilder.getRetainedSizeInBytes(), emptyBlockBuilder.getRetainedSizeInBytes()); writeValues(expectedValues, blockBuilder); assertTrue(blockBuilder.getSizeInBytes() > emptyBlockBuilder.getSizeInBytes()); assertTrue(blockBuilder.getRetainedSizeInBytes() > emptyBlockBuilder.getRetainedSizeInBytes()); blockBuilder = blockBuilder.newBlockBuilderLike(null); assertEquals(blockBuilder.getSizeInBytes(), emptyBlockBuilder.getSizeInBytes()); assertEquals(blockBuilder.getRetainedSizeInBytes(), emptyBlockBuilder.getRetainedSizeInBytes()); } }
@Test public void testCompactBlock() { Slice compactSlice = Slices.copyOf(createExpectedValue(24)); Slice incompactSlice = Slices.copyOf(createExpectedValue(30)).slice(0, 24); boolean[] valueIsNull = {false, true, false, false, false, false}; testCompactBlock(new FixedWidthBlock(4, 0, EMPTY_SLICE, Optional.empty())); testCompactBlock(new FixedWidthBlock(4, valueIsNull.length, compactSlice, Optional.of(Slices.wrappedBooleanArray(valueIsNull)))); testIncompactBlock(new FixedWidthBlock(4, valueIsNull.length - 1, compactSlice, Optional.of(Slices.wrappedBooleanArray(valueIsNull)))); // underlying slice is not compact testIncompactBlock(new FixedWidthBlock(4, valueIsNull.length, incompactSlice, Optional.of(Slices.wrappedBooleanArray(valueIsNull)))); }
private static Slice[] createExpectedValues(int positionCount, int fixedSize) { Slice[] expectedValues = new Slice[positionCount]; for (int position = 0; position < positionCount; position++) { expectedValues[position] = createExpectedValue(fixedSize); } return expectedValues; } }
private static Slice[] createExpectedValues(int positionCount, int fixedSize) { Slice[] expectedValues = new Slice[positionCount]; for (int position = 0; position < positionCount; position++) { expectedValues[position] = createExpectedValue(fixedSize); } return expectedValues; } }
@Test public void testCopyPositions() throws Exception { for (int fixedSize = 0; fixedSize < 20; fixedSize++) { Slice[] expectedValues = (Slice[]) alternatingNullValues(createExpectedValues(17, fixedSize)); BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues, fixedSize); assertBlockFilteredPositions(expectedValues, blockBuilder.build(), Ints.asList(0, 2, 4, 6, 7, 9, 10, 16)); } }
@Test public void test() { for (int fixedSize = 0; fixedSize < 20; fixedSize++) { Slice[] expectedValues = createExpectedValues(17, fixedSize); assertFixedWithValues(expectedValues, fixedSize); assertFixedWithValues((Slice[]) alternatingNullValues(expectedValues), fixedSize); } }
private void assertFixedWithValues(Slice[] expectedValues, int fixedSize) { BlockBuilder blockBuilder = createBlockBuilderWithValues(expectedValues, fixedSize); assertBlock(blockBuilder, expectedValues); assertBlock(blockBuilder.build(), expectedValues); }