### Question:
ConvertUtils { public static String padHex(final String hex, int hexStringSize) { Validate.isTrue( hex.length() <= hexStringSize, "Hex " + hex + " size must be at least " + hexStringSize); return StringUtils.rightPad(hex, hexStringSize, '0'); } private  ConvertUtils(); static byte[] getBytes(final String hexString); static String toHex(final byte[] bytes); static String padHex(final String hex, int hexStringSize); static byte[] fromHexToBytes(String hexString); static Pair<String, Integer> xorValues(String originalValue, String newValue); static String fromHexToString(final String hexString); static String fromStringToHex(final String plainText); static String toSize16Hex(final BigInteger number); static void validateNotNegative(final BigInteger number); static void validateNotNegative(final long number); static String toString(final BigInteger number); static BigInteger toUnsignedBigInteger(long value); static BigInteger toUnsignedBigInteger(BigInteger value); static boolean isHexString(String input); static void validateIsHexString(String input); static void validateIsHexString(String input, Integer size); static String reverseHexString(String hex); static byte[] xor(byte[] b1, byte[] b2);  }### Answer:
@Test void padHex() { Assertions.assertEquals( "F8CBC85DAC0BA67AD8E3196814F5ABED2149B41D000000000000000000000000", ConvertUtils.padHex("F8CBC85DAC0BA67AD8E3196814F5ABED2149B41D", 64)); Assertions.assertEquals( "F8CBC85DAC0BA67AD8E3196814F5ABED2149B41D", ConvertUtils.padHex("F8CBC85DAC0BA67AD8E3196814F5ABED2149B41D", 40)); IllegalArgumentException exception = Assertions.assertThrows( IllegalArgumentException.class, () -> ConvertUtils.padHex("F8CBC85DAC0BA67AD8E3196814F5ABED2149B41D", 20)); Assertions.assertEquals( "Hex F8CBC85DAC0BA67AD8E3196814F5ABED2149B41D size must be at least 20", exception.getMessage()); }