Updated Branches:
  refs/heads/master 772122a6d -> f5f802c56

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/f5f802c5
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/f5f802c5
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/f5f802c5

Branch: refs/heads/master
Commit: f5f802c56388eef5a7336ce00961e0f895f418db
Parents: a3cfb91
Author: svenmeier <[email protected]>
Authored: Sun Aug 5 23:16:17 2012 +0200
Committer: svenmeier <[email protected]>
Committed: Sun Aug 5 23:16:17 2012 +0200

----------------------------------------------------------------------
 .../java/org/apache/wicket/util/lang/Numbers.java  |   12 +++++-----
 .../org/apache/wicket/util/lang/NumbersTest.java   |   17 ++++++++------
 2 files changed, 16 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/f5f802c5/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 f4e7858..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
@@ -38,8 +38,8 @@ public final class Numbers
         * 
         * @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
+        * @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/f5f802c5/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