Let existing catch clause handle the NPE edge case

Add tests
This commit is contained in:
Gary Gregory 2024-08-20 10:38:33 -04:00
parent 250addd743
commit ee2041464e
2 changed files with 21 additions and 47 deletions

View File

@ -784,7 +784,6 @@ private static boolean isZero(final String mant, final String dec) {
public static byte max(final byte... array) {
// Validates input
validateArray(array);
// Finds and returns max
byte max = array[0];
for (int i = 1; i < array.length; i++) {
@ -792,7 +791,6 @@ public static byte max(final byte... array) {
max = array[i];
}
}
return max;
}
@ -827,7 +825,6 @@ public static byte max(byte a, final byte b, final byte c) {
public static double max(final double... array) {
// Validates input
validateArray(array);
// Finds and returns max
double max = array[0];
for (int j = 1; j < array.length; j++) {
@ -838,7 +835,6 @@ public static double max(final double... array) {
max = array[j];
}
}
return max;
}
@ -871,7 +867,6 @@ public static double max(final double a, final double b, final double c) {
public static float max(final float... array) {
// Validates input
validateArray(array);
// Finds and returns max
float max = array[0];
for (int j = 1; j < array.length; j++) {
@ -882,7 +877,6 @@ public static float max(final float... array) {
max = array[j];
}
}
return max;
}
@ -949,7 +943,6 @@ public static float max(final float a, final float b, final float c) {
public static int max(final int... array) {
// Validates input
validateArray(array);
// Finds and returns max
int max = array[0];
for (int j = 1; j < array.length; j++) {
@ -957,7 +950,6 @@ public static int max(final int... array) {
max = array[j];
}
}
return max;
}
@ -991,7 +983,6 @@ public static int max(int a, final int b, final int c) {
public static long max(final long... array) {
// Validates input
validateArray(array);
// Finds and returns max
long max = array[0];
for (int j = 1; j < array.length; j++) {
@ -999,7 +990,6 @@ public static long max(final long... array) {
max = array[j];
}
}
return max;
}
@ -1042,7 +1032,6 @@ public static short max(final short... array) {
max = array[i];
}
}
return max;
}
@ -1076,7 +1065,6 @@ public static short max(short a, final short b, final short c) {
public static byte min(final byte... array) {
// Validates input
validateArray(array);
// Finds and returns min
byte min = array[0];
for (int i = 1; i < array.length; i++) {
@ -1084,7 +1072,6 @@ public static byte min(final byte... array) {
min = array[i];
}
}
return min;
}
@ -1130,7 +1117,6 @@ public static double min(final double... array) {
min = array[i];
}
}
return min;
}
@ -1174,7 +1160,6 @@ public static float min(final float... array) {
min = array[i];
}
}
return min;
}
@ -1206,7 +1191,6 @@ public static float min(final float a, final float b, final float c) {
public static int min(final int... array) {
// Validates input
validateArray(array);
// Finds and returns min
int min = array[0];
for (int j = 1; j < array.length; j++) {
@ -1214,7 +1198,6 @@ public static int min(final int... array) {
min = array[j];
}
}
return min;
}
@ -1248,7 +1231,6 @@ public static int min(int a, final int b, final int c) {
public static long min(final long... array) {
// Validates input
validateArray(array);
// Finds and returns min
long min = array[0];
for (int i = 1; i < array.length; i++) {
@ -1256,7 +1238,6 @@ public static long min(final long... array) {
min = array[i];
}
}
return min;
}
@ -1291,7 +1272,6 @@ public static long min(long a, final long b, final long c) {
public static short min(final short... array) {
// Validates input
validateArray(array);
// Finds and returns min
short min = array[0];
for (int i = 1; i < array.length; i++) {
@ -1360,12 +1340,9 @@ public static byte toByte(final String str) {
* @since 2.5
*/
public static byte toByte(final String str, final byte defaultValue) {
if (str == null) {
return defaultValue;
}
try {
return Byte.parseByte(str);
} catch (final NumberFormatException nfe) {
} catch (final RuntimeException e) {
return defaultValue;
}
}
@ -1453,12 +1430,9 @@ public static double toDouble(final String str) {
* @since 2.1
*/
public static double toDouble(final String str, final double defaultValue) {
if (str == null) {
return defaultValue;
}
try {
return Double.parseDouble(str);
} catch (final NumberFormatException nfe) {
} catch (final RuntimeException e) {
return defaultValue;
}
}
@ -1505,12 +1479,9 @@ public static float toFloat(final String str) {
* @since 2.1
*/
public static float toFloat(final String str, final float defaultValue) {
if (str == null) {
return defaultValue;
}
try {
return Float.parseFloat(str);
} catch (final NumberFormatException nfe) {
} catch (final RuntimeException e) {
return defaultValue;
}
}
@ -1554,12 +1525,9 @@ public static int toInt(final String str) {
* @since 2.1
*/
public static int toInt(final String str, final int defaultValue) {
if (str == null) {
return defaultValue;
}
try {
return Integer.parseInt(str);
} catch (final NumberFormatException nfe) {
} catch (final RuntimeException e) {
return defaultValue;
}
}
@ -1603,12 +1571,9 @@ public static long toLong(final String str) {
* @since 2.1
*/
public static long toLong(final String str, final long defaultValue) {
if (str == null) {
return defaultValue;
}
try {
return Long.parseLong(str);
} catch (final NumberFormatException nfe) {
} catch (final RuntimeException e) {
return defaultValue;
}
}
@ -1807,12 +1772,9 @@ public static short toShort(final String str) {
* @since 2.5
*/
public static short toShort(final String str, final short defaultValue) {
if (str == null) {
return defaultValue;
}
try {
return Short.parseShort(str);
} catch (final NumberFormatException nfe) {
} catch (final RuntimeException e) {
return defaultValue;
}
}

View File

@ -1612,6 +1612,8 @@ public void testStringToDoubleStringD() {
assertEquals(NumberUtils.toDouble("-001.2345", 5.1d), -1.2345d, "toDouble(String, int) 4 failed");
assertEquals(1.2345d, NumberUtils.toDouble("+001.2345", 5.1d), "toDouble(String, int) 5 failed");
assertEquals(0d, NumberUtils.toDouble("000.00", 5.1d), "toDouble(String, int) 7 failed");
assertEquals(5.1d, NumberUtils.toDouble("", 5.1d));
assertEquals(5.1d, NumberUtils.toDouble((String) null, 5.1d));
}
/**
@ -1632,6 +1634,8 @@ public void testToByteString() {
public void testToByteStringI() {
assertEquals(123, NumberUtils.toByte("123", (byte) 5), "toByte(String, byte) 1 failed");
assertEquals(5, NumberUtils.toByte("12.3", (byte) 5), "toByte(String, byte) 2 failed");
assertEquals(5, NumberUtils.toByte("", (byte) 5));
assertEquals(5, NumberUtils.toByte(null, (byte) 5));
}
/**
@ -1665,6 +1669,8 @@ public void testToFloatStringF() {
assertEquals(5.0f, NumberUtils.toFloat("-001Z.2345", 5.0f), "toFloat(String, int) 3 failed");
assertEquals(5.0f, NumberUtils.toFloat("+001AB.2345", 5.0f), "toFloat(String, int) 4 failed");
assertEquals(5.0f, NumberUtils.toFloat("001Z.2345", 5.0f), "toFloat(String, int) 5 failed");
assertEquals(5.0f, NumberUtils.toFloat("", 5.0f));
assertEquals(5.0f, NumberUtils.toFloat(null, 5.0f));
}
/**
@ -1685,6 +1691,8 @@ public void testToIntString() {
public void testToIntStringI() {
assertEquals(12345, NumberUtils.toInt("12345", 5), "toInt(String, int) 1 failed");
assertEquals(5, NumberUtils.toInt("1234.5", 5), "toInt(String, int) 2 failed");
assertEquals(5, NumberUtils.toInt("", 5));
assertEquals(5, NumberUtils.toInt(null, 5));
}
/**
@ -1709,6 +1717,8 @@ public void testToLongString() {
public void testToLongStringL() {
assertEquals(12345L, NumberUtils.toLong("12345", 5L), "toLong(String, long) 1 failed");
assertEquals(5L, NumberUtils.toLong("1234.5", 5L), "toLong(String, long) 2 failed");
assertEquals(5L, NumberUtils.toLong("", 5L));
assertEquals(5L, NumberUtils.toLong(null, 5L));
}
/**
@ -1823,7 +1833,7 @@ public void testToScaledBigDecimalFloatIRM() {
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");
"toScaledBigDecimal(Float, int, RoundingMode) 5 failed");
}
/**
@ -1841,7 +1851,7 @@ public void testToScaledBigDecimalString() {
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");
"toScaledBigDecimal(String) 5 failed");
}
/**
@ -1860,7 +1870,7 @@ public void testToScaledBigDecimalStringIRM() {
.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");
"toScaledBigDecimal(String, int, RoundingMode) 5 failed");
}
/**
@ -1881,5 +1891,7 @@ public void testToShortString() {
public void testToShortStringI() {
assertEquals(12345, NumberUtils.toShort("12345", (short) 5), "toShort(String, short) 1 failed");
assertEquals(5, NumberUtils.toShort("1234.5", (short) 5), "toShort(String, short) 2 failed");
assertEquals(5, NumberUtils.toShort("", (short) 5));
assertEquals(5, NumberUtils.toShort(null, (short) 5));
}
}