NumberUtilTest.java

package tools.jackson.databind.util;

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

/**
 * @since 3.2
 */
public class NumberUtilTest
{
    @Test
    public void testSimpleDigits() {
        assertTrue(NumberUtil.isValidJDKIntNumber("0"));
        assertTrue(NumberUtil.isValidJDKIntNumber("1"));
        assertTrue(NumberUtil.isValidJDKIntNumber("42"));
        assertTrue(NumberUtil.isValidJDKIntNumber("1234567890"));
    }

    @Test
    public void testLeadingZeroes() {
        assertTrue(NumberUtil.isValidJDKIntNumber("007"));
        assertTrue(NumberUtil.isValidJDKIntNumber("00"));
    }

    @Test
    public void testSignedNumbers() {
        assertTrue(NumberUtil.isValidJDKIntNumber("-1"));
        assertTrue(NumberUtil.isValidJDKIntNumber("+1"));
        assertTrue(NumberUtil.isValidJDKIntNumber("-0"));
        assertTrue(NumberUtil.isValidJDKIntNumber("+42"));
        assertTrue(NumberUtil.isValidJDKIntNumber("-1234567890"));
    }

    @Test
    public void testEmptyAndSignOnly() {
        assertFalse(NumberUtil.isValidJDKIntNumber(""));
        assertFalse(NumberUtil.isValidJDKIntNumber("-"));
        assertFalse(NumberUtil.isValidJDKIntNumber("+"));
    }

    @Test
    public void testNonNumeric() {
        assertFalse(NumberUtil.isValidJDKIntNumber("abc"));
        assertFalse(NumberUtil.isValidJDKIntNumber("12a"));
        assertFalse(NumberUtil.isValidJDKIntNumber("a12"));
        assertFalse(NumberUtil.isValidJDKIntNumber("NOT_A_NUMBER"));
    }

    @Test
    public void testDecimalAndFloat() {
        assertFalse(NumberUtil.isValidJDKIntNumber("1.0"));
        assertFalse(NumberUtil.isValidJDKIntNumber("3.14"));
        assertFalse(NumberUtil.isValidJDKIntNumber("1e10"));
        assertFalse(NumberUtil.isValidJDKIntNumber("1E10"));
    }

    @Test
    public void testWhitespaceAndSpecialChars() {
        assertFalse(NumberUtil.isValidJDKIntNumber(" 1"));
        assertFalse(NumberUtil.isValidJDKIntNumber("1 "));
        assertFalse(NumberUtil.isValidJDKIntNumber(" "));
        assertFalse(NumberUtil.isValidJDKIntNumber("1,000"));
    }
}