### Question:
GBPTree implements Closeable { public boolean wasDirtyOnStartup() { return dirtyOnStartup; } GBPTree( PageCache pageCache, File indexFile, Layout<KEY,VALUE> layout, int tentativePageSize,
            Monitor monitor, Header.Reader headerReader, Consumer<PageCursor> headerWriter,
            RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, boolean readOnly ); static void readHeader( PageCache pageCache, File indexFile, Header.Reader headerReader ); RawCursor<Hit<KEY,VALUE>,IOException> seek( KEY fromInclusive, KEY toExclusive ); void checkpoint( IOLimiter ioLimiter, Consumer<PageCursor> headerWriter ); void checkpoint( IOLimiter ioLimiter ); @Override void close(); Writer<KEY,VALUE> writer(); Writer<KEY,VALUE> writer( double ratioToKeepInLeftOnSplit ); VISITOR visit( VISITOR visitor ); @SuppressWarnings( "unused" ) void printTree(); void printState(); boolean consistencyCheck(); boolean consistencyCheck( boolean reportCrashPointers ); boolean consistencyCheck( GBPTreeConsistencyCheckVisitor<KEY> visitor ); boolean consistencyCheck( GBPTreeConsistencyCheckVisitor<KEY> visitor, boolean reportCrashPointers ); @VisibleForTesting void unsafe( GBPTreeUnsafe<KEY,VALUE> unsafe ); @Override String toString(); boolean wasDirtyOnStartup(); int keyValueSizeCap(); static final Monitor NO_MONITOR; static final Header.Reader NO_HEADER_READER; static final Consumer<PageCursor> NO_HEADER_WRITER; }### Answer:
@Test public void dirtyIndexIsNotCleanOnNextStartWithoutRecovery() throws IOException { makeDirty(); try ( GBPTree<MutableLong, MutableLong> index = index().with( RecoveryCleanupWorkCollector.ignore() ).build() ) { assertTrue( index.wasDirtyOnStartup() ); } }