public static Integer parseInt(String value) {
        return parseInt(value, ZERO_RADIX);
    }
@Test
    public void parseInt() {
        Assertions.assertNull(TbUtils.parseInt(null));
        Assertions.assertNull(TbUtils.parseInt(""));
        Assertions.assertNull(TbUtils.parseInt(" "));

        Assertions.assertEquals((Integer) 0, TbUtils.parseInt("0"));
        Assertions.assertEquals((Integer) 0, TbUtils.parseInt("-0"));
        Assertions.assertEquals(java.util.Optional.of(473).get(), TbUtils.parseInt("473"));
        Assertions.assertEquals(java.util.Optional.of(-255).get(), TbUtils.parseInt("-0xFF"));
        Assertions.assertThrows(NumberFormatException.class, () -> TbUtils.parseInt("-0xFF123"));
        Assertions.assertEquals(java.util.Optional.of(-255).get(), TbUtils.parseInt("-FF"));
        Assertions.assertEquals(java.util.Optional.of(255).get(), TbUtils.parseInt("FF"));
        Assertions.assertThrows(IllegalArgumentException.class, () -> TbUtils.parseInt("FFF"));
        Assertions.assertEquals(java.util.Optional.of(-2578).get(), TbUtils.parseInt("-0A12"));
        Assertions.assertEquals(java.util.Optional.of(-2578).get(), TbUtils.parseHexToInt("-0A12"));
        Assertions.assertThrows(IllegalArgumentException.class, () -> TbUtils.parseHexToInt("A12", false));
        Assertions.assertEquals(java.util.Optional.of(-14866).get(), TbUtils.parseBigEndianHexToInt("-3A12"));
        Assertions.assertThrows(IllegalArgumentException.class, () -> TbUtils.parseLittleEndianHexToInt("-A12"));

        Assertions.assertThrows(NumberFormatException.class, () -> TbUtils.parseInt("0xFG"));

        Assertions.assertEquals(java.util.Optional.of(102).get(), TbUtils.parseInt("1100110", MIN_RADIX));
        Assertions.assertEquals(java.util.Optional.of(-102).get(), TbUtils.parseInt("1111111111111111111111111111111111111111111111111111111110011010", MIN_RADIX));
        Assertions.assertThrows(NumberFormatException.class, () -> TbUtils.parseInt("1100210", MIN_RADIX));
        Assertions.assertEquals(java.util.Optional.of(13158).get(), TbUtils.parseInt("11001101100110", MIN_RADIX));
        Assertions.assertEquals(java.util.Optional.of(-13158).get(), TbUtils.parseInt("1111111111111111111111111111111111111111111111111100110010011010", MIN_RADIX));


        Assertions.assertEquals(java.util.Optional.of(63).get(), TbUtils.parseInt("77", 8));
        Assertions.assertThrows(NumberFormatException.class, () -> TbUtils.parseInt("18", 8));

        Assertions.assertEquals(java.util.Optional.of(-255).get(), TbUtils.parseInt("-FF", 16));
        Assertions.assertThrows(NumberFormatException.class, () -> TbUtils.parseInt("FG", 16));

        Assertions.assertEquals(java.util.Optional.of(Integer.MAX_VALUE).get(), TbUtils.parseInt(Integer.toString(Integer.MAX_VALUE), 10));
        Assertions.assertThrows(NumberFormatException.class, () -> TbUtils.parseInt(BigInteger.valueOf(Integer.MAX_VALUE).add(BigInteger.valueOf(1)).toString(10), 10));
        Assertions.assertEquals(java.util.Optional.of(Integer.MIN_VALUE).get(), TbUtils.parseInt(Integer.toString(Integer.MIN_VALUE), 10));
        Assertions.assertThrows(NumberFormatException.class, () -> TbUtils.parseInt(BigInteger.valueOf(Integer.MIN_VALUE).subtract(BigInteger.valueOf(1)).toString(10), 10));

        Assertions.assertEquals(java.util.Optional.of(506070563).get(), TbUtils.parseInt("KonaIn", 30));

        Assertions.assertThrows(NumberFormatException.class, () -> TbUtils.parseInt("KonaIn", 10));
        Assertions.assertThrows(NumberFormatException.class, () -> TbUtils.parseInt(".456", 10));
        Assertions.assertThrows(NumberFormatException.class, () -> TbUtils.parseInt("4562.", 10));

        Assertions.assertThrows(IllegalArgumentException.class, () -> TbUtils.parseInt("KonaIn", MAX_RADIX + 1));
        Assertions.assertThrows(IllegalArgumentException.class, () -> TbUtils.parseInt("KonaIn", MIN_RADIX - 1));
        Assertions.assertThrows(IllegalArgumentException.class, () -> TbUtils.parseInt("KonaIn", 12));
    }