private void randomModifications( long[] expected, int count ) throws IOException { BitSet editedNodes = new BitSet(); try ( LabelScanWriter writer = store.newWriter() ) { for ( int i = 0; i < count; i++ ) { int nodeId = random.nextInt( NODE_COUNT ); if ( editedNodes.get( nodeId ) ) { i--; continue; } int changeSize = random.nextInt( 3 ) + 1; long labels = expected[nodeId]; long[] labelsBefore = getLabels( labels ); for ( int j = 0; j < changeSize; j++ ) { labels = flipRandom( labels, LABEL_COUNT, random.random() ); } long[] labelsAfter = getLabels( labels ); editedNodes.set( nodeId ); NodeLabelUpdate labelChanges = labelChanges( nodeId, labelsBefore, labelsAfter ); writer.write( labelChanges ); expected[nodeId] = labels; } } }
private void initializeNativeLabelScanStoreWithContent( DatabaseLayout databaseLayout ) throws IOException { try ( Lifespan lifespan = new Lifespan() ) { NativeLabelScanStore nativeLabelScanStore = getNativeLabelScanStore( databaseLayout, false ); lifespan.add( nativeLabelScanStore ); try ( LabelScanWriter labelScanWriter = nativeLabelScanStore.newWriter() ) { labelScanWriter.write( NodeLabelUpdate.labelChanges( 1, new long[0], new long[]{1} ) ); } nativeLabelScanStore.force( IOLimiter.UNLIMITED ); } }