aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary Gregory <garydgregory@gmail.com>2024-04-24 15:59:16 -0400
committerGary Gregory <garydgregory@gmail.com>2024-04-24 15:59:16 -0400
commit96c211eb1bc4218871b7f618c496d3d12034d414 (patch)
tree0d5f1b7ae13e61ce9ccb57f07beb7589676a5517
parentaad9a675b324eb678cca64071b9a2fb3416d4a35 (diff)
downloadapache-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.java41
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());