|
18 | 18 | #include <sstream>
|
19 | 19 | #include <string>
|
20 | 20 | #include <iomanip>
|
| 21 | +#include <cmath> |
21 | 22 |
|
22 | 23 | // Make numeric limits more convenient to talk about.
|
23 | 24 | // Assumes int type in 32 bits.
|
@@ -972,8 +973,8 @@ JSONTEST_FIXTURE(ValueTest, integers) {
|
972 | 973 | JSONTEST_ASSERT_EQUAL(Json::UInt64(1) << 63, val.asUInt64());
|
973 | 974 | JSONTEST_ASSERT_EQUAL(Json::UInt64(1) << 63, val.asLargestUInt());
|
974 | 975 | JSONTEST_ASSERT_EQUAL(uint64ToDouble(Json::UInt64(1) << 63), val.asDouble());
|
975 |
| - JSONTEST_ASSERT_EQUAL(float(uint64ToDouble(Json::UInt64(1) << 63)), |
976 |
| - val.asFloat()); |
| 976 | + JSONTEST_ASSERT_EQUAL(float(Json::UInt64(1) << 63), val.asFloat()); |
| 977 | + |
977 | 978 | JSONTEST_ASSERT_EQUAL(true, val.asBool());
|
978 | 979 | JSONTEST_ASSERT_STRING_EQUAL("9.2233720368547758e+18",
|
979 | 980 | normalizeFloatingPointStr(JsonTest::ToJsonString(val.asString())));
|
@@ -2405,7 +2406,7 @@ JSONTEST_FIXTURE(CharReaderAllowSpecialFloatsTest, issue209) {
|
2405 | 2406 | JSONTEST_ASSERT_STRING_EQUAL("", errs);
|
2406 | 2407 | JSONTEST_ASSERT_EQUAL(3u, root.size());
|
2407 | 2408 | double n = root["a"].asDouble();
|
2408 |
| - JSONTEST_ASSERT(n != n); |
| 2409 | + JSONTEST_ASSERT(std::isnan(n)); |
2409 | 2410 | JSONTEST_ASSERT_EQUAL(std::numeric_limits<double>::infinity(), root.get("b", 0.0));
|
2410 | 2411 | JSONTEST_ASSERT_EQUAL(-std::numeric_limits<double>::infinity(), root.get("c", 0.0));
|
2411 | 2412 | }
|
|
0 commit comments