commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pste...@apache.org
Subject cvs commit: jakarta-commons/lang/src/test/org/apache/commons/lang/math NumberUtilsTest.java
Date Fri, 05 Sep 2003 15:55:09 GMT
psteitz     2003/09/05 08:55:09

  Modified:    lang/src/java/org/apache/commons/lang/math NumberUtils.java
               lang/src/test/org/apache/commons/lang/math
                        NumberUtilsTest.java
  Log:
  Added stringToDouble, stringToLong functions to NumberUtils.
  Patch supplied by Fredrik Westermarck
  Reviewd by Phil Steitz
  
  Revision  Changes    Path
  1.12      +76 -3     jakarta-commons/lang/src/java/org/apache/commons/lang/math/NumberUtils.java
  
  Index: NumberUtils.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/math/NumberUtils.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- NumberUtils.java	4 Sep 2003 07:27:12 -0000	1.11
  +++ NumberUtils.java	5 Sep 2003 15:55:09 -0000	1.12
  @@ -156,6 +156,40 @@
       }
   
       /**
  +     * <p>Convert a <code>String</code> to a <code>long</code>,
returning
  +     * <code>zero</code> if the conversion fails.</p>
  +     *
  +     * <p>If the string is <code>null</code>, <code>zero</code>
is returned.</p>
  +     *
  +     * @param str  the string to convert, may be null
  +     * @return the long represented by the string, or <code>0</code> if
  +     *  conversion fails
  +     * @since 2.1
  +     */
  +    public static long stringToLong(String str) {
  +        return stringToLong(str, 0L);
  +    }
  +
  +    /**
  +     * <p>Convert a <code>String</code> to a <code>long</code>,
returning a
  +     * default value if the conversion fails.</p>
  +     *
  +     * <p>If the string is <code>null</code>, the default value is returned.</p>
  +     *
  +     * @param str  the string to convert, may be null
  +     * @param defaultValue  the default value
  +     * @return the long represented by the string, or the default if conversion fails
  +     * @since 2.1
  +     */
  +    public static long stringToLong(String str, long defaultValue) {
  +        try {
  +            return Long.parseLong(str);
  +        } catch (NumberFormatException nfe) {
  +            return defaultValue;
  +        }
  +    }
  +
  +    /**
        * <p>Convert a <code>String</code> to a <code>float</code>,
returning
        * <code>0.0f</code> if the conversion fails.</p>
        *
  @@ -187,10 +221,49 @@
       public static float stringToFloat(String str, float defaultValue) {
         if(str==null) {
             return defaultValue;
  -      }
  -      
  +      }     
         try {
             return Float.parseFloat(str);
  +      } catch (NumberFormatException nfe) {
  +          return defaultValue;
  +      }
  +    }
  +
  +    /**
  +     * <p>Convert a <code>String</code> to a <code>double</code>,
returning
  +     * <code>0.0d</code> if the conversion fails.</p>
  +     *
  +     * <p>If the string <code>str</code> is <code>null</code>,
  +     * <code>0.0d</code> is returned.</p>
  +     *
  +     * @param str the string to convert, may be <code>null</code>
  +     * @return the double represented by the string, or <code>0.0d</code>
  +     *  if conversion fails
  +     * @since 2.1
  +     */
  +    public static double stringToDouble(String str) {
  +        return stringToDouble(str, 0.0d);
  +    }
  +
  +    /**
  +     * <p>Convert a <code>String</code> to a <code>double</code>,
returning a
  +     * default value if the conversion fails.</p>
  +     *
  +     * <p>If the string <code>str</code> is <code>null</code>,
the default
  +     * value is returned.</p>
  +     *
  +     * @param str the string to convert, may be <code>null</code>
  +     * @param defaultValue the default value
  +     * @return the double represented by the string, or defaultValue
  +     *  if conversion fails
  +     * @since 2.1
  +     */
  +    public static double stringToDouble(String str, double defaultValue) {
  +      if(str==null) {
  +          return defaultValue;
  +      }
  +      try {
  +          return Double.parseDouble(str);
         } catch (NumberFormatException nfe) {
             return defaultValue;
         }
  
  
  
  1.9       +46 -1     jakarta-commons/lang/src/test/org/apache/commons/lang/math/NumberUtilsTest.java
  
  Index: NumberUtilsTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/lang/src/test/org/apache/commons/lang/math/NumberUtilsTest.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- NumberUtilsTest.java	4 Sep 2003 07:27:12 -0000	1.8
  +++ NumberUtilsTest.java	5 Sep 2003 15:55:09 -0000	1.9
  @@ -124,12 +124,36 @@
       }
   
       /**
  +     * Test for long stringToLong(String)
  +     */
  +    public void testStringToLongString() {
  +        assertTrue("stringToLong(String) 1 failed", NumberUtils.stringToLong("12345") ==
12345l);
  +        assertTrue("stringToLong(String) 2 failed", NumberUtils.stringToLong("abc") ==
0l);
  +        assertTrue("stringToLong(String) 3 failed", NumberUtils.stringToLong("1L") == 0l);
  +        assertTrue("stringToLong(String) 4 failed", NumberUtils.stringToLong("1l") == 0l);
  +        assertTrue("stringToLong(Long.MAX_VALUE) failed", NumberUtils.stringToLong(Long.MAX_VALUE+"")
== Long.MAX_VALUE);
  +        assertTrue("stringToLong(Long.MIN_VALUE) failed", NumberUtils.stringToLong(Long.MIN_VALUE+"")
== Long.MIN_VALUE);
  +        assertTrue("stringToLong(empty) failed", NumberUtils.stringToLong("") == 0l);
  +        assertTrue("stringToLong(null) failed", NumberUtils.stringToLong(null) == 0l);
  +    }
  +
  +    /**
  +     * Test for long stringToLong(String, long)
  +     */
  +    public void testStringToLongStringL() {
  +        assertTrue("stringToLong(String,long) 1 failed", NumberUtils.stringToLong("12345",
5l) == 12345l);
  +        assertTrue("stringToLong(String,long) 2 failed", NumberUtils.stringToLong("1234.5",
5l) == 5l);
  +    }
  +
  +    /**
        * Test for float stringToFloat(String)
        */
       public void testStringToFloatString() {
           assertTrue("stringToFloat(String) 1 failed", NumberUtils.stringToFloat("-1.2345")
== -1.2345f);
           assertTrue("stringToFloat(String) 2 failed", NumberUtils.stringToFloat("1.2345")
== 1.2345f);
           assertTrue("stringToFloat(String) 3 failed", NumberUtils.stringToFloat("abc") ==
0.0f);
  +        assertTrue("stringToFloat(Float.MAX_VALUE) failed", NumberUtils.stringToFloat(Float.MAX_VALUE+"")
==  Float.MAX_VALUE);
  +        assertTrue("stringToFloat(Float.MIN_VALUE) failed", NumberUtils.stringToFloat(Float.MIN_VALUE+"")
== Float.MIN_VALUE);
           assertTrue("stringToFloat(empty) failed", NumberUtils.stringToFloat("") == 0.0f);
           assertTrue("stringToFloat(null) failed", NumberUtils.stringToFloat(null) == 0.0f);
       }
  @@ -140,6 +164,27 @@
       public void testStringToFloatStringF() {
           assertTrue("stringToFloat(String,int) 1 failed", NumberUtils.stringToFloat("1.2345",
5.1f) == 1.2345f);
           assertTrue("stringToFloat(String,int) 2 failed", NumberUtils.stringToFloat("a",
5.0f) == 5.0f);
  +    }
  +
  +    /**
  +     * Test for double stringToDouble(String)
  +     */
  +    public void testStringToDoubleString() {
  +        assertTrue("stringToDouble(String) 1 failed", NumberUtils.stringToDouble("-1.2345")
== -1.2345d);
  +        assertTrue("stringToDouble(String) 2 failed", NumberUtils.stringToDouble("1.2345")
== 1.2345d);
  +        assertTrue("stringToDouble(String) 3 failed", NumberUtils.stringToDouble("abc")
== 0.0d);
  +        assertTrue("stringToDouble(Double.MAX_VALUE) failed", NumberUtils.stringToDouble(Double.MAX_VALUE+"")
== Double.MAX_VALUE);
  +        assertTrue("stringToDouble(Double.MIN_VALUE) failed", NumberUtils.stringToDouble(Double.MIN_VALUE+"")
== Double.MIN_VALUE);
  +        assertTrue("stringToDouble(empty) failed", NumberUtils.stringToDouble("") == 0.0d);
  +        assertTrue("stringToDouble(null) failed", NumberUtils.stringToDouble(null) == 0.0d);
  +    }
  +
  +    /**
  +     * Test for double stringToFloat(String, float)
  +     */
  +    public void testStringToDoubleStringD() {
  +        assertTrue("stringToDouble(String,int) 1 failed", NumberUtils.stringToDouble("1.2345",
5.1d) == 1.2345d);
  +        assertTrue("stringToDouble(String,int) 2 failed", NumberUtils.stringToDouble("a",
5.0d) == 5.0d);
       }
   
       public void testCreateNumber() {
  
  
  

Mime
View raw message