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

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


The following commit(s) were added to refs/heads/master by this push:
     new ef2bca450 Add edge case tests for NumberUtils.isParsable()
ef2bca450 is described below

commit ef2bca450f25543b8a3086473f603f0fa1684a45
Author: Gary Gregory <[email protected]>
AuthorDate: Sun May 10 08:14:27 2026 -0400

    Add edge case tests for NumberUtils.isParsable()
---
 .../apache/commons/lang3/math/NumberUtilsTest.java | 286 +++++++++------------
 1 file changed, 124 insertions(+), 162 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 67a6fe43c..02b955473 100644
--- a/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java
@@ -14,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.commons.lang3.math;
 
 import static 
org.apache.commons.lang3.LangAssertions.assertIllegalArgumentException;
@@ -79,16 +80,16 @@ public void compareInt() {
     private void compareIsCreatableWithCreateNumber(final String val, final 
boolean expected) {
         final boolean isValid = NumberUtils.isCreatable(val);
         final boolean canCreate = checkCreateNumber(val);
-        assertTrue(isValid == expected && canCreate == expected, "Expecting " 
+ expected
-            + " for isCreatable/createNumber using \"" + val + "\" but got " + 
isValid + " and " + canCreate);
+        assertTrue(isValid == expected && canCreate == expected,
+                "Expecting " + expected + " for isCreatable/createNumber using 
\"" + val + "\" but got " + isValid + " and " + canCreate);
     }
 
     @SuppressWarnings("deprecation")
     private void compareIsNumberWithCreateNumber(final String val, final 
boolean expected) {
         final boolean isValid = NumberUtils.isNumber(val);
         final boolean canCreate = checkCreateNumber(val);
-        assertTrue(isValid == expected && canCreate == expected, "Expecting " 
+ expected
-            + " for isNumber/createNumber using \"" + val + "\" but got " + 
isValid + " and " + canCreate);
+        assertTrue(isValid == expected && canCreate == expected,
+                "Expecting " + expected + " for isNumber/createNumber using 
\"" + val + "\" but got " + isValid + " and " + canCreate);
     }
 
     @Test
@@ -218,7 +219,6 @@ void testCompareDouble() {
         assertEquals(Double.compare(Double.NaN, -1.2d), +1);
         assertEquals(Double.compare(Double.NaN, -Double.MAX_VALUE), +1);
         assertEquals(Double.compare(Double.NaN, Double.NEGATIVE_INFINITY), +1);
-
         assertEquals(Double.compare(Double.POSITIVE_INFINITY, Double.NaN), -1);
         assertEquals(0, Double.compare(Double.POSITIVE_INFINITY, 
Double.POSITIVE_INFINITY));
         assertEquals(Double.compare(Double.POSITIVE_INFINITY, 
Double.MAX_VALUE), +1);
@@ -228,7 +228,6 @@ void testCompareDouble() {
         assertEquals(Double.compare(Double.POSITIVE_INFINITY, -1.2d), +1);
         assertEquals(Double.compare(Double.POSITIVE_INFINITY, 
-Double.MAX_VALUE), +1);
         assertEquals(Double.compare(Double.POSITIVE_INFINITY, 
Double.NEGATIVE_INFINITY), +1);
-
         assertEquals(Double.compare(Double.MAX_VALUE, Double.NaN), -1);
         assertEquals(Double.compare(Double.MAX_VALUE, 
Double.POSITIVE_INFINITY), -1);
         assertEquals(0, Double.compare(Double.MAX_VALUE, Double.MAX_VALUE));
@@ -238,7 +237,6 @@ void testCompareDouble() {
         assertEquals(Double.compare(Double.MAX_VALUE, -1.2d), +1);
         assertEquals(Double.compare(Double.MAX_VALUE, -Double.MAX_VALUE), +1);
         assertEquals(Double.compare(Double.MAX_VALUE, 
Double.NEGATIVE_INFINITY), +1);
-
         assertEquals(Double.compare(1.2d, Double.NaN), -1);
         assertEquals(Double.compare(1.2d, Double.POSITIVE_INFINITY), -1);
         assertEquals(Double.compare(1.2d, Double.MAX_VALUE), -1);
@@ -248,7 +246,6 @@ void testCompareDouble() {
         assertEquals(Double.compare(1.2d, -1.2d), +1);
         assertEquals(Double.compare(1.2d, -Double.MAX_VALUE), +1);
         assertEquals(Double.compare(1.2d, Double.NEGATIVE_INFINITY), +1);
-
         assertEquals(Double.compare(0.0d, Double.NaN), -1);
         assertEquals(Double.compare(0.0d, Double.POSITIVE_INFINITY), -1);
         assertEquals(Double.compare(0.0d, Double.MAX_VALUE), -1);
@@ -258,7 +255,6 @@ void testCompareDouble() {
         assertEquals(Double.compare(0.0d, -1.2d), +1);
         assertEquals(Double.compare(0.0d, -Double.MAX_VALUE), +1);
         assertEquals(Double.compare(0.0d, Double.NEGATIVE_INFINITY), +1);
-
         assertEquals(Double.compare(-0.0d, Double.NaN), -1);
         assertEquals(Double.compare(-0.0d, Double.POSITIVE_INFINITY), -1);
         assertEquals(Double.compare(-0.0d, Double.MAX_VALUE), -1);
@@ -268,7 +264,6 @@ void testCompareDouble() {
         assertEquals(Double.compare(-0.0d, -1.2d), +1);
         assertEquals(Double.compare(-0.0d, -Double.MAX_VALUE), +1);
         assertEquals(Double.compare(-0.0d, Double.NEGATIVE_INFINITY), +1);
-
         assertEquals(Double.compare(-1.2d, Double.NaN), -1);
         assertEquals(Double.compare(-1.2d, Double.POSITIVE_INFINITY), -1);
         assertEquals(Double.compare(-1.2d, Double.MAX_VALUE), -1);
@@ -278,7 +273,6 @@ void testCompareDouble() {
         assertEquals(0, Double.compare(-1.2d, -1.2d));
         assertEquals(Double.compare(-1.2d, -Double.MAX_VALUE), +1);
         assertEquals(Double.compare(-1.2d, Double.NEGATIVE_INFINITY), +1);
-
         assertEquals(Double.compare(-Double.MAX_VALUE, Double.NaN), -1);
         assertEquals(Double.compare(-Double.MAX_VALUE, 
Double.POSITIVE_INFINITY), -1);
         assertEquals(Double.compare(-Double.MAX_VALUE, Double.MAX_VALUE), -1);
@@ -288,7 +282,6 @@ void testCompareDouble() {
         assertEquals(Double.compare(-Double.MAX_VALUE, -1.2d), -1);
         assertEquals(0, Double.compare(-Double.MAX_VALUE, -Double.MAX_VALUE));
         assertEquals(Double.compare(-Double.MAX_VALUE, 
Double.NEGATIVE_INFINITY), +1);
-
         assertEquals(Double.compare(Double.NEGATIVE_INFINITY, Double.NaN), -1);
         assertEquals(Double.compare(Double.NEGATIVE_INFINITY, 
Double.POSITIVE_INFINITY), -1);
         assertEquals(Double.compare(Double.NEGATIVE_INFINITY, 
Double.MAX_VALUE), -1);
@@ -311,7 +304,6 @@ void testCompareFloat() {
         assertEquals(Float.compare(Float.NaN, -1.2f), +1);
         assertEquals(Float.compare(Float.NaN, -Float.MAX_VALUE), +1);
         assertEquals(Float.compare(Float.NaN, Float.NEGATIVE_INFINITY), +1);
-
         assertEquals(Float.compare(Float.POSITIVE_INFINITY, Float.NaN), -1);
         assertEquals(0, Float.compare(Float.POSITIVE_INFINITY, 
Float.POSITIVE_INFINITY));
         assertEquals(Float.compare(Float.POSITIVE_INFINITY, Float.MAX_VALUE), 
+1);
@@ -321,7 +313,6 @@ void testCompareFloat() {
         assertEquals(Float.compare(Float.POSITIVE_INFINITY, -1.2f), +1);
         assertEquals(Float.compare(Float.POSITIVE_INFINITY, -Float.MAX_VALUE), 
+1);
         assertEquals(Float.compare(Float.POSITIVE_INFINITY, 
Float.NEGATIVE_INFINITY), +1);
-
         assertEquals(Float.compare(Float.MAX_VALUE, Float.NaN), -1);
         assertEquals(Float.compare(Float.MAX_VALUE, Float.POSITIVE_INFINITY), 
-1);
         assertEquals(0, Float.compare(Float.MAX_VALUE, Float.MAX_VALUE));
@@ -331,7 +322,6 @@ void testCompareFloat() {
         assertEquals(Float.compare(Float.MAX_VALUE, -1.2f), +1);
         assertEquals(Float.compare(Float.MAX_VALUE, -Float.MAX_VALUE), +1);
         assertEquals(Float.compare(Float.MAX_VALUE, Float.NEGATIVE_INFINITY), 
+1);
-
         assertEquals(Float.compare(1.2f, Float.NaN), -1);
         assertEquals(Float.compare(1.2f, Float.POSITIVE_INFINITY), -1);
         assertEquals(Float.compare(1.2f, Float.MAX_VALUE), -1);
@@ -341,7 +331,6 @@ void testCompareFloat() {
         assertEquals(Float.compare(1.2f, -1.2f), +1);
         assertEquals(Float.compare(1.2f, -Float.MAX_VALUE), +1);
         assertEquals(Float.compare(1.2f, Float.NEGATIVE_INFINITY), +1);
-
         assertEquals(Float.compare(0.0f, Float.NaN), -1);
         assertEquals(Float.compare(0.0f, Float.POSITIVE_INFINITY), -1);
         assertEquals(Float.compare(0.0f, Float.MAX_VALUE), -1);
@@ -351,7 +340,6 @@ void testCompareFloat() {
         assertEquals(Float.compare(0.0f, -1.2f), +1);
         assertEquals(Float.compare(0.0f, -Float.MAX_VALUE), +1);
         assertEquals(Float.compare(0.0f, Float.NEGATIVE_INFINITY), +1);
-
         assertEquals(Float.compare(-0.0f, Float.NaN), -1);
         assertEquals(Float.compare(-0.0f, Float.POSITIVE_INFINITY), -1);
         assertEquals(Float.compare(-0.0f, Float.MAX_VALUE), -1);
@@ -361,7 +349,6 @@ void testCompareFloat() {
         assertEquals(Float.compare(-0.0f, -1.2f), +1);
         assertEquals(Float.compare(-0.0f, -Float.MAX_VALUE), +1);
         assertEquals(Float.compare(-0.0f, Float.NEGATIVE_INFINITY), +1);
-
         assertEquals(Float.compare(-1.2f, Float.NaN), -1);
         assertEquals(Float.compare(-1.2f, Float.POSITIVE_INFINITY), -1);
         assertEquals(Float.compare(-1.2f, Float.MAX_VALUE), -1);
@@ -371,7 +358,6 @@ void testCompareFloat() {
         assertEquals(0, Float.compare(-1.2f, -1.2f));
         assertEquals(Float.compare(-1.2f, -Float.MAX_VALUE), +1);
         assertEquals(Float.compare(-1.2f, Float.NEGATIVE_INFINITY), +1);
-
         assertEquals(Float.compare(-Float.MAX_VALUE, Float.NaN), -1);
         assertEquals(Float.compare(-Float.MAX_VALUE, Float.POSITIVE_INFINITY), 
-1);
         assertEquals(Float.compare(-Float.MAX_VALUE, Float.MAX_VALUE), -1);
@@ -381,7 +367,6 @@ void testCompareFloat() {
         assertEquals(Float.compare(-Float.MAX_VALUE, -1.2f), -1);
         assertEquals(0, Float.compare(-Float.MAX_VALUE, -Float.MAX_VALUE));
         assertEquals(Float.compare(-Float.MAX_VALUE, Float.NEGATIVE_INFINITY), 
+1);
-
         assertEquals(Float.compare(Float.NEGATIVE_INFINITY, Float.NaN), -1);
         assertEquals(Float.compare(Float.NEGATIVE_INFINITY, 
Float.POSITIVE_INFINITY), -1);
         assertEquals(Float.compare(Float.NEGATIVE_INFINITY, Float.MAX_VALUE), 
-1);
@@ -414,7 +399,6 @@ void testConstants() {
         assertInstanceOf(Float.class, NumberUtils.FLOAT_ZERO);
         assertInstanceOf(Float.class, NumberUtils.FLOAT_ONE);
         assertInstanceOf(Float.class, NumberUtils.FLOAT_MINUS_ONE);
-
         assertEquals(0, NumberUtils.LONG_ZERO.longValue());
         assertEquals(1, NumberUtils.LONG_ONE.longValue());
         assertEquals(NumberUtils.LONG_MINUS_ONE.longValue(), -1);
@@ -470,8 +454,7 @@ void testCreateBigDecimal() {
     }
 
     protected void testCreateBigDecimalFailure(final String str) {
-        assertThrows(NumberFormatException.class, () -> 
NumberUtils.createBigDecimal(str),
-            "createBigDecimal(\"" + str + "\") should have failed.");
+        assertThrows(NumberFormatException.class, () -> 
NumberUtils.createBigDecimal(str), "createBigDecimal(\"" + str + "\") should 
have failed.");
     }
 
     @Test
@@ -503,8 +486,7 @@ void testCreateBigInteger() {
     }
 
     protected void testCreateBigIntegerFailure(final String str) {
-        assertThrows(NumberFormatException.class, () -> 
NumberUtils.createBigInteger(str),
-            "createBigInteger(\"" + str + "\") should have failed.");
+        assertThrows(NumberFormatException.class, () -> 
NumberUtils.createBigInteger(str), "createBigInteger(\"" + str + "\") should 
have failed.");
     }
 
     @Test
@@ -522,8 +504,7 @@ void testCreateDouble() {
     }
 
     protected void testCreateDoubleFailure(final String str) {
-        assertThrows(NumberFormatException.class, () -> 
NumberUtils.createDouble(str),
-            "createDouble(\"" + str + "\") should have failed.");
+        assertThrows(NumberFormatException.class, () -> 
NumberUtils.createDouble(str), "createDouble(\"" + str + "\") should have 
failed.");
     }
 
     @Test
@@ -538,8 +519,7 @@ void testCreateFloat() {
     }
 
     protected void testCreateFloatFailure(final String str) {
-        assertThrows(NumberFormatException.class, () -> 
NumberUtils.createFloat(str),
-            "createFloat(\"" + str + "\") should have failed.");
+        assertThrows(NumberFormatException.class, () -> 
NumberUtils.createFloat(str), "createFloat(\"" + str + "\") should have 
failed.");
     }
 
     @Test
@@ -556,8 +536,7 @@ void testCreateInteger() {
     }
 
     protected void testCreateIntegerFailure(final String str) {
-        assertThrows(NumberFormatException.class, () -> 
NumberUtils.createInteger(str),
-            "createInteger(\"" + str + "\") should have failed.");
+        assertThrows(NumberFormatException.class, () -> 
NumberUtils.createInteger(str), "createInteger(\"" + str + "\") should have 
failed.");
     }
 
     @Test
@@ -574,8 +553,7 @@ void testCreateLong() {
     }
 
     protected void testCreateLongFailure(final String str) {
-        assertThrows(NumberFormatException.class, () -> 
NumberUtils.createLong(str),
-            "createLong(\"" + str + "\") should have failed.");
+        assertThrows(NumberFormatException.class, () -> 
NumberUtils.createLong(str), "createLong(\"" + str + "\") should have failed.");
     }
 
     @Test
@@ -701,12 +679,10 @@ void testCreateNumberMagnitude() {
         // Test Float.MAX_VALUE, and same with +1 in final digit to check 
conversion changes to next Number type
         assertEquals(Float.valueOf(Float.MAX_VALUE), 
NumberUtils.createNumber("3.4028235e+38"));
         assertEquals(Double.valueOf(3.4028236e+38), 
NumberUtils.createNumber("3.4028236e+38"));
-
         // Test Double.MAX_VALUE
         assertEquals(Double.valueOf(Double.MAX_VALUE), 
NumberUtils.createNumber("1.7976931348623157e+308"));
         // Test with +2 in final digit (+1 does not cause roll-over to 
BigDecimal)
         assertEquals(new BigDecimal("1.7976931348623159e+308"), 
NumberUtils.createNumber("1.7976931348623159e+308"));
-
         // Requested type is parsed as zero but the value is not zero
         final Double nonZero1 = Double.valueOf((double) Float.MIN_VALUE / 2);
         assertEquals(nonZero1, NumberUtils.createNumber(nonZero1.toString()));
@@ -722,20 +698,15 @@ void testCreateNumberMagnitude() {
         final BigDecimal nonZero4 = new BigDecimal("0.1e-325");
         assertEquals(nonZero4, NumberUtils.createNumber("0.1e-325"));
         assertEquals(nonZero4, NumberUtils.createNumber("0.1e-325D"));
-
         assertEquals(Integer.valueOf(0x12345678), 
NumberUtils.createNumber("0x12345678"));
         assertEquals(Long.valueOf(0x123456789L), 
NumberUtils.createNumber("0x123456789"));
-
         assertEquals(Long.valueOf(0x7fffffffffffffffL), 
NumberUtils.createNumber("0x7fffffffffffffff"));
         // Does not appear to be a way to create a literal BigInteger of this 
magnitude
         assertEquals(new BigInteger("7fffffffffffffff0", 16), 
NumberUtils.createNumber("0x7fffffffffffffff0"));
-
         assertEquals(Long.valueOf(0x7fffffffffffffffL), 
NumberUtils.createNumber("#7fffffffffffffff"));
         assertEquals(new BigInteger("7fffffffffffffff0", 16), 
NumberUtils.createNumber("#7fffffffffffffff0"));
-
         assertEquals(Integer.valueOf(017777777777), 
NumberUtils.createNumber("017777777777")); // 31 bits
         assertEquals(Long.valueOf(037777777777L), 
NumberUtils.createNumber("037777777777")); // 32 bits
-
         // 63 bits
         assertEquals(Long.valueOf(0777777777777777777777L), 
NumberUtils.createNumber("0777777777777777777777"));
         // 64 bits
@@ -752,19 +723,16 @@ void testCreateNumberZero() {
         assertEquals(Integer.valueOf(0), NumberUtils.createNumber("-0"));
         assertEquals(Long.valueOf(0), NumberUtils.createNumber("0L"));
         assertEquals(Long.valueOf(0), NumberUtils.createNumber("-0L"));
-
         // Handle floating-point with optional leading sign, trailing exponent 
(eX)
         // and format specifier (F or D).
         // This should allow: 0. ; .0 ; 0.0 ; 0 (if exponent or format 
specifier is present)
-
         // Exponent does not matter for zero
-        final int[] exponents = {-2345, 0, 13};
-        final String[] zeros = {"0.", ".0", "0.0", "0"};
+        final int[] exponents = { -2345, 0, 13 };
+        final String[] zeros = { "0.", ".0", "0.0", "0" };
         final Float f0 = Float.valueOf(0);
         final Float fn0 = Float.valueOf(-0F);
         final Double d0 = Double.valueOf(0);
         final Double dn0 = Double.valueOf(-0D);
-
         for (final String zero : zeros) {
             // Assume float if no preference.
             // This requires a decimal point if there is no exponent.
@@ -792,8 +760,7 @@ void testInvalidNumber() {
     }
 
     /**
-     * Tests isCreatable(String) and tests that createNumber(String) returns a 
valid number iff isCreatable(String)
-     * returns false.
+     * Tests isCreatable(String) and tests that createNumber(String) returns a 
valid number iff isCreatable(String) returns false.
      */
     @Test
     void testIsCreatable() {
@@ -818,7 +785,6 @@ void testIsCreatable() {
         compareIsCreatableWithCreateNumber("123.4E21D", true);
         compareIsCreatableWithCreateNumber("-221.23F", true);
         compareIsCreatableWithCreateNumber("22338L", true);
-
         compareIsCreatableWithCreateNumber(null, false);
         compareIsCreatableWithCreateNumber("", false);
         compareIsCreatableWithCreateNumber(" ", false);
@@ -845,7 +811,6 @@ void testIsCreatable() {
         compareIsCreatableWithCreateNumber("11 11", false);
         compareIsCreatableWithCreateNumber(" 1111", false);
         compareIsCreatableWithCreateNumber("1111 ", false);
-
         compareIsCreatableWithCreateNumber("2.", true); // LANG-521
         compareIsCreatableWithCreateNumber("1.1L", false); // LANG-664
         compareIsCreatableWithCreateNumber("+0xF", true); // LANG-1645
@@ -890,8 +855,7 @@ void testIsDigits() {
     }
 
     /**
-     * Tests isCreatable(String) and tests that createNumber(String) returns a 
valid number iff isCreatable(String)
-     * returns false.
+     * Tests isCreatable(String) and tests that createNumber(String) returns a 
valid number iff isCreatable(String) returns false.
      */
     @Test
     void testIsNumber() {
@@ -919,13 +883,11 @@ void testIsNumber() {
         compareIsNumberWithCreateNumber("123.4E21D", true);
         compareIsNumberWithCreateNumber("-221.23F", true);
         compareIsNumberWithCreateNumber("22338L", true);
-
         compareIsNumberWithCreateNumber(null, false);
         compareIsNumberWithCreateNumber("", false);
         compareIsNumberWithCreateNumber(" ", false);
         compareIsNumberWithCreateNumber("\r\n\t", false);
         compareIsNumberWithCreateNumber("--2.3", false);
-
         compareIsNumberWithCreateNumber(".12.3", false);
         compareIsNumberWithCreateNumber("-123E", false);
         compareIsNumberWithCreateNumber("-123E+-212", false);
@@ -949,7 +911,6 @@ void testIsNumber() {
         compareIsNumberWithCreateNumber("11 11", false);
         compareIsNumberWithCreateNumber(" 1111", false);
         compareIsNumberWithCreateNumber("1111 ", false);
-
         compareIsNumberWithCreateNumber("2.", true); // LANG-521
         compareIsNumberWithCreateNumber("1.1L", false); // LANG-664
         compareIsNumberWithCreateNumber("+0xF", true); // LANG-1645
@@ -1077,11 +1038,8 @@ void testIsParsableFloatTrue(final String input) {
     }
 
     /**
-     * Tests https://issues.apache.org/jira/browse/LANG-1729
-     *
-     * See https://bugs.openjdk.org/browse/JDK-8326627
-     *
-     * <blockquote>From 
https://docs.oracle.com/javase%2F9%2Fdocs%2Fapi%2F%2F/java/lang/Float.html#valueOf-java.lang.String-,
+     * Tests https://issues.apache.org/jira/browse/LANG-1729 See 
https://bugs.openjdk.org/browse/JDK-8326627 <blockquote>From
+     * 
https://docs.oracle.com/javase%2F9%2Fdocs%2Fapi%2F%2F/java/lang/Float.html#valueOf-java.lang.String-,
      * 
https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.2, and 
https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-Digits,
      * fullwidth Unicode digits are not applicable. Moved to JDK as an 
enhancement.</blockquote>
      */
@@ -1096,6 +1054,46 @@ void testIsParsableFullWidthUnicodeJDK8326627() {
         assertFalse(NumberUtils.isParsable("0." + fullWidth123));
     }
 
+    @Test
+    void testIsParsableInfinity() {
+        // sanity checks
+        final String s = "Infinity";
+        assertEquals(Double.NaN, Double.parseDouble(s));
+        assertEquals(Float.NaN, Float.parseFloat(s));
+        // isParsable
+        assertTrue(NumberUtils.isParsable(s));
+    }
+
+    @Test
+    void testIsParsableInfinityNegative() {
+        // sanity checks
+        final String s = "-Infinity";
+        assertEquals(Double.NaN, Double.parseDouble(s));
+        assertEquals(Float.NaN, Float.parseFloat(s));
+        // isParsable
+        assertTrue(NumberUtils.isParsable(s));
+    }
+
+    @Test
+    void testIsParsableInfinityPositive() {
+        // sanity checks
+        final String s = "+Infinity";
+        assertEquals(Double.NaN, Double.parseDouble(s));
+        assertEquals(Float.NaN, Float.parseFloat(s));
+        // isParsable
+        assertTrue(NumberUtils.isParsable(s));
+    }
+
+    @Test
+    void testIsParsableNaN() {
+        // sanity checks
+        final String s = "NaN";
+        assertEquals(Double.NaN, Double.parseDouble(s));
+        assertEquals(Float.NaN, Float.parseFloat(s));
+        // isParsable
+        assertTrue(NumberUtils.isParsable(s));
+    }
+
     @Test
     void testIsParsableNull() {
         // Can't use null in @ValueSource(strings)
@@ -1105,6 +1103,10 @@ void testIsParsableNull() {
     @ParameterizedTest
     // @formatter:off
     @ValueSource(strings = {
+            "NaN",
+            "Infinity",
+            "-Infinity",
+            "+Infinity",
             "64.",
             "-64.",
             "64.2",
@@ -1242,19 +1244,15 @@ void testLang381() {
         assertTrue(Double.isNaN(NumberUtils.max(1.2, 2.5, Double.NaN)));
         assertTrue(Float.isNaN(NumberUtils.min(1.2f, 2.5f, Float.NaN)));
         assertTrue(Float.isNaN(NumberUtils.max(1.2f, 2.5f, Float.NaN)));
-
-        final double[] a = {1.2, Double.NaN, 3.7, 27.0, 42.0, Double.NaN};
+        final double[] a = { 1.2, Double.NaN, 3.7, 27.0, 42.0, Double.NaN };
         assertTrue(Double.isNaN(NumberUtils.max(a)));
         assertTrue(Double.isNaN(NumberUtils.min(a)));
-
-        final double[] b = {Double.NaN, 1.2, Double.NaN, 3.7, 27.0, 42.0, 
Double.NaN};
+        final double[] b = { Double.NaN, 1.2, Double.NaN, 3.7, 27.0, 42.0, 
Double.NaN };
         assertTrue(Double.isNaN(NumberUtils.max(b)));
         assertTrue(Double.isNaN(NumberUtils.min(b)));
-
-        final float[] aF = {1.2f, Float.NaN, 3.7f, 27.0f, 42.0f, Float.NaN};
+        final float[] aF = { 1.2f, Float.NaN, 3.7f, 27.0f, 42.0f, Float.NaN };
         assertTrue(Float.isNaN(NumberUtils.max(aF)));
-
-        final float[] bF = {Float.NaN, 1.2f, Float.NaN, 3.7f, 27.0f, 42.0f, 
Float.NaN};
+        final float[] bF = { Float.NaN, 1.2f, Float.NaN, 3.7f, 27.0f, 42.0f, 
Float.NaN };
         assertTrue(Float.isNaN(NumberUtils.max(bF)));
     }
 
@@ -1267,13 +1265,11 @@ void testLang747() {
         assertEquals(Integer.valueOf(0x7FFFFFFF), 
NumberUtils.createNumber("0x7FFFFFFF"));
         assertEquals(Long.valueOf(0x80000000L), 
NumberUtils.createNumber("0x80000000"));
         assertEquals(Long.valueOf(0xFFFFFFFFL), 
NumberUtils.createNumber("0xFFFFFFFF"));
-
         // Leading zero tests
         assertEquals(Integer.valueOf(0x8000000), 
NumberUtils.createNumber("0x08000000"));
         assertEquals(Integer.valueOf(0x7FFFFFFF), 
NumberUtils.createNumber("0x007FFFFFFF"));
         assertEquals(Long.valueOf(0x80000000L), 
NumberUtils.createNumber("0x080000000"));
         assertEquals(Long.valueOf(0xFFFFFFFFL), 
NumberUtils.createNumber("0x00FFFFFFFF"));
-
         assertEquals(Long.valueOf(0x800000000L), 
NumberUtils.createNumber("0x800000000"));
         assertEquals(Long.valueOf(0x8000000000L), 
NumberUtils.createNumber("0x8000000000"));
         assertEquals(Long.valueOf(0x80000000000L), 
NumberUtils.createNumber("0x80000000000"));
@@ -1285,7 +1281,6 @@ void testLang747() {
         // Cannot use a hex constant such as 0x8000000000000000L here as that 
is interpreted as a negative long
         assertEquals(new BigInteger("8000000000000000", 16), 
NumberUtils.createNumber("0x8000000000000000"));
         assertEquals(new BigInteger("FFFFFFFFFFFFFFFF", 16), 
NumberUtils.createNumber("0xFFFFFFFFFFFFFFFF"));
-
         // Leading zero tests
         assertEquals(Long.valueOf(0x80000000000000L), 
NumberUtils.createNumber("0x00080000000000000"));
         assertEquals(Long.valueOf(0x800000000000000L), 
NumberUtils.createNumber("0x0800000000000000"));
@@ -1320,8 +1315,7 @@ void testLANG992() {
     void testMaxByte() {
         assertEquals((byte) 5, NumberUtils.max((byte) 5), "max(byte[]) failed 
for array length 1");
         assertEquals((byte) 9, NumberUtils.max((byte) 6, (byte) 9), 
"max(byte[]) failed for array length 2");
-        assertEquals((byte) 10, NumberUtils.max((byte) -10, (byte) -5, (byte) 
0, (byte) 5, (byte) 10),
-            "max(byte[]) failed for array length 5");
+        assertEquals((byte) 10, NumberUtils.max((byte) -10, (byte) -5, (byte) 
0, (byte) 5, (byte) 10), "max(byte[]) failed for array length 5");
         assertEquals((byte) 10, NumberUtils.max((byte) -10, (byte) -5, (byte) 
0, (byte) 5, (byte) 10));
         assertEquals((byte) 10, NumberUtils.max((byte) -5, (byte) 0, (byte) 
10, (byte) 5, (byte) -10));
     }
@@ -1480,8 +1474,7 @@ void testMaxLong_nullArray() {
     void testMaxShort() {
         assertEquals((short) 5, NumberUtils.max((short) 5), "max(short[]) 
failed for array length 1");
         assertEquals((short) 9, NumberUtils.max((short) 6, (short) 9), 
"max(short[]) failed for array length 2");
-        assertEquals((short) 10, NumberUtils.max((short) -10, (short) -5, 
(short) 0, (short) 5, (short) 10),
-            "max(short[]) failed for array length 5");
+        assertEquals((short) 10, NumberUtils.max((short) -10, (short) -5, 
(short) 0, (short) 5, (short) 10), "max(short[]) failed for array length 5");
         assertEquals((short) 10, NumberUtils.max((short) -10, (short) -5, 
(short) 0, (short) 5, (short) 10));
         assertEquals((short) 10, NumberUtils.max((short) -5, (short) 0, 
(short) 10, (short) 5, (short) -10));
     }
@@ -1500,7 +1493,6 @@ void testMaxShort_nullArray() {
     void testMinByte() {
         assertEquals((byte) 5, NumberUtils.min((byte) 5), "min(byte[]) failed 
for array length 1");
         assertEquals((byte) 6, NumberUtils.min((byte) 6, (byte) 9), 
"min(byte[]) failed for array length 2");
-
         assertEquals((byte) -10, NumberUtils.min((byte) -10, (byte) -5, (byte) 
0, (byte) 5, (byte) 10));
         assertEquals((byte) -10, NumberUtils.min((byte) -5, (byte) 0, (byte) 
-10, (byte) 5, (byte) 10));
     }
@@ -1624,7 +1616,6 @@ void testMinimumShort() {
     void testMinInt() {
         assertEquals(5, NumberUtils.min(5), "min(int[]) failed for array 
length 1");
         assertEquals(6, NumberUtils.min(6, 9), "min(int[]) failed for array 
length 2");
-
         assertEquals(-10, NumberUtils.min(-10, -5, 0, 5, 10));
         assertEquals(-10, NumberUtils.min(-5, 0, -10, 5, 10));
     }
@@ -1643,7 +1634,6 @@ void testMinInt_nullArray() {
     void testMinLong() {
         assertEquals(5L, NumberUtils.min(5L), "min(long[]) failed for array 
length 1");
         assertEquals(6L, NumberUtils.min(6L, 9L), "min(long[]) failed for 
array length 2");
-
         assertEquals(-10L, NumberUtils.min(-10L, -5L, 0L, 5L, 10L));
         assertEquals(-10L, NumberUtils.min(-5L, 0L, -10L, 5L, 10L));
     }
@@ -1662,7 +1652,6 @@ void testMinLong_nullArray() {
     void testMinShort() {
         assertEquals((short) 5, NumberUtils.min((short) 5), "min(short[]) 
failed for array length 1");
         assertEquals((short) 6, NumberUtils.min((short) 6, (short) 9), 
"min(short[]) failed for array length 2");
-
         assertEquals((short) -10, NumberUtils.min((short) -10, (short) -5, 
(short) 0, (short) 5, (short) 10));
         assertEquals((short) -10, NumberUtils.min((short) -5, (short) 0, 
(short) -10, (short) 5, (short) 10));
     }
@@ -1749,11 +1738,8 @@ void testStringToDoubleString() {
         assertEquals(1.2345d, NumberUtils.toDouble("+001.2345"), 
"toDouble(String) 5 failed");
         assertEquals(1.2345d, NumberUtils.toDouble("001.2345"), 
"toDouble(String) 6 failed");
         assertEquals(0d, NumberUtils.toDouble("000.00000"), "toDouble(String) 
7 failed");
-
-        assertEquals(NumberUtils.toDouble(Double.MAX_VALUE + ""), 
Double.MAX_VALUE,
-            "toDouble(Double.MAX_VALUE) failed");
-        assertEquals(NumberUtils.toDouble(Double.MIN_VALUE + ""), 
Double.MIN_VALUE,
-            "toDouble(Double.MIN_VALUE) failed");
+        assertEquals(NumberUtils.toDouble(Double.MAX_VALUE + ""), 
Double.MAX_VALUE, "toDouble(Double.MAX_VALUE) failed");
+        assertEquals(NumberUtils.toDouble(Double.MIN_VALUE + ""), 
Double.MIN_VALUE, "toDouble(Double.MIN_VALUE) failed");
         assertEquals(0.0d, NumberUtils.toDouble(""), "toDouble(empty) failed");
         assertEquals(0.0d, NumberUtils.toDouble((String) null), 
"toDouble(null) failed");
     }
@@ -1809,7 +1795,6 @@ void testToFloatString() {
         assertEquals(1.2345f, NumberUtils.toFloat("+001.2345"), 
"toFloat(String) 5 failed");
         assertEquals(1.2345f, NumberUtils.toFloat("001.2345"), 
"toFloat(String) 6 failed");
         assertEquals(0f, NumberUtils.toFloat("000.00"), "toFloat(String) 7 
failed");
-
         assertEquals(NumberUtils.toFloat(Float.MAX_VALUE + ""), 
Float.MAX_VALUE, "toFloat(Float.MAX_VALUE) failed");
         assertEquals(NumberUtils.toFloat(Float.MIN_VALUE + ""), 
Float.MIN_VALUE, "toFloat(Float.MIN_VALUE) failed");
         assertEquals(0.0f, NumberUtils.toFloat(""), "toFloat(empty) failed");
@@ -1884,18 +1869,13 @@ void testToLongStringL() {
      */
     @Test
     void testToScaledBigDecimalBigDecimal() {
-        
assertEquals(NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(123.456)), 
BigDecimal.valueOf(123.46),
-            "toScaledBigDecimal(BigDecimal) 1 failed");
+        
assertEquals(NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(123.456)), 
BigDecimal.valueOf(123.46), "toScaledBigDecimal(BigDecimal) 1 failed");
         // Test RoundingMode.HALF_EVEN default rounding.
-        
assertEquals(NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(23.515)), 
BigDecimal.valueOf(23.52),
-            "toScaledBigDecimal(BigDecimal) 2 failed");
-        
assertEquals(NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(23.525)), 
BigDecimal.valueOf(23.52),
-            "toScaledBigDecimal(BigDecimal) 3 failed");
-        assertEquals("2352.00",
-            
NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(23.525)).multiply(BigDecimal.valueOf(100)).toString(),
-            "toScaledBigDecimal(BigDecimal) 4 failed");
-        assertEquals(NumberUtils.toScaledBigDecimal((BigDecimal) null), 
BigDecimal.ZERO,
-            "toScaledBigDecimal(BigDecimal) 5 failed");
+        
assertEquals(NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(23.515)), 
BigDecimal.valueOf(23.52), "toScaledBigDecimal(BigDecimal) 2 failed");
+        
assertEquals(NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(23.525)), 
BigDecimal.valueOf(23.52), "toScaledBigDecimal(BigDecimal) 3 failed");
+        assertEquals("2352.00", 
NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(23.525)).multiply(BigDecimal.valueOf(100)).toString(),
+                "toScaledBigDecimal(BigDecimal) 4 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal((BigDecimal) null), 
BigDecimal.ZERO, "toScaledBigDecimal(BigDecimal) 5 failed");
     }
 
     /**
@@ -1903,18 +1883,17 @@ void testToScaledBigDecimalBigDecimal() {
      */
     @Test
     void testToScaledBigDecimalBigDecimalIRM() {
-        
assertEquals(NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(123.456), 1, 
RoundingMode.CEILING),
-            BigDecimal.valueOf(123.5), "toScaledBigDecimal(BigDecimal, int, 
RoundingMode) 1 failed");
-        
assertEquals(NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(23.5159), 3, 
RoundingMode.FLOOR),
-            BigDecimal.valueOf(23.515), "toScaledBigDecimal(BigDecimal, int, 
RoundingMode) 2 failed");
-        
assertEquals(NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(23.525), 2, 
RoundingMode.HALF_UP),
-            BigDecimal.valueOf(23.53), "toScaledBigDecimal(BigDecimal, int, 
RoundingMode) 3 failed");
+        
assertEquals(NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(123.456), 1, 
RoundingMode.CEILING), BigDecimal.valueOf(123.5),
+                "toScaledBigDecimal(BigDecimal, int, RoundingMode) 1 failed");
+        
assertEquals(NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(23.5159), 3, 
RoundingMode.FLOOR), BigDecimal.valueOf(23.515),
+                "toScaledBigDecimal(BigDecimal, int, RoundingMode) 2 failed");
+        
assertEquals(NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(23.525), 2, 
RoundingMode.HALF_UP), BigDecimal.valueOf(23.53),
+                "toScaledBigDecimal(BigDecimal, int, RoundingMode) 3 failed");
         assertEquals("23521.0000",
-            NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(23.521), 4, 
RoundingMode.HALF_EVEN)
-                .multiply(BigDecimal.valueOf(1000)).toString(),
-            "toScaledBigDecimal(BigDecimal, int, RoundingMode) 4 failed");
+                NumberUtils.toScaledBigDecimal(BigDecimal.valueOf(23.521), 4, 
RoundingMode.HALF_EVEN).multiply(BigDecimal.valueOf(1000)).toString(),
+                "toScaledBigDecimal(BigDecimal, int, RoundingMode) 4 failed");
         assertEquals(NumberUtils.toScaledBigDecimal((BigDecimal) null, 2, 
RoundingMode.HALF_UP), BigDecimal.ZERO,
-            "toScaledBigDecimal(BigDecimal, int, RoundingMode) 5 failed");
+                "toScaledBigDecimal(BigDecimal, int, RoundingMode) 5 failed");
     }
 
     /**
@@ -1922,18 +1901,13 @@ void testToScaledBigDecimalBigDecimalIRM() {
      */
     @Test
     void testToScaledBigDecimalDouble() {
-        assertEquals(NumberUtils.toScaledBigDecimal(Double.valueOf(123.456d)), 
BigDecimal.valueOf(123.46),
-            "toScaledBigDecimal(Double) 1 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal(Double.valueOf(123.456d)), 
BigDecimal.valueOf(123.46), "toScaledBigDecimal(Double) 1 failed");
         // Test RoundingMode.HALF_EVEN default rounding.
-        assertEquals(NumberUtils.toScaledBigDecimal(Double.valueOf(23.515d)), 
BigDecimal.valueOf(23.52),
-            "toScaledBigDecimal(Double) 2 failed");
-        assertEquals(NumberUtils.toScaledBigDecimal(Double.valueOf(23.525d)), 
BigDecimal.valueOf(23.52),
-            "toScaledBigDecimal(Double) 3 failed");
-        assertEquals("2352.00",
-            
NumberUtils.toScaledBigDecimal(Double.valueOf(23.525d)).multiply(BigDecimal.valueOf(100)).toString(),
-            "toScaledBigDecimal(Double) 4 failed");
-        assertEquals(NumberUtils.toScaledBigDecimal((Double) null), 
BigDecimal.ZERO,
-            "toScaledBigDecimal(Double) 5 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal(Double.valueOf(23.515d)), 
BigDecimal.valueOf(23.52), "toScaledBigDecimal(Double) 2 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal(Double.valueOf(23.525d)), 
BigDecimal.valueOf(23.52), "toScaledBigDecimal(Double) 3 failed");
+        assertEquals("2352.00", 
NumberUtils.toScaledBigDecimal(Double.valueOf(23.525d)).multiply(BigDecimal.valueOf(100)).toString(),
+                "toScaledBigDecimal(Double) 4 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal((Double) null), 
BigDecimal.ZERO, "toScaledBigDecimal(Double) 5 failed");
     }
 
     /**
@@ -1941,18 +1915,17 @@ void testToScaledBigDecimalDouble() {
      */
     @Test
     void testToScaledBigDecimalDoubleIRM() {
-        assertEquals(NumberUtils.toScaledBigDecimal(Double.valueOf(123.456d), 
1, RoundingMode.CEILING),
-            BigDecimal.valueOf(123.5), "toScaledBigDecimal(Double, int, 
RoundingMode) 1 failed");
-        assertEquals(NumberUtils.toScaledBigDecimal(Double.valueOf(23.5159d), 
3, RoundingMode.FLOOR),
-            BigDecimal.valueOf(23.515), "toScaledBigDecimal(Double, int, 
RoundingMode) 2 failed");
-        assertEquals(NumberUtils.toScaledBigDecimal(Double.valueOf(23.525d), 
2, RoundingMode.HALF_UP),
-            BigDecimal.valueOf(23.53), "toScaledBigDecimal(Double, int, 
RoundingMode) 3 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal(Double.valueOf(123.456d), 
1, RoundingMode.CEILING), BigDecimal.valueOf(123.5),
+                "toScaledBigDecimal(Double, int, RoundingMode) 1 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal(Double.valueOf(23.5159d), 
3, RoundingMode.FLOOR), BigDecimal.valueOf(23.515),
+                "toScaledBigDecimal(Double, int, RoundingMode) 2 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal(Double.valueOf(23.525d), 
2, RoundingMode.HALF_UP), BigDecimal.valueOf(23.53),
+                "toScaledBigDecimal(Double, int, RoundingMode) 3 failed");
         assertEquals("23521.0000",
-            NumberUtils.toScaledBigDecimal(Double.valueOf(23.521d), 4, 
RoundingMode.HALF_EVEN)
-                .multiply(BigDecimal.valueOf(1000)).toString(),
-            "toScaledBigDecimal(Double, int, RoundingMode) 4 failed");
+                NumberUtils.toScaledBigDecimal(Double.valueOf(23.521d), 4, 
RoundingMode.HALF_EVEN).multiply(BigDecimal.valueOf(1000)).toString(),
+                "toScaledBigDecimal(Double, int, RoundingMode) 4 failed");
         assertEquals(NumberUtils.toScaledBigDecimal((Double) null, 2, 
RoundingMode.HALF_UP), BigDecimal.ZERO,
-            "toScaledBigDecimal(Double, int, RoundingMode) 5 failed");
+                "toScaledBigDecimal(Double, int, RoundingMode) 5 failed");
     }
 
     /**
@@ -1960,20 +1933,15 @@ void testToScaledBigDecimalDoubleIRM() {
      */
     @Test
     void testToScaledBigDecimalFloat() {
-        assertEquals(NumberUtils.toScaledBigDecimal(Float.valueOf(123.456f)), 
BigDecimal.valueOf(123.46),
-            "toScaledBigDecimal(Float) 1 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal(Float.valueOf(123.456f)), 
BigDecimal.valueOf(123.46), "toScaledBigDecimal(Float) 1 failed");
         // Test RoundingMode.HALF_EVEN default rounding.
-        assertEquals(NumberUtils.toScaledBigDecimal(Float.valueOf(23.515f)), 
BigDecimal.valueOf(23.51),
-            "toScaledBigDecimal(Float) 2 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal(Float.valueOf(23.515f)), 
BigDecimal.valueOf(23.51), "toScaledBigDecimal(Float) 2 failed");
         // Note. 
NumberUtils.toScaledBigDecimal(Float.valueOf(23.515f)).equals(BigDecimal.valueOf(23.51))
         // because of roundoff error. It is ok.
-        assertEquals(NumberUtils.toScaledBigDecimal(Float.valueOf(23.525f)), 
BigDecimal.valueOf(23.52),
-            "toScaledBigDecimal(Float) 3 failed");
-        assertEquals("2352.00",
-            
NumberUtils.toScaledBigDecimal(Float.valueOf(23.525f)).multiply(BigDecimal.valueOf(100)).toString(),
-            "toScaledBigDecimal(Float) 4 failed");
-        assertEquals(NumberUtils.toScaledBigDecimal((Float) null), 
BigDecimal.ZERO,
-            "toScaledBigDecimal(Float) 5 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal(Float.valueOf(23.525f)), 
BigDecimal.valueOf(23.52), "toScaledBigDecimal(Float) 3 failed");
+        assertEquals("2352.00", 
NumberUtils.toScaledBigDecimal(Float.valueOf(23.525f)).multiply(BigDecimal.valueOf(100)).toString(),
+                "toScaledBigDecimal(Float) 4 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal((Float) null), 
BigDecimal.ZERO, "toScaledBigDecimal(Float) 5 failed");
     }
 
     /**
@@ -1981,15 +1949,16 @@ void testToScaledBigDecimalFloat() {
      */
     @Test
     void testToScaledBigDecimalFloatIRM() {
-        assertEquals(NumberUtils.toScaledBigDecimal(Float.valueOf(123.456f), 
1, RoundingMode.CEILING),
-            BigDecimal.valueOf(123.5), "toScaledBigDecimal(Float, int, 
RoundingMode) 1 failed");
-        assertEquals(NumberUtils.toScaledBigDecimal(Float.valueOf(23.5159f), 
3, RoundingMode.FLOOR),
-            BigDecimal.valueOf(23.515), "toScaledBigDecimal(Float, int, 
RoundingMode) 2 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal(Float.valueOf(123.456f), 
1, RoundingMode.CEILING), BigDecimal.valueOf(123.5),
+                "toScaledBigDecimal(Float, int, RoundingMode) 1 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal(Float.valueOf(23.5159f), 
3, RoundingMode.FLOOR), BigDecimal.valueOf(23.515),
+                "toScaledBigDecimal(Float, int, RoundingMode) 2 failed");
         // The following happens due to roundoff error. We're ok with this.
-        assertEquals(NumberUtils.toScaledBigDecimal(Float.valueOf(23.525f), 2, 
RoundingMode.HALF_UP),
-            BigDecimal.valueOf(23.52), "toScaledBigDecimal(Float, int, 
RoundingMode) 3 failed");
-        assertEquals("23521.0000", 
NumberUtils.toScaledBigDecimal(Float.valueOf(23.521f), 4, 
RoundingMode.HALF_EVEN)
-            .multiply(BigDecimal.valueOf(1000)).toString(), 
"toScaledBigDecimal(Float, int, RoundingMode) 4 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal(Float.valueOf(23.525f), 2, 
RoundingMode.HALF_UP), BigDecimal.valueOf(23.52),
+                "toScaledBigDecimal(Float, int, RoundingMode) 3 failed");
+        assertEquals("23521.0000",
+                NumberUtils.toScaledBigDecimal(Float.valueOf(23.521f), 4, 
RoundingMode.HALF_EVEN).multiply(BigDecimal.valueOf(1000)).toString(),
+                "toScaledBigDecimal(Float, int, RoundingMode) 4 failed");
         assertEquals(NumberUtils.toScaledBigDecimal((Float) null, 2, 
RoundingMode.HALF_UP), BigDecimal.ZERO,
                 "toScaledBigDecimal(Float, int, RoundingMode) 5 failed");
     }
@@ -1999,17 +1968,12 @@ void testToScaledBigDecimalFloatIRM() {
      */
     @Test
     void testToScaledBigDecimalString() {
-        assertEquals(NumberUtils.toScaledBigDecimal("123.456"), 
BigDecimal.valueOf(123.46),
-            "toScaledBigDecimal(String) 1 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal("123.456"), 
BigDecimal.valueOf(123.46), "toScaledBigDecimal(String) 1 failed");
         // Test RoundingMode.HALF_EVEN default rounding.
-        assertEquals(NumberUtils.toScaledBigDecimal("23.515"), 
BigDecimal.valueOf(23.52),
-            "toScaledBigDecimal(String) 2 failed");
-        assertEquals(NumberUtils.toScaledBigDecimal("23.525"), 
BigDecimal.valueOf(23.52),
-            "toScaledBigDecimal(String) 3 failed");
-        assertEquals("2352.00", 
NumberUtils.toScaledBigDecimal("23.525").multiply(BigDecimal.valueOf(100)).toString(),
-            "toScaledBigDecimal(String) 4 failed");
-        assertEquals(NumberUtils.toScaledBigDecimal((String) null), 
BigDecimal.ZERO,
-                "toScaledBigDecimal(String) 5 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal("23.515"), 
BigDecimal.valueOf(23.52), "toScaledBigDecimal(String) 2 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal("23.525"), 
BigDecimal.valueOf(23.52), "toScaledBigDecimal(String) 3 failed");
+        assertEquals("2352.00", 
NumberUtils.toScaledBigDecimal("23.525").multiply(BigDecimal.valueOf(100)).toString(),
 "toScaledBigDecimal(String) 4 failed");
+        assertEquals(NumberUtils.toScaledBigDecimal((String) null), 
BigDecimal.ZERO, "toScaledBigDecimal(String) 5 failed");
     }
 
     /**
@@ -2018,15 +1982,13 @@ void testToScaledBigDecimalString() {
     @Test
     void testToScaledBigDecimalStringIRM() {
         assertEquals(NumberUtils.toScaledBigDecimal("123.456", 1, 
RoundingMode.CEILING), BigDecimal.valueOf(123.5),
-            "toScaledBigDecimal(String, int, RoundingMode) 1 failed");
+                "toScaledBigDecimal(String, int, RoundingMode) 1 failed");
         assertEquals(NumberUtils.toScaledBigDecimal("23.5159", 3, 
RoundingMode.FLOOR), BigDecimal.valueOf(23.515),
-            "toScaledBigDecimal(String, int, RoundingMode) 2 failed");
+                "toScaledBigDecimal(String, int, RoundingMode) 2 failed");
         assertEquals(NumberUtils.toScaledBigDecimal("23.525", 2, 
RoundingMode.HALF_UP), BigDecimal.valueOf(23.53),
-            "toScaledBigDecimal(String, int, RoundingMode) 3 failed");
-        assertEquals(
-            "23521.0000", NumberUtils.toScaledBigDecimal("23.521", 4, 
RoundingMode.HALF_EVEN)
-                .multiply(BigDecimal.valueOf(1000)).toString(),
-            "toScaledBigDecimal(String, int, RoundingMode) 4 failed");
+                "toScaledBigDecimal(String, int, RoundingMode) 3 failed");
+        assertEquals("23521.0000", NumberUtils.toScaledBigDecimal("23.521", 4, 
RoundingMode.HALF_EVEN).multiply(BigDecimal.valueOf(1000)).toString(),
+                "toScaledBigDecimal(String, int, RoundingMode) 4 failed");
         assertEquals(NumberUtils.toScaledBigDecimal((String) null, 2, 
RoundingMode.HALF_UP), BigDecimal.ZERO,
                 "toScaledBigDecimal(String, int, RoundingMode) 5 failed");
     }


Reply via email to