### Question:
Utils { public static int readUint16(byte[] bytes, int offset) { return (bytes[offset] & 0xff) | ((bytes[offset + 1] & 0xff) << 8); }  static byte[] bigIntegerToBytes(BigInteger b, int numBytes); static void uint16ToByteArrayLE(int val, byte[] out, int offset); static void uint32ToByteArrayLE(long val, byte[] out, int offset); static void uint32ToByteArrayBE(long val, byte[] out, int offset); static void int64ToByteArrayLE(long val, byte[] out, int offset); static void uint16ToByteStreamLE(int val, OutputStream stream); static void uint16ToByteStreamBE(int val, OutputStream stream); static void uint32ToByteStreamLE(long val, OutputStream stream); static void uint32ToByteStreamBE(long val, OutputStream stream); static void int64ToByteStreamLE(long val, OutputStream stream); static void uint64ToByteStreamLE(BigInteger val, OutputStream stream); static int readUint16(byte[] bytes, int offset); static long readUint32(byte[] bytes, int offset); static long readInt64(byte[] bytes, int offset); static long readUint32BE(byte[] bytes, int offset); static int readUint16BE(byte[] bytes, int offset); static int readUint16FromStream(InputStream is); static long readUint32FromStream(InputStream is); static byte[] reverseBytes(byte[] bytes); static byte[] sha256hash160(byte[] input); static BigInteger decodeMPI(byte[] mpi, boolean hasLength); static byte[] encodeMPI(BigInteger value, boolean includeLength); static BigInteger decodeCompactBits(long compact); static long encodeCompactBits(BigInteger value); static Date rollMockClock(int seconds); static Date rollMockClockMillis(long millis); static void setMockClock(); static void setMockClock(long mockClockSeconds); static void resetMocking(); static Date now(); static long currentTimeMillis(); static long currentTimeSeconds(); static String dateTimeFormat(Date dateTime); static String dateTimeFormat(long dateTime); static boolean checkBitLE(byte[] data, int index); static void setBitLE(byte[] data, int index); static boolean isAndroidRuntime(); static boolean isOpenJDKRuntime(); static boolean isOracleJavaRuntime(); static boolean isLinux(); static boolean isWindows(); static boolean isMac(); static String toString(List<byte[]> stack); static final Joiner SPACE_JOINER; static final Splitter WHITESPACE_SPLITTER; static final BaseEncoding HEX; static final int MAX_INITIAL_ARRAY_LENGTH; }### Answer:
@Test public void testReadUint16() { assertEquals(258L, Utils.readUint16(new byte[]{2, 1}, 0)); assertEquals(258L, Utils.readUint16(new byte[]{2, 1, 3, 4}, 0)); assertEquals(772L, Utils.readUint16(new byte[]{1, 2, 4, 3}, 2)); }
@Test(expected = ArrayIndexOutOfBoundsException.class) public void testReadUint16ThrowsException1() { Utils.readUint16(new byte[]{1}, 2); }
@Test(expected = ArrayIndexOutOfBoundsException.class) public void testReadUint16ThrowsException2() { Utils.readUint16(new byte[]{1, 2, 3}, 2); }
@Test(expected = ArrayIndexOutOfBoundsException.class) public void testReadUint16ThrowsException3() { Utils.readUint16(new byte[]{1, 2, 3}, -1); }