sclass Test_ByteArraysPartialInputStream { new ByteArraysPartialInputStream stream; int n = 1000, nRanges = 10; byte[] data; int markPos; L ranges; public void run() ctex { data = randomBytes(n); ranges = splitIntoRandomRanges(nRanges, IntRange(0, n)); markPos = middleElement(ranges).start; print(n2(ranges, "range") /*+ " (" + ranges + ")"*/ + ", markPos=" + markPos); for (r : ranges) { stream.write(subByteArray(data, r)); if (r.start == markPos) stream.mark(n); } print("Wrote"); print("Reading " + n); for i to n: assertEquals(ubyteToInt(data[i]), stream.read()); assertEquals(-1, stream.read()); print("Resetting to " + markPos); stream.reset(); for (int i = markPos; i < n; i++) assertEquals(ubyteToInt(data[i]), stream.read()); assertEquals(-1, stream.read()); print("Read OK"); } }