### Question:
AbstractStatefulHash implements StatefulHash { @Override public void update(byte[] input) { updateUnchecked(input, 0, input.length); }  @Override boolean supportsUnsafe(); @Override void update(byte[] input); @Override void update(byte[] input, int index, int length); @Override void update(ByteBuffer input); @Override void update(long address, long length); @Override byte[] getBytes(); @Override int getBytes(byte[] output, int index, int maxLength); @Override byte getByte(); @Override short getShort();  }### Answer:
@Test(expected = IllegalArgumentException.class) public void testUpdateByteArrayIntNegInt() { final byte[] input = new byte[42]; hash.update(input, 1, -1); }
@Test(expected = IndexOutOfBoundsException.class) public void testUpdateByteArrayNegIntInt() { final byte[] input = new byte[42]; hash.update(input, -1, 10); }
@Test(expected = IndexOutOfBoundsException.class) public void testUpdateByteArrayIntIntOverflow() { final byte[] input = new byte[42]; hash.update(input, 40, 3); }