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

Reply via email to