### Question:
InputPageProjection implements PageProjection { @Override public Work<Block> project(ConnectorSession session, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) { Block block = requireNonNull(page, "page is null").getBlock(0); requireNonNull(selectedPositions, "selectedPositions is null"); if (selectedPositions.isList()) { block = block.copyPositions(selectedPositions.getPositions(), selectedPositions.getOffset(), selectedPositions.size()); } else { block = block.getRegion(selectedPositions.getOffset(), selectedPositions.size()); } return new CompletedWork<>(block); } InputPageProjection(int inputChannel, Type type); @Override Type getType(); @Override boolean isDeterministic(); @Override InputChannels getInputChannels(); @Override Work<Block> project(ConnectorSession session, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions);  }### Answer:
@Test public void testLazyInputPage() { InputPageProjection projection = new InputPageProjection(0, BIGINT); Block block = createLongSequenceBlock(0, 100); Block result = projection.project(SESSION, new DriverYieldSignal(), new Page(block), SelectedPositions.positionsRange(0, 100)).getResult(); assertFalse(result instanceof LazyBlock); block = lazyWrapper(block); result = projection.project(SESSION, new DriverYieldSignal(), new Page(block), SelectedPositions.positionsRange(0, 100)).getResult(); assertTrue(result instanceof LazyBlock); assertFalse(result.isLoaded()); }