### Question:
ByteUtil { public static byte[] concat(byte[] b1, byte[] b2) { byte[] result = Arrays.copyOf(b1, b1.length + b2.length); System.arraycopy(b2, 0, result, b1.length, b2.length); return result; }  static byte[] trimLeadingZeroes(byte[] bytes); static byte[] concat(byte[] b1, byte[] b2);  }### Answer:
@Test public void testConcat() { byte[][][] exampleData = new byte[][][] { new byte[][] { new byte[] { 0, 0, 0, 0, 1, 2, 3, 4}, new byte[] { 5, 6, 7, 8}, new byte[] { 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8}, }, new byte[][] { new byte[] { 1, 2, 3, 4}, new byte[] { 1, 2, 3, 4}, new byte[] { 1, 2, 3, 4, 1, 2, 3, 4}, }, new byte[][] { new byte[] { 1, 2, 3, 4, 0, 0}, new byte[0], new byte[] { 1, 2, 3, 4, 0, 0}, }, new byte[][] { new byte[0], new byte[] { 1, 2, 3, 4, 0, 0}, new byte[] { 1, 2, 3, 4, 0, 0}, } }; for (byte[][] test : exampleData) { byte[] concatResult = ByteUtil.concat(test[0], test[1]); assertArrayEquals(concatResult, test[2]); } }