Updated Branches: refs/heads/wicket-1.5.x 8e78f13a2 -> 4d43ee9f7
WICKET-4696 MIN_VALUE of Double and Float is not minimum number Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/4d43ee9f Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/4d43ee9f Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/4d43ee9f Branch: refs/heads/wicket-1.5.x Commit: 4d43ee9f72d565ab4691ee4a707e34955d03e8d7 Parents: c93a386 Author: svenmeier <svenme...@apache.org> Authored: Mon Aug 6 21:12:03 2012 +0200 Committer: svenmeier <svenme...@apache.org> Committed: Mon Aug 6 21:12:03 2012 +0200 ---------------------------------------------------------------------- .../java/org/apache/wicket/util/lang/Numbers.java | 14 ++++++------ .../org/apache/wicket/util/lang/NumbersTest.java | 17 ++++++++------ 2 files changed, 17 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/4d43ee9f/wicket-util/src/main/java/org/apache/wicket/util/lang/Numbers.java ---------------------------------------------------------------------- diff --git a/wicket-util/src/main/java/org/apache/wicket/util/lang/Numbers.java b/wicket-util/src/main/java/org/apache/wicket/util/lang/Numbers.java index 1f23cbf..260d8d1 100644 --- a/wicket-util/src/main/java/org/apache/wicket/util/lang/Numbers.java +++ b/wicket-util/src/main/java/org/apache/wicket/util/lang/Numbers.java @@ -37,9 +37,9 @@ public final class Numbers * Returns the minimum value for the numberType's type * * @param numberType - * the type of the number for which the minimum value will be returned * @return the - * minimum value of the numberType or {@value Double#MIN_VALUE} if the numberType - * itself is either {@code null} or has no minimum value + * the type of the number for which the minimum value will be returned + * @return the minimum value of the numberType or Double if the numberType itself is either + * {@code null} or has no minimum value */ public static Number getMinValue(Class<? extends Number> numberType) { @@ -54,11 +54,11 @@ public final class Numbers } else if (Float.class == numberType || float.class == numberType) { - result = Float.MIN_VALUE; + result = -Float.MAX_VALUE; } else if (Double.class == numberType || double.class == numberType) { - result = Double.MIN_VALUE; + result = -Double.MAX_VALUE; } else if (Byte.class == numberType || byte.class == numberType) { @@ -70,8 +70,8 @@ public final class Numbers } else { // null of any other Number - LOG.debug("'{}' has no minimum value. Falling back to Double.MIN_VALUE.", numberType); - result = Double.MIN_VALUE; + LOG.debug("'{}' has no minimum value. Falling back to Double.", numberType); + result = -Double.MAX_VALUE; } return result; http://git-wip-us.apache.org/repos/asf/wicket/blob/4d43ee9f/wicket-util/src/test/java/org/apache/wicket/util/lang/NumbersTest.java ---------------------------------------------------------------------- diff --git a/wicket-util/src/test/java/org/apache/wicket/util/lang/NumbersTest.java b/wicket-util/src/test/java/org/apache/wicket/util/lang/NumbersTest.java index da9735b..14ec700 100644 --- a/wicket-util/src/test/java/org/apache/wicket/util/lang/NumbersTest.java +++ b/wicket-util/src/test/java/org/apache/wicket/util/lang/NumbersTest.java @@ -27,6 +27,9 @@ import org.junit.Test; */ public class NumbersTest extends Assert { + /** + * See WICKET-4696 for Float and Double minimum value + */ @Test public void getMinValue() { @@ -34,17 +37,17 @@ public class NumbersTest extends Assert assertEquals(Integer.MIN_VALUE, Numbers.getMinValue(int.class)); assertEquals(Long.MIN_VALUE, Numbers.getMinValue(Long.class)); assertEquals(Long.MIN_VALUE, Numbers.getMinValue(long.class)); - assertEquals(Float.MIN_VALUE, Numbers.getMinValue(Float.class)); - assertEquals(Float.MIN_VALUE, Numbers.getMinValue(float.class)); - assertEquals(Double.MIN_VALUE, Numbers.getMinValue(Double.class)); - assertEquals(Double.MIN_VALUE, Numbers.getMinValue(double.class)); + assertEquals(-Float.MAX_VALUE, Numbers.getMinValue(Float.class)); + assertEquals(-Float.MAX_VALUE, Numbers.getMinValue(float.class)); + assertEquals(-Double.MAX_VALUE, Numbers.getMinValue(Double.class)); + assertEquals(-Double.MAX_VALUE, Numbers.getMinValue(double.class)); assertEquals(Byte.MIN_VALUE, Numbers.getMinValue(Byte.class)); assertEquals(Byte.MIN_VALUE, Numbers.getMinValue(byte.class)); assertEquals(Short.MIN_VALUE, Numbers.getMinValue(Short.class)); assertEquals(Short.MIN_VALUE, Numbers.getMinValue(short.class)); - assertEquals(Double.MIN_VALUE, Numbers.getMinValue(BigDecimal.class)); - assertEquals(Double.MIN_VALUE, Numbers.getMinValue(BigInteger.class)); - assertEquals(Double.MIN_VALUE, Numbers.getMinValue(null)); + assertEquals(-Double.MAX_VALUE, Numbers.getMinValue(BigDecimal.class)); + assertEquals(-Double.MAX_VALUE, Numbers.getMinValue(BigInteger.class)); + assertEquals(-Double.MAX_VALUE, Numbers.getMinValue(null)); } @Test