This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git

commit 96c211eb1bc4218871b7f618c496d3d12034d414
Author: Gary Gregory <[email protected]>
AuthorDate: Wed Apr 24 15:59:16 2024 -0400

    [LANG-1729] NumberUtils.isParsable() returns true for Fullwidth Unicode
    digits
    
    Add Long test case
---
 .../apache/commons/lang3/math/NumberUtilsTest.java | 41 +++++++++++++++++-----
 1 file 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.
@@ -957,15 +989,6 @@ public class NumberUtilsTest extends AbstractLangTest {
         assertTrue(NumberUtils.isParsable("-.236"));
     }
 
-    @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

Reply via email to