protected <T> void assertBlock(Block block, Supplier<BlockBuilder> newBlockBuilder, T[] expectedValues) { assertBlockPositions(block, newBlockBuilder, expectedValues); assertBlockPositions(copyBlockViaBlockSerde(block), newBlockBuilder, expectedValues); assertBlockPositions(copyBlockViaWritePositionTo(block, newBlockBuilder), newBlockBuilder, expectedValues); if (expectedValues.getClass().getComponentType().isArray() || expectedValues.getClass().getComponentType() == List.class || expectedValues.getClass().getComponentType() == Map.class) { assertBlockPositions(copyBlockViaWriteStructure(block, newBlockBuilder), newBlockBuilder, expectedValues); } assertBlockSize(block); assertRetainedSize(block); try { block.isNull(-1); fail("expected IllegalArgumentException"); } catch (IllegalArgumentException expected) { } try { block.isNull(block.getPositionCount()); fail("expected IllegalArgumentException"); } catch (IllegalArgumentException expected) { } }