You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/11/17 13:39:57 UTC

svn commit: r1036001 - in /pivot/trunk/core: src/org/apache/pivot/json/JSONSerializer.java test/org/apache/pivot/json/test/JSONSerializerTest.java

Author: gbrown
Date: Wed Nov 17 12:39:57 2010
New Revision: 1036001

URL: http://svn.apache.org/viewvc?rev=1036001&view=rev
Log:
Support negative floating point exponent values in JSONSerializer.

Modified:
    pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java
    pivot/trunk/core/test/org/apache/pivot/json/test/JSONSerializerTest.java

Modified: pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java?rev=1036001&r1=1036000&r2=1036001&view=diff
==============================================================================
--- pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java (original)
+++ pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java Wed Nov 17 12:39:57 2010
@@ -478,7 +478,7 @@ public class JSONSerializer implements S
         }
 
         while (c != -1 && (Character.isDigit(c) || c == '.'
-            || c == 'e' || c == 'E')) {
+            || c == 'e' || c == 'E' || c == '-')) {
             stringBuilder.append((char)c);
             integer &= !(c == '.');
             c = reader.read();

Modified: pivot/trunk/core/test/org/apache/pivot/json/test/JSONSerializerTest.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/test/org/apache/pivot/json/test/JSONSerializerTest.java?rev=1036001&r1=1036000&r2=1036001&view=diff
==============================================================================
--- pivot/trunk/core/test/org/apache/pivot/json/test/JSONSerializerTest.java (original)
+++ pivot/trunk/core/test/org/apache/pivot/json/test/JSONSerializerTest.java Wed Nov 17 12:39:57 2010
@@ -44,26 +44,38 @@ public class JSONSerializerTest {
         assertEquals(0, emptyList.getLength());
     }
 
+    @Test
+    public void testE() throws SerializationException {
+        assertEquals(5000000, JSONSerializer.parseDouble("5.0E6"), 0);
+        assertEquals(0.000005, JSONSerializer.parseDouble("5.0E-6"), 0);
+    }
+
+    @Test(expected=SerializationException.class)
     public void testFloatNaN() throws SerializationException {
         JSONSerializer.toString(Float.NaN);
     }
 
+    @Test(expected=SerializationException.class)
     public void testFloatNegativeInfinity() throws SerializationException {
         JSONSerializer.toString(Float.NEGATIVE_INFINITY);
     }
 
+    @Test(expected=SerializationException.class)
     public void testFloatPositiveInfinity() throws SerializationException {
         JSONSerializer.toString(Float.POSITIVE_INFINITY);
     }
 
+    @Test(expected=SerializationException.class)
     public void testDoubleNaN() throws SerializationException {
         JSONSerializer.toString(Double.NaN);
     }
 
+    @Test(expected=SerializationException.class)
     public void testDoubleNegativeInfinity() throws SerializationException {
         JSONSerializer.toString(Double.NEGATIVE_INFINITY);
     }
 
+    @Test(expected=SerializationException.class)
     public void testDoublePositiveInfinityN() throws SerializationException {
         JSONSerializer.toString(Double.POSITIVE_INFINITY);
     }