diff --git a/src/main/java/com/alibaba/fastjson/serializer/DoubleSerializer.java b/src/main/java/com/alibaba/fastjson/serializer/DoubleSerializer.java index b65950ef2..0ee2720c0 100755 --- a/src/main/java/com/alibaba/fastjson/serializer/DoubleSerializer.java +++ b/src/main/java/com/alibaba/fastjson/serializer/DoubleSerializer.java @@ -26,14 +26,18 @@ public class DoubleSerializer implements ObjectSerializer { public final static DoubleSerializer instance = new DoubleSerializer(); - private DecimalFormat decimalFomrat = null; + private DecimalFormat decimalFormat = null; public DoubleSerializer(){ } - public DoubleSerializer(DecimalFormat decimalFomrat){ - this.decimalFomrat = decimalFomrat; + public DoubleSerializer(DecimalFormat decimalFormat){ + this.decimalFormat = decimalFormat; + } + + public DoubleSerializer(String decimalFormat){ + this(new DecimalFormat(decimalFormat)); } public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType) throws IOException { @@ -56,13 +60,13 @@ public class DoubleSerializer implements ObjectSerializer { out.writeNull(); } else { String doubleText; - if (decimalFomrat == null) { + if (decimalFormat == null) { doubleText = Double.toString(doubleValue); if (doubleText.endsWith(".0")) { doubleText = doubleText.substring(0, doubleText.length() - 2); } } else { - doubleText = decimalFomrat.format(doubleValue); + doubleText = decimalFormat.format(doubleValue); } out.append(doubleText); diff --git a/src/test/java/com/alibaba/json/bvt/FloatFieldTest.java b/src/test/java/com/alibaba/json/bvt/FloatFieldTest.java index e65516fd5..1e5bac5d3 100755 --- a/src/test/java/com/alibaba/json/bvt/FloatFieldTest.java +++ b/src/test/java/com/alibaba/json/bvt/FloatFieldTest.java @@ -16,7 +16,7 @@ public class FloatFieldTest extends TestCase { User user1 = JSON.parseObject(text, User.class); - Assert.assertEquals(user1.getValue(), user.getValue()); + Assert.assertTrue(user1.getValue() == user.getValue()); } public static class User { diff --git a/src/test/java/com/alibaba/json/bvt/JSONArrayTest.java b/src/test/java/com/alibaba/json/bvt/JSONArrayTest.java index 5a05dfe75..09f3c90e9 100755 --- a/src/test/java/com/alibaba/json/bvt/JSONArrayTest.java +++ b/src/test/java/com/alibaba/json/bvt/JSONArrayTest.java @@ -117,11 +117,11 @@ public class JSONArrayTest extends TestCase { Assert.assertEquals(123, array.getShort(0).shortValue()); Assert.assertEquals(123, array.getShortValue(0)); - Assert.assertEquals(123F, array.getFloat(0).floatValue()); - Assert.assertEquals(123F, array.getFloatValue(0)); + Assert.assertTrue(123F == array.getFloat(0).floatValue()); + Assert.assertTrue(123F == array.getFloatValue(0)); - Assert.assertEquals(123D, array.getDouble(0).doubleValue()); - Assert.assertEquals(123D, array.getDoubleValue(0)); + Assert.assertTrue(123D == array.getDouble(0).doubleValue()); + Assert.assertTrue(123D == array.getDoubleValue(0)); Assert.assertEquals(123, array.getIntValue(0)); Assert.assertEquals(123, array.getLongValue(0)); diff --git a/src/test/java/com/alibaba/json/bvt/JSONArrayTest2.java b/src/test/java/com/alibaba/json/bvt/JSONArrayTest2.java index 6275af845..3eaaa5d0d 100755 --- a/src/test/java/com/alibaba/json/bvt/JSONArrayTest2.java +++ b/src/test/java/com/alibaba/json/bvt/JSONArrayTest2.java @@ -17,8 +17,8 @@ public class JSONArrayTest2 extends TestCase { array.add(time); Assert.assertEquals(0, array.getByteValue(0)); Assert.assertEquals(0, array.getShortValue(0)); - Assert.assertEquals(0F, array.getFloatValue(0)); - Assert.assertEquals(0D, array.getDoubleValue(0)); + Assert.assertTrue(0F == array.getFloatValue(0)); + Assert.assertTrue(0D == array.getDoubleValue(0)); Assert.assertEquals(new BigInteger("1"), array.getBigInteger(1)); Assert.assertEquals("1", array.getString(1)); Assert.assertEquals(new java.util.Date(time), array.getDate(2)); @@ -28,8 +28,8 @@ public class JSONArrayTest2 extends TestCase { JSONArray array2 = (JSONArray) array.clone(); Assert.assertEquals(0, array2.getByteValue(0)); Assert.assertEquals(0, array2.getShortValue(0)); - Assert.assertEquals(0F, array2.getFloatValue(0)); - Assert.assertEquals(0D, array2.getDoubleValue(0)); + Assert.assertTrue(0F == array2.getFloatValue(0)); + Assert.assertTrue(0D == array2.getDoubleValue(0)); Assert.assertEquals(new BigInteger("1"), array2.getBigInteger(1)); Assert.assertEquals("1", array2.getString(1)); Assert.assertEquals(new java.util.Date(time), array2.getDate(2)); diff --git a/src/test/java/com/alibaba/json/bvt/JSONObjectTest.java b/src/test/java/com/alibaba/json/bvt/JSONObjectTest.java index 68d2ccb5c..0520bfb58 100755 --- a/src/test/java/com/alibaba/json/bvt/JSONObjectTest.java +++ b/src/test/java/com/alibaba/json/bvt/JSONObjectTest.java @@ -156,10 +156,10 @@ public class JSONObjectTest extends TestCase { Assert.assertEquals(new BigDecimal("222"), array.getBigDecimal("1")); Assert.assertEquals(true, array.getBooleanValue("4")); - Assert.assertEquals(2.0F, array.getFloat("5").floatValue()); - Assert.assertEquals(2.0F, array.getFloatValue("5")); - Assert.assertEquals(2.0D, array.getDouble("5").doubleValue()); - Assert.assertEquals(2.0D, array.getDoubleValue("5")); + Assert.assertTrue(2.0F == array.getFloat("5").floatValue()); + Assert.assertTrue(2.0F == array.getFloatValue("5")); + Assert.assertTrue(2.0D == array.getDouble("5").doubleValue()); + Assert.assertTrue(2.0D == array.getDoubleValue("5")); } public void test_getObject_null() throws Exception { diff --git a/src/test/java/com/alibaba/json/bvt/JSONObjectTest2.java b/src/test/java/com/alibaba/json/bvt/JSONObjectTest2.java index 51eb8125e..601a015e8 100755 --- a/src/test/java/com/alibaba/json/bvt/JSONObjectTest2.java +++ b/src/test/java/com/alibaba/json/bvt/JSONObjectTest2.java @@ -31,8 +31,8 @@ public class JSONObjectTest2 extends TestCase { Assert.assertEquals(obj.getByteValue("d"), 0); Assert.assertEquals(obj.getShortValue("d"), 0); - Assert.assertEquals(obj.getFloatValue("d"), 0F); - Assert.assertEquals(obj.getDoubleValue("d"), 0D); + Assert.assertTrue(obj.getFloatValue("d") == 0F); + Assert.assertTrue(obj.getDoubleValue("d") == 0D); Assert.assertEquals(obj.getBigInteger("d"), null); Assert.assertEquals(obj.getSqlDate("d"), null); Assert.assertEquals(obj.getTimestamp("d"), null); diff --git a/src/test/java/com/alibaba/json/bvt/PublicFieldDoubleTest.java b/src/test/java/com/alibaba/json/bvt/PublicFieldDoubleTest.java index cc5d12da9..c1031a61f 100755 --- a/src/test/java/com/alibaba/json/bvt/PublicFieldDoubleTest.java +++ b/src/test/java/com/alibaba/json/bvt/PublicFieldDoubleTest.java @@ -20,6 +20,6 @@ public class PublicFieldDoubleTest extends TestCase { VO vo1 = JSON.parseObject(str, VO.class); - Assert.assertEquals(vo1.id, vo.id); + Assert.assertTrue(vo1.id == vo.id); } } diff --git a/src/test/java/com/alibaba/json/bvt/PublicFieldFloatTest.java b/src/test/java/com/alibaba/json/bvt/PublicFieldFloatTest.java index 9f4905368..c44e4a264 100755 --- a/src/test/java/com/alibaba/json/bvt/PublicFieldFloatTest.java +++ b/src/test/java/com/alibaba/json/bvt/PublicFieldFloatTest.java @@ -20,6 +20,6 @@ public class PublicFieldFloatTest extends TestCase { VO vo1 = JSON.parseObject(str, VO.class); - Assert.assertEquals(vo1.id, vo.id); + Assert.assertTrue(vo1.id == vo.id); } } diff --git a/src/test/java/com/alibaba/json/bvt/bug/Bug_for_jiangwei1.java b/src/test/java/com/alibaba/json/bvt/bug/Bug_for_jiangwei1.java index ad78d95ab..d98844a4b 100755 --- a/src/test/java/com/alibaba/json/bvt/bug/Bug_for_jiangwei1.java +++ b/src/test/java/com/alibaba/json/bvt/bug/Bug_for_jiangwei1.java @@ -7,15 +7,15 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; - public class Bug_for_jiangwei1 extends TestCase { + public void test_double() throws Exception { JSONObject json = JSON.parseObject("{\"val\":12.3}"); - Assert.assertEquals(12.3D, json.getDoubleValue("val")); + Assert.assertTrue(12.3D == json.getDoubleValue("val")); } - + public void test_JSONArray_double() throws Exception { JSONArray json = JSON.parseArray("[12.3]"); - Assert.assertEquals(12.3D, json.getDoubleValue(0)); + Assert.assertTrue(12.3D == json.getDoubleValue(0)); } } diff --git a/src/test/java/com/alibaba/json/bvt/parser/JSONReaderScannerTest__entity_double.java b/src/test/java/com/alibaba/json/bvt/parser/JSONReaderScannerTest__entity_double.java index ebba9064b..4f0cf53f1 100644 --- a/src/test/java/com/alibaba/json/bvt/parser/JSONReaderScannerTest__entity_double.java +++ b/src/test/java/com/alibaba/json/bvt/parser/JSONReaderScannerTest__entity_double.java @@ -4,10 +4,10 @@ import java.io.Reader; import java.io.StringReader; import java.util.List; -import org.junit.Assert; import junit.framework.TestCase; -import com.alibaba.fastjson.JSONArray; +import org.junit.Assert; + import com.alibaba.fastjson.parser.DefaultJSONParser; import com.alibaba.fastjson.parser.JSONReaderScanner; @@ -31,8 +31,9 @@ public class JSONReaderScannerTest__entity_double extends TestCase { DefaultJSONParser parser = new DefaultJSONParser(scanner); List array = parser.parseArray(VO.class); for (int i = 0; i < array.size(); ++i) { - Assert.assertEquals((double) i, array.get(i).getId()); + Assert.assertTrue((double) i == array.get(i).getId()); } + parser.close(); } public static class VO { diff --git a/src/test/java/com/alibaba/json/bvt/parser/JSONReaderScannerTest__entity_float.java b/src/test/java/com/alibaba/json/bvt/parser/JSONReaderScannerTest__entity_float.java index 0aa64e6ae..a2cb9c8f7 100644 --- a/src/test/java/com/alibaba/json/bvt/parser/JSONReaderScannerTest__entity_float.java +++ b/src/test/java/com/alibaba/json/bvt/parser/JSONReaderScannerTest__entity_float.java @@ -4,10 +4,10 @@ import java.io.Reader; import java.io.StringReader; import java.util.List; -import org.junit.Assert; import junit.framework.TestCase; -import com.alibaba.fastjson.JSONArray; +import org.junit.Assert; + import com.alibaba.fastjson.parser.DefaultJSONParser; import com.alibaba.fastjson.parser.JSONReaderScanner; @@ -31,8 +31,9 @@ public class JSONReaderScannerTest__entity_float extends TestCase { DefaultJSONParser parser = new DefaultJSONParser(scanner); List array = parser.parseArray(VO.class); for (int i = 0; i < array.size(); ++i) { - Assert.assertEquals((float) i, array.get(i).getId()); + Assert.assertTrue((float) i == array.get(i).getId()); } + parser.close(); } public static class VO { diff --git a/src/test/java/com/alibaba/json/bvt/parser/JSONScannerTest_scanFieldDouble.java b/src/test/java/com/alibaba/json/bvt/parser/JSONScannerTest_scanFieldDouble.java index 0350d8255..c35c9a5f7 100755 --- a/src/test/java/com/alibaba/json/bvt/parser/JSONScannerTest_scanFieldDouble.java +++ b/src/test/java/com/alibaba/json/bvt/parser/JSONScannerTest_scanFieldDouble.java @@ -11,37 +11,37 @@ public class JSONScannerTest_scanFieldDouble extends TestCase { public void test_0() throws Exception { String text = "{\"value\":1.0}"; VO obj = JSON.parseObject(text, VO.class); - Assert.assertEquals(1D, obj.getValue()); + Assert.assertTrue(1D == obj.getValue()); } public void test_1() throws Exception { String text = "{\"value\":\"1\"}"; VO obj = JSON.parseObject(text, VO.class); - Assert.assertEquals(1D, obj.getValue()); + Assert.assertTrue(1D == obj.getValue()); } public void test_2() throws Exception { String text = "{\"f1\":2,\"value\":1.0}"; VO obj = JSON.parseObject(text, VO.class); - Assert.assertEquals(1D, obj.getValue()); + Assert.assertTrue(1D == obj.getValue()); } public void test_3() throws Exception { String text = "{\"value\":1.01}"; VO obj = JSON.parseObject(text, VO.class); - Assert.assertEquals(1.01D, obj.getValue()); + Assert.assertTrue(1.01D == obj.getValue()); } public void test_4() throws Exception { String text = "{\"value\":1.}"; VO obj = JSON.parseObject(text, VO.class); - Assert.assertEquals(1D, obj.getValue()); + Assert.assertTrue(1D == obj.getValue()); } public void test_5() throws Exception { String text = "{\"value\":922337203685477580723}"; VO obj = JSON.parseObject(text, VO.class); - Assert.assertEquals(922337203685477580723D, obj.getValue()); + Assert.assertTrue(922337203685477580723D == obj.getValue()); } public void test_error_2() throws Exception { diff --git a/src/test/java/com/alibaba/json/bvt/parser/JSONScannerTest_scanFieldFloat.java b/src/test/java/com/alibaba/json/bvt/parser/JSONScannerTest_scanFieldFloat.java index 875856961..e0da50ad0 100755 --- a/src/test/java/com/alibaba/json/bvt/parser/JSONScannerTest_scanFieldFloat.java +++ b/src/test/java/com/alibaba/json/bvt/parser/JSONScannerTest_scanFieldFloat.java @@ -12,9 +12,10 @@ public class JSONScannerTest_scanFieldFloat extends TestCase { public void test_0() throws Exception { String text = "{\"value\":1.0}"; VO obj = JSON.parseObject(text, VO.class); - Assert.assertEquals(1F, obj.getValue()); + Assert.assertTrue(1F == obj.getValue()); } + @SuppressWarnings("resource") public void test_isBlank() throws Exception { String text = " {\"value\":1.0}"; Assert.assertTrue(!new JSONScanner(text).isBlankInput()); @@ -23,31 +24,31 @@ public class JSONScannerTest_scanFieldFloat extends TestCase { public void test_1() throws Exception { String text = "{\"value\":\"1\"}"; VO obj = JSON.parseObject(text, VO.class); - Assert.assertEquals(1F, obj.getValue()); + Assert.assertTrue(1F == obj.getValue()); } public void test_2() throws Exception { String text = "{\"f1\":2,\"value\":1.0}"; VO obj = JSON.parseObject(text, VO.class); - Assert.assertEquals(1F, obj.getValue()); + Assert.assertTrue(1F == obj.getValue()); } public void test_3() throws Exception { String text = "{\"value\":1.01}"; VO obj = JSON.parseObject(text, VO.class); - Assert.assertEquals(1.01F, obj.getValue()); + Assert.assertTrue(1.01F == obj.getValue()); } public void test_4() throws Exception { String text = "{\"value\":1.}"; VO obj = JSON.parseObject(text, VO.class); - Assert.assertEquals(1F, obj.getValue()); + Assert.assertTrue(1F == obj.getValue()); } public void test_error_1() throws Exception { String text = "{\"value\":922337203685477580723}"; VO obj = JSON.parseObject(text, VO.class); - Assert.assertEquals(922337203685477580723F, obj.getValue()); + Assert.assertTrue(922337203685477580723F == obj.getValue()); } public void test_error_2() throws Exception { diff --git a/src/test/java/com/alibaba/json/bvt/parser/deser/FactoryTest.java b/src/test/java/com/alibaba/json/bvt/parser/deser/FactoryTest.java index f68149feb..6eccc1082 100755 --- a/src/test/java/com/alibaba/json/bvt/parser/deser/FactoryTest.java +++ b/src/test/java/com/alibaba/json/bvt/parser/deser/FactoryTest.java @@ -14,7 +14,7 @@ public class FactoryTest extends TestCase { Assert.assertEquals(true, vo.isB()); Assert.assertEquals(33, vo.getI()); Assert.assertEquals(34L, vo.getL()); - Assert.assertEquals(45f, vo.getF()); + Assert.assertTrue(45f == vo.getF()); JSON.parseObject("{\"b\":1,\"i\":33,\"l\":34,\"f\":45.}", VO.class); } @@ -23,7 +23,7 @@ public class FactoryTest extends TestCase { Assert.assertEquals(true, vo.isB()); Assert.assertEquals(33, vo.getI()); Assert.assertEquals(34L, vo.getL()); - Assert.assertEquals(45f, vo.getF()); + Assert.assertTrue(45f == vo.getF()); JSON.parseObject("{\"b\":1,\"i\":33,\"l\":34,\"f\":45.}", V1.class); } diff --git a/src/test/java/com/alibaba/json/bvt/parser/deser/TestASM_double.java b/src/test/java/com/alibaba/json/bvt/parser/deser/TestASM_double.java index 671415d68..c8d4fb577 100755 --- a/src/test/java/com/alibaba/json/bvt/parser/deser/TestASM_double.java +++ b/src/test/java/com/alibaba/json/bvt/parser/deser/TestASM_double.java @@ -12,7 +12,7 @@ public class TestASM_double extends TestCase { String text = JSON.toJSONString(v); V0 v1 = JSON.parseObject(text, V0.class); - Assert.assertEquals(v.getValue(), v1.getValue()); + Assert.assertTrue(v.getValue() == v1.getValue()); } public static class V0 { diff --git a/src/test/java/com/alibaba/json/bvt/parser/deser/TestASM_float.java b/src/test/java/com/alibaba/json/bvt/parser/deser/TestASM_float.java index dcaf8fe9c..e96da014a 100755 --- a/src/test/java/com/alibaba/json/bvt/parser/deser/TestASM_float.java +++ b/src/test/java/com/alibaba/json/bvt/parser/deser/TestASM_float.java @@ -1,8 +1,9 @@ package com.alibaba.json.bvt.parser.deser; -import org.junit.Assert; import junit.framework.TestCase; +import org.junit.Assert; + import com.alibaba.fastjson.JSON; public class TestASM_float extends TestCase { @@ -12,7 +13,7 @@ public class TestASM_float extends TestCase { String text = JSON.toJSONString(v); V0 v1 = JSON.parseObject(text, V0.class); - Assert.assertEquals(v.getValue(), v1.getValue()); + Assert.assertTrue(v.getValue() == v1.getValue()); } public static class V0 { diff --git a/src/test/java/com/alibaba/json/bvt/serializer/DoubleTest.java b/src/test/java/com/alibaba/json/bvt/serializer/DoubleTest.java index 5c878b5cb..e859b3517 100755 --- a/src/test/java/com/alibaba/json/bvt/serializer/DoubleTest.java +++ b/src/test/java/com/alibaba/json/bvt/serializer/DoubleTest.java @@ -20,7 +20,7 @@ public class DoubleTest extends TestCase { VO vo1 = JSON.parseObject(text, VO.class); Assert.assertEquals(vo.getF1(), vo1.getF1()); - Assert.assertEquals(vo.getF2(), vo1.getF2()); + Assert.assertTrue(vo.getF2() == vo1.getF2()); Assert.assertEquals(vo.getF3(), vo1.getF3()); }