Numeric { public static String toHexStringNoPrefixZeroPadded(BigInteger value) { String result = toHexStringNoPrefix(value); if (result.length() % 2 == 0) { return result; } else { return toHexStringZeroPadded(value, result.length() + 1, false); } } private  Numeric(); static String encodeQuantity(BigInteger value); static BigInteger decodeQuantity(String value); static String cleanHexPrefix(String input); static String prependHexPrefix(String input); static boolean containsHexPrefix(String input); static boolean isValidHexString(String string); static BigDecimal fromFixed8ToDecimal(byte[] value); static BigDecimal fromFixed8ToDecimal(String hexString); static BigDecimal fromFixed8ToDecimal(BigInteger value); static byte[] fromDecimalToFixed8ByteArray(BigDecimal value); static byte[] fromDecimalToFixed8ByteArray(BigInteger value); static String fromDecimalToFixed8HexString(BigDecimal value); static String fromDecimalToFixed8HexString(BigInteger value); static BigInteger toBigInt(byte[] value, int offset, int length); static BigInteger toBigInt(byte[] value); static BigInteger toBigInt(String hexValue); static BigInteger toBigIntNoPrefix(String hexValue); static String toHexStringWithPrefix(BigInteger value); static String toHexStringNoPrefix(BigInteger value); static String toHexStringNoPrefix(byte input); static String toHexStringNoPrefix(byte[] input); static String toHexStringWithPrefixZeroPadded(BigInteger value, int size); static String toHexStringWithPrefixSafe(BigInteger value); static String toHexStringNoPrefixZeroPadded(BigInteger value); static String toHexStringNoPrefixZeroPadded(BigInteger value, int size); static byte[] toBytesPadded(BigInteger value, int length); static byte[] hexStringToByteArray(String input); static String toHexString(byte[] input, int offset, int length, boolean withPrefix); static String toHexString(byte input); static String toHexString(byte[] input); static String hexToString(String input); static BigInteger hexToInteger(String input); static String reverseHexString(String input); static byte asByte(int m, int n); static boolean isIntegerValue(BigDecimal value);  }
@Test public void testToHexStringNoPrefixZeroPadded() { assertThat( Numeric.toHexStringNoPrefixZeroPadded( BigInteger.ZERO, 5), is("00000")); assertThat( Numeric.toHexStringNoPrefixZeroPadded( new BigInteger("11c52b08330e05d731e38c856c1043288f7d9744", 16), 40), is("11c52b08330e05d731e38c856c1043288f7d9744")); assertThat( Numeric.toHexStringNoPrefixZeroPadded( new BigInteger("01c52b08330e05d731e38c856c1043288f7d9744", 16), 40), is("01c52b08330e05d731e38c856c1043288f7d9744")); }
@Test(expected = UnsupportedOperationException.class) public void testToHexStringZeroPaddedNegative() { Numeric.toHexStringNoPrefixZeroPadded(BigInteger.valueOf(-1), 20); }
@Test(expected = UnsupportedOperationException.class) public void testToHexStringZeroPaddedTooLargs() { Numeric.toHexStringNoPrefixZeroPadded(BigInteger.valueOf(-1), 5); }
@Test public void convertingToHexStringAndZeroPaddingAnOddLengthHexString() { assertThat(Numeric.toHexStringNoPrefixZeroPadded(new BigInteger("0e", 16)), is("0e")); }
@Test public void convertingToHexStringAndZeroPaddingAnEvenLengthHexString() { assertThat(Numeric.toHexStringNoPrefixZeroPadded(new BigInteger("1e", 16)), is("1e")); }