Added more floating point tests.

The first demonstrates a bug that I will soon fix.

git-svn-id: http://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/jsoncpp@271 1f120ed1-78a5-a849-adca-83f0a9e25bb6
diff --git a/src/test_lib_json/main.cpp b/src/test_lib_json/main.cpp
index 26a5f27..b2d5d19 100644
--- a/src/test_lib_json/main.cpp
+++ b/src/test_lib_json/main.cpp
@@ -1228,6 +1228,21 @@
 
    val = Json::Value(1.2345678901234);
    JSONTEST_ASSERT_STRING_EQUAL( "1.23456789012340", normalizeFloatingPointStr(val.asString()));
+
+   // A 16-digit floating point number.
+   val = Json::Value(2199023255552000.0f);
+   JSONTEST_ASSERT_EQUAL(float(2199023255552000), val.asFloat());
+   JSONTEST_ASSERT_STRING_EQUAL("2199023255552000.", normalizeFloatingPointStr(val.asString()));
+
+   // A very large floating point number.
+   val = Json::Value(3.402823466385289e38);
+   JSONTEST_ASSERT_EQUAL(float(3.402823466385289e38), val.asFloat());
+   JSONTEST_ASSERT_STRING_EQUAL("3.402823466385289e+38", normalizeFloatingPointStr(val.asString()));
+
+   // An even larger floating point number.
+   val = Json::Value(1.2345678e300);
+   JSONTEST_ASSERT_EQUAL(double(1.2345678e300), val.asDouble());
+   JSONTEST_ASSERT_STRING_EQUAL("1.234567800000000e+300", normalizeFloatingPointStr(val.asString()));
 }