### Question:
ArrayUtils { public static int isEqualConstantTime(final byte[] b, final byte[] c) { int result = 0; result |= b.length - c.length; for (int i = 0; i < b.length; i++) { result |= b[i] ^ c[i]; } return ByteUtils.isEqualConstantTime(result, 0); } 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 isEqualsReturnsOneForEqualByteArrays() { for (int i = 0; i < 100; i++) { byte[] bytes1 = RandomUtils.generateRandomBytes(32); byte[] bytes2 = new byte[32]; System.arraycopy(bytes1, 0, bytes2, 0, 32); final int result = ArrayUtils.isEqualConstantTime(bytes1, bytes2); MatcherAssert.assertThat(createMessage(bytes1, bytes2), result, IsEqual.equalTo(1)); } }
@Test public void isEqualsReturnsZeroForUnequalByteArrays() { byte[] bytes1 = RandomUtils.generateRandomBytes(32); byte[] bytes2 = new byte[32]; for (int i = 0; i < 32; i++) { System.arraycopy(bytes1, 0, bytes2, 0, 32); bytes2[i] = (byte) (bytes2[i] ^ 0xff); final int result = ArrayUtils.isEqualConstantTime(bytes1, bytes2); MatcherAssert.assertThat(createMessage(bytes1, bytes2), result, IsEqual.equalTo(0)); } }