Author: sebb
Date: Wed Mar 27 16:29:56 2013
New Revision: 1461698

URL: http://svn.apache.org/r1461698
Log:
Add tests to try and break createNumber exponent handling

Modified:
    
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java

Modified: 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java?rev=1461698&r1=1461697&r2=1461698&view=diff
==============================================================================
--- 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java
 (original)
+++ 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/math/NumberUtilsTest.java
 Wed Mar 27 16:29:56 2013
@@ -225,7 +225,7 @@ public class NumberUtilsTest {
         // LANG-693
         assertEquals("createNumber(String) LANG-693 failed", 
Double.valueOf(Double.MAX_VALUE), NumberUtils
                     .createNumber("" + Double.MAX_VALUE));
-        
+
         // LANG-822
         // ensure that the underlying negative number would create a BigDecimal
         final Number bigNum = NumberUtils.createNumber("-1.1E-700F");
@@ -236,7 +236,25 @@ public class NumberUtilsTest {
     @Test(expected=NumberFormatException.class)
     // Check that the code fails to create a valid number when preceeded by -- 
rather than -
     public void testCreateNumberFailure_1() {
-        NumberUtils.createNumber("--1.1E-700F");        
+        NumberUtils.createNumber("--1.1E-700F");
+    }
+
+    @Test(expected=NumberFormatException.class)
+    // Check that the code fails to create a valid number when both e and E 
are present (with decimal)
+    public void testCreateNumberFailure_2() {
+        NumberUtils.createNumber("-1.1E+0-7e00");
+    }
+
+    @Test(expected=NumberFormatException.class)
+    // Check that the code fails to create a valid number when both e and E 
are present (no decimal)
+    public void testCreateNumberFailure_3() {
+        NumberUtils.createNumber("-11E+0-7e00");
+    }
+
+    @Test(expected=NumberFormatException.class)
+    // Check that the code fails to create a valid number when both e and E 
are present (no decimal)
+    public void testCreateNumberFailure_4() {
+        NumberUtils.createNumber("1eE+00001");
     }
 
     // Tests to show when magnitude causes switch to next Number type
@@ -251,7 +269,7 @@ public class NumberUtilsTest {
         assertEquals(Double.valueOf(Double.MAX_VALUE),          
NumberUtils.createNumber("1.7976931348623157e+308"));
         // Test with +2 in final digit (+1 does not cause roll-over to 
BigDecimal)
         assertEquals(new BigDecimal("1.7976931348623159e+308"), 
NumberUtils.createNumber("1.7976931348623159e+308"));
-        
+
         assertEquals(Integer.valueOf(0x12345678), 
NumberUtils.createNumber("0x12345678"));
         assertEquals(Long.valueOf(0x123456789L),  
NumberUtils.createNumber("0x123456789"));
 


Reply via email to