@Test
public void testCompactBlock()
{
Slice compactSlice = Slices.copyOf(createExpectedValue(16));
Slice incompactSlice = Slices.copyOf(createExpectedValue(20)).slice(0, 16);
int[] offsets = {0, 1, 1, 2, 4, 8, 16};
boolean[] valueIsNull = {false, true, false, false, false, false};
testCompactBlock(new VariableWidthBlock(0, EMPTY_SLICE, new int[1], Optional.empty()));
testCompactBlock(new VariableWidthBlock(valueIsNull.length, compactSlice, offsets, Optional.of(valueIsNull)));
testIncompactBlock(new VariableWidthBlock(valueIsNull.length - 1, compactSlice, offsets, Optional.of(valueIsNull)));
testIncompactBlock(new VariableWidthBlock(valueIsNull.length, incompactSlice, offsets, Optional.of(valueIsNull)));
}