FragmentStream { public boolean canInsertByteArray(byte[] bytesToAdd, int offset) { for (int i = 0; i < bytesToAdd.length; i++) { if (fragmentByteMap.containsKey(offset + i)) { if (fragmentByteMap.get(offset + i) != bytesToAdd[i]) { return false; } } } return true; } FragmentStream(int intendedSize); boolean canInsertByteArray(byte[] bytesToAdd, int offset); void insertByteArray(byte[] bytesToAdd, int offset); boolean isComplete(int tillIndex); byte[] getCompleteFilledStream(byte fillingByte); byte[] getCompleteTruncatedStream();  }
@Test public void testCanInsertByteArray() { stream.insertByteArray(new byte[] { 0, 1, 2, 3 }, 0); assertTrue(stream.canInsertByteArray(new byte[] { 4, 5, 6 }, 4)); assertTrue(stream.canInsertByteArray(new byte[] { 3, 4, 5 }, 3)); assertFalse(stream.canInsertByteArray(new byte[] { 4, 4, 5 }, 3)); }