Numeric { public static boolean isIntegerValue(BigDecimal value) { return value.signum() == 0 || value.scale() <= 0 || value.stripTrailingZeros().scale() <= 0; } 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 testIsIntegerValue() { assertTrue(Numeric.isIntegerValue(BigDecimal.ZERO)); assertTrue(Numeric.isIntegerValue(BigDecimal.ZERO)); assertTrue(Numeric.isIntegerValue(BigDecimal.valueOf(Long.MAX_VALUE))); assertTrue(Numeric.isIntegerValue(BigDecimal.valueOf(Long.MIN_VALUE))); assertTrue(Numeric.isIntegerValue(new BigDecimal( "9999999999999999999999999999999999999999999999999999999999999999.0"))); assertTrue(Numeric.isIntegerValue(new BigDecimal( "-9999999999999999999999999999999999999999999999999999999999999999.0"))); assertFalse(Numeric.isIntegerValue(BigDecimal.valueOf(0.1))); assertFalse(Numeric.isIntegerValue(BigDecimal.valueOf(-0.1))); assertFalse(Numeric.isIntegerValue(BigDecimal.valueOf(1.1))); assertFalse(Numeric.isIntegerValue(BigDecimal.valueOf(-1.1))); }