Added tests for default numeric values.
diff --git a/src/test_lib_json/main.cpp b/src/test_lib_json/main.cpp
index 144919b..37393c8 100644
--- a/src/test_lib_json/main.cpp
+++ b/src/test_lib_json/main.cpp
@@ -202,6 +202,42 @@
IsCheck checks;
Json::Value val;
+ // Default int
+ val = Json::Value(Json::intValue);
+
+ JSONTEST_ASSERT_EQUAL(Json::intValue, val.type());
+
+ checks = IsCheck();
+ checks.isInt_ = true;
+ checks.isNumeric_ = true;
+ checks.isIntegral_ = true;
+ JSONTEST_ASSERT_PRED( checkIs( val, checks ) );
+
+ JSONTEST_ASSERT( 0 == val.asInt());
+ JSONTEST_ASSERT( 0 == val.asLargestInt());
+ JSONTEST_ASSERT( 0 == val.asUInt());
+ JSONTEST_ASSERT( 0 == val.asLargestUInt());
+ JSONTEST_ASSERT( 0.0 == val.asDouble());
+ JSONTEST_ASSERT( 0.0 == val.asFloat());
+
+ // Default uint
+ val = Json::Value(Json::uintValue);
+
+ JSONTEST_ASSERT_EQUAL(Json::uintValue, val.type());
+
+ checks = IsCheck();
+ checks.isUInt_ = true;
+ checks.isNumeric_ = true;
+ checks.isIntegral_ = true;
+ JSONTEST_ASSERT_PRED( checkIs( val, checks ) );
+
+ JSONTEST_ASSERT( 0 == val.asInt());
+ JSONTEST_ASSERT( 0 == val.asLargestInt());
+ JSONTEST_ASSERT( 0 == val.asUInt());
+ JSONTEST_ASSERT( 0 == val.asLargestUInt());
+ JSONTEST_ASSERT( 0.0 == val.asDouble());
+ JSONTEST_ASSERT( 0.0 == val.asFloat());
+
// Zero (signed constructor arg)
val = Json::Value(0);
@@ -443,6 +479,23 @@
IsCheck checks;
Json::Value val;
+ // Default real
+ val = Json::Value(Json::realValue);
+
+ JSONTEST_ASSERT_EQUAL(Json::realValue, val.type());
+
+ checks = IsCheck();
+ checks.isDouble_ = true;
+ checks.isNumeric_ = true;
+ JSONTEST_ASSERT_PRED( checkIs( val, checks ) );
+
+ JSONTEST_ASSERT( 0 == val.asInt());
+ JSONTEST_ASSERT( 0 == val.asLargestInt());
+ JSONTEST_ASSERT( 0 == val.asUInt());
+ JSONTEST_ASSERT( 0 == val.asLargestUInt());
+ JSONTEST_ASSERT( 0.0 == val.asDouble());
+ JSONTEST_ASSERT( 0.0 == val.asFloat());
+
// Positive number
val = Json::Value(0.25);