### Question:
ArrayUtils { public static byte[] duplicate(final byte[] src) { final byte[] result = new byte[src.length]; System.arraycopy(src, 0, result, 0, src.length); return result; } private  ArrayUtils(); static byte[] duplicate(final byte[] src); static byte[] concat(final byte[]... arrays); static byte[][] split(final byte[] bytes, final int splitIndex); static byte[] toByteArray(final BigInteger value, final int numBytes); static BigInteger toBigInteger(final byte[] bytes); static int isEqualConstantTime(final byte[] b, final byte[] c); static int compare(final byte[] b, final byte[] c); static int getBit(final byte[] h, final int i);  }### Answer:
@Test public void duplicateIsNotReference() { final byte[] src = new byte[] {1, 2, 3, 4}; final byte[] result = ArrayUtils.duplicate(src); MatcherAssert.assertThat(result, IsNot.not(IsSame.sameInstance(src))); }
@Test public void duplicateThrowsExceptionOnNull() { Assertions.assertThrows(NullPointerException.class, () -> ArrayUtils.duplicate(null)); }