diff options
author | Gary Gregory <garydgregory@gmail.com> | 2024-04-24 15:59:16 -0400 |
---|---|---|
committer | Gary Gregory <garydgregory@gmail.com> | 2024-04-24 15:59:16 -0400 |
commit | 96c211eb1bc4218871b7f618c496d3d12034d414 (patch) | |
tree | 0d5f1b7ae13e61ce9ccb57f07beb7589676a5517 | |
parent | aad9a675b324eb678cca64071b9a2fb3416d4a35 (diff) | |
download | apache-commons-lang-96c211eb1bc4218871b7f618c496d3d12034d414.tar.gz |
[LANG-1729] NumberUtils.isParsable() returns true for Fullwidth Unicode
digits
Add Long test case
-rw-r--r-- | src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java b/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java index 975627053..0748e05fb 100644 --- a/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java @@ -114,6 +114,22 @@ public class NumberUtilsTest extends AbstractLangTest { return NumberUtils.isParsable(s); } + private boolean isLongParsable(final String s) { + final NumberFormat instance = NumberFormat.getInstance(); + instance.setParseIntegerOnly(false); + try { + instance.parse(s); + } catch (final ParseException e) { + return false; + } + try { + Long.parseLong(s); + } catch (final NumberFormatException e) { + return false; + } + return NumberUtils.isParsable(s); + } + /** * Test for {@link NumberUtils#toDouble(BigDecimal)} */ @@ -826,6 +842,22 @@ public class NumberUtilsTest extends AbstractLangTest { assertFalse(NumberUtils.isDigits("abc"), "isDigits(String) neg 4 failed"); } + @Test + public void testIsIntParsableLang1729() { + assertTrue(isIntParsable("1")); + assertFalse(isIntParsable("1 2 3")); + assertTrue(isIntParsable("123")); + assertFalse(isIntParsable("1 2 3")); + } + + @Test + public void testIsLongParsableLang1729() { + assertTrue(isLongParsable("1")); + assertFalse(isLongParsable("1 2 3")); + assertTrue(isLongParsable("123")); + assertFalse(isLongParsable("1 2 3")); + } + /** * Tests isCreatable(String) and tests that createNumber(String) returns a valid number iff isCreatable(String) * returns false. @@ -958,15 +990,6 @@ public class NumberUtilsTest extends AbstractLangTest { } @Test - @Disabled("Passes on OpenJDK 64-Bit Server VM (build 23-ea+18-1469, mixed mode, sharing)") - public void testIsParsableLang1729() { - assertTrue(isIntParsable("1")); - assertFalse(isIntParsable("1 2 3")); - assertTrue(isIntParsable("123")); - assertFalse(isIntParsable("1 2 3")); - } - - @Test public void testLang1087() { // no sign cases assertEquals(Float.class, NumberUtils.createNumber("0.0").getClass()); |