mirror of
https://github.com/Tencent/rapidjson.git
synced 2025-03-06 13:41:35 +01:00
Compare exact binary representation for full precision test
Conflicts: doc/diagram/simpledom.png
This commit is contained in:
parent
7e24024f51
commit
55f8339a0a
@ -189,14 +189,15 @@ static void TestParseDouble() {
|
|||||||
ASSERT_EQ(kParseErrorNone, reader.Parse<fullPrecision ? kParseFullPrecisionFlag : 0>(s, h).Code()); \
|
ASSERT_EQ(kParseErrorNone, reader.Parse<fullPrecision ? kParseFullPrecisionFlag : 0>(s, h).Code()); \
|
||||||
EXPECT_EQ(1u, h.step_); \
|
EXPECT_EQ(1u, h.step_); \
|
||||||
internal::Double e(x), a(h.actual_); \
|
internal::Double e(x), a(h.actual_); \
|
||||||
EXPECT_EQ(e.Sign(), a.Sign()); \
|
|
||||||
if (fullPrecision) { \
|
if (fullPrecision) { \
|
||||||
EXPECT_NEAR(x, h.actual_, 0.0); \
|
EXPECT_EQ(e.Uint64Value(), a.Uint64Value()); \
|
||||||
if (x != h.actual_) \
|
if (e.Uint64Value() != a.Uint64Value()) \
|
||||||
printf(" String: %s\n Actual: %.17g\nExpected: %.17g\n", str, h.actual_, x); \
|
printf(" String: %s\n Actual: %.17g\nExpected: %.17g\n", str, h.actual_, x); \
|
||||||
} \
|
} \
|
||||||
else \
|
else { \
|
||||||
|
EXPECT_EQ(e.Sign(), a.Sign()); /* for 0.0 != -0.0 */ \
|
||||||
EXPECT_DOUBLE_EQ(x, h.actual_); \
|
EXPECT_DOUBLE_EQ(x, h.actual_); \
|
||||||
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_DOUBLE(fullPrecision, "0.0", 0.0);
|
TEST_DOUBLE(fullPrecision, "0.0", 0.0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user