diff --git a/test/src/unit-constructor1.cpp b/test/src/unit-constructor1.cpp index 4ce91676..dc3507bc 100644 --- a/test/src/unit-constructor1.cpp +++ b/test/src/unit-constructor1.cpp @@ -813,6 +813,21 @@ TEST_CASE("constructors") CHECK(j.type() == json::value_t::number_float); } + SECTION("NaN") + { + // NaN is stored properly, but serialized to null + json::number_float_t n(std::numeric_limits::quiet_NaN()); + json j(n); + CHECK(j.type() == json::value_t::number_float); + + // check round trip of NaN + json::number_float_t d = j; + CHECK((std::isnan(d) and std::isnan(n)) == true); + + // check that NaN is serialized to null + CHECK(j.dump() == "null"); + } + SECTION("infinity") { // infinity is stored properly, but serialized to null