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 aacc467954f8d3df5c2e450b5cb01810bcc6667a
Author: Gary Gregory <[email protected]>
AuthorDate: Wed Apr 24 16:01:39 2024 -0400

    [LANG-1729] NumberUtils.isParsable() returns true for Fullwidth Unicode
    digits
    
    Add Short test case
---
 .../apache/commons/lang3/math/NumberUtilsTest.java | 24 ++++++++++++++++++++++
 1 file changed, 24 insertions(+)

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 c42db3d7f..be40a0fdf 100644
--- a/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java
@@ -129,6 +129,22 @@ public class NumberUtilsTest extends AbstractLangTest {
         return NumberUtils.isParsable(s);
     }
 
+    private boolean isShortParsable(final String s) {
+        final NumberFormat instance = NumberFormat.getInstance();
+        instance.setParseIntegerOnly(false);
+        try {
+            instance.parse(s);
+        } catch (final ParseException e) {
+            return false;
+        }
+        try {
+            Short.parseShort(s);
+        } catch (final NumberFormatException e) {
+            return false;
+        }
+        return NumberUtils.isParsable(s);
+    }
+
     /**
      * Test for {@link NumberUtils#toDouble(BigDecimal)}
      */
@@ -1007,6 +1023,14 @@ public class NumberUtilsTest extends AbstractLangTest {
         assertFalse(isLongParsable("1 2 3"));
     }
 
+    @Test
+    public void testLang1729IsParsableShort() {
+        assertTrue(isShortParsable("1"));
+        assertFalse(isShortParsable("1 2 3"));
+        assertTrue(isShortParsable("123"));
+        assertFalse(isShortParsable("1 2 3"));
+    }
+
     @Test
     public void testLang300() {
         NumberUtils.createNumber("-1l");

Reply via email to