original-brownbear commented on code in PR #13224: URL: https://github.com/apache/lucene/pull/13224#discussion_r1543613500
########## lucene/core/src/test/org/apache/lucene/util/packed/TestDirectMonotonic.java: ########## @@ -154,6 +154,43 @@ public void testConstantSlope() throws IOException { dir.close(); } + public void testZeroValuesSmallBlobShift() throws IOException { + Directory dir = newDirectory(); + final int numValues = TestUtil.nextInt(random(), 8, 1 << 20); + // use blockShift < log2(numValues) + final int blockShift = + TestUtil.nextInt( + random(), + DirectMonotonicWriter.MIN_BLOCK_SHIFT, + Math.toIntExact(Math.round(Math.log(numValues) / Math.log(2))) - 1); + + final long dataLength; + try (IndexOutput metaOut = dir.createOutput("meta", IOContext.DEFAULT); + IndexOutput dataOut = dir.createOutput("data", IOContext.DEFAULT)) { + DirectMonotonicWriter w = + DirectMonotonicWriter.getInstance(metaOut, dataOut, numValues, blockShift); + for (int i = 0; i < numValues; i++) { + w.add(0); + } + w.finish(); + dataLength = dataOut.getFilePointer(); + } + + try (IndexInput metaIn = dir.openInput("meta", IOContext.READONCE); + IndexInput dataIn = dir.openInput("data", IOContext.DEFAULT)) { + DirectMonotonicReader.Meta meta = + DirectMonotonicReader.loadMeta(metaIn, numValues, blockShift); Review Comment: Sure thing, asserted that it's the singleton by reading twice since we made everything private :) [35df3ea](https://github.com/apache/lucene/pull/13224/commits/35df3ea2ddcc664fad94ab8e9b84dfab3674fab8) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org