in computer-test/src/main/java/org/apache/hugegraph/computer/core/io/BufferedStreamTest.java [92:147]
public void testWriteIntWithPosition() throws IOException {
File file = createTempFile();
try {
try (BufferedStreamOutput output = createOutput(file)) {
// 256 bytes
for (int i = 0; i < 64; i++) {
output.writeInt(i);
}
// Write at start point of current buffer
output.writeFixedInt(128, 1);
// Write at middle point of current buffer
output.writeFixedInt(200, 2);
// Write at end point of current buffer
output.writeFixedInt(252, 3);
// Write at previous buffer
Assert.assertThrows(IOException.class, () -> {
output.writeFixedInt(100, 4);
}, e -> {
Assert.assertContains("underflows the start position",
e.getMessage());
});
// Write at next buffer
Assert.assertThrows(IOException.class, () -> {
output.writeFixedInt(256, 5);
}, e -> {
Assert.assertContains("overflows the write position",
e.getMessage());
});
output.writeInt(Integer.MAX_VALUE);
output.writeInt(Integer.MIN_VALUE);
}
try (BufferedStreamInput input = createInput(file)) {
for (int i = 0; i < 64; i++) {
int position = i * 4;
switch (position) {
case 128:
Assert.assertEquals(1, input.readInt());
break;
case 200:
Assert.assertEquals(2, input.readInt());
break;
case 252:
Assert.assertEquals(3, input.readInt());
break;
default:
Assert.assertEquals(i, input.readInt());
}
}
Assert.assertEquals(Integer.MAX_VALUE, input.readInt());
Assert.assertEquals(Integer.MIN_VALUE, input.readInt());
}
} finally {
FileUtils.deleteQuietly(file);
}
}