Author: bayard Date: Tue Oct 24 13:51:08 2006 New Revision: 467477 URL: http://svn.apache.org/viewvc?view=rev&rev=467477 Log: Adding NumberUtils.max(byte[]) and NumberUtils.min(byte[]) as noted in LANG-289
Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/math/NumberUtils.java jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/math/NumberUtilsTest.java Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/math/NumberUtils.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/math/NumberUtils.java?view=diff&rev=467477&r1=467476&r2=467477 ============================================================================== --- jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/math/NumberUtils.java (original) +++ jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/math/NumberUtils.java Tue Oct 24 13:51:08 2006 @@ -751,6 +751,33 @@ return min; } + /** + * <p>Returns the minimum value in an array.</p> + * + * @param array an array, must not be null or empty + * @return the minimum value in the array + * @throws IllegalArgumentException if <code>array</code> is <code>null</code> + * @throws IllegalArgumentException if <code>array</code> is empty + */ + public static byte min(byte[] array) { + // Validates input + if (array == null) { + throw new IllegalArgumentException("The Array must not be null"); + } else if (array.length == 0) { + throw new IllegalArgumentException("Array cannot be empty."); + } + + // Finds and returns min + byte min = array[0]; + for (int i = 1; i < array.length; i++) { + if (array[i] < min) { + min = array[i]; + } + } + + return min; + } + /** * <p>Returns the minimum value in an array.</p> * @@ -879,6 +906,33 @@ // Finds and returns max short max = array[0]; + for (int i = 1; i < array.length; i++) { + if (array[i] > max) { + max = array[i]; + } + } + + return max; + } + + /** + * <p>Returns the maximum value in an array.</p> + * + * @param array an array, must not be null or empty + * @return the minimum value in the array + * @throws IllegalArgumentException if <code>array</code> is <code>null</code> + * @throws IllegalArgumentException if <code>array</code> is empty + */ + public static byte max(byte[] array) { + // Validates input + if (array == null) { + throw new IllegalArgumentException("The Array must not be null"); + } else if (array.length == 0) { + throw new IllegalArgumentException("Array cannot be empty."); + } + + // Finds and returns max + byte max = array[0]; for (int i = 1; i < array.length; i++) { if (array[i] > max) { max = array[i]; Modified: jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/math/NumberUtilsTest.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/math/NumberUtilsTest.java?view=diff&rev=467477&r1=467476&r2=467477 ============================================================================== --- jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/math/NumberUtilsTest.java (original) +++ jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/math/NumberUtilsTest.java Tue Oct 24 13:51:08 2006 @@ -398,6 +398,32 @@ assertEquals(-10, NumberUtils.min(new short[] { -5, 0, -10, 5, 10 })); } + public void testMinByte() { + final byte[] b = null; + try { + NumberUtils.min(b); + fail("No exception was thrown for null input."); + } catch (IllegalArgumentException ex) {} + + try { + NumberUtils.min(new byte[0]); + fail("No exception was thrown for empty input."); + } catch (IllegalArgumentException ex) {} + + assertEquals( + "min(byte[]) failed for array length 1", + 5, + NumberUtils.min(new byte[] { 5 })); + + assertEquals( + "min(byte[]) failed for array length 2", + 6, + NumberUtils.min(new byte[] { 6, 9 })); + + assertEquals(-10, NumberUtils.min(new byte[] { -10, -5, 0, 5, 10 })); + assertEquals(-10, NumberUtils.min(new byte[] { -5, 0, -10, 5, 10 })); + } + public void testMinDouble() { final double[] d = null; try { @@ -552,6 +578,36 @@ NumberUtils.max(new short[] { -10, -5, 0, 5, 10 })); assertEquals(10, NumberUtils.max(new short[] { -10, -5, 0, 5, 10 })); assertEquals(10, NumberUtils.max(new short[] { -5, 0, 10, 5, -10 })); + } + + public void testMaxByte() { + final byte[] b = null; + try { + NumberUtils.max(b); + fail("No exception was thrown for null input."); + } catch (IllegalArgumentException ex) {} + + try { + NumberUtils.max(new byte[0]); + fail("No exception was thrown for empty input."); + } catch (IllegalArgumentException ex) {} + + assertEquals( + "max(byte[]) failed for array length 1", + 5, + NumberUtils.max(new byte[] { 5 })); + + assertEquals( + "max(byte[]) failed for array length 2", + 9, + NumberUtils.max(new byte[] { 6, 9 })); + + assertEquals( + "max(byte[]) failed for array length 5", + 10, + NumberUtils.max(new byte[] { -10, -5, 0, 5, 10 })); + assertEquals(10, NumberUtils.max(new byte[] { -10, -5, 0, 5, 10 })); + assertEquals(10, NumberUtils.max(new byte[] { -5, 0, 10, 5, -10 })); } public void testMaxDouble() { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]