enable_nan_0.cpp 555 B

12345678910111213141516171819202122232425
  1. #define ARDUINOJSON_ENABLE_NAN 0
  2. #include <ArduinoJson.h>
  3. #include <catch.hpp>
  4. #include <limits>
  5. TEST_CASE("ARDUINOJSON_ENABLE_NAN == 0") {
  6. DynamicJsonDocument doc(4096);
  7. JsonObject root = doc.to<JsonObject>();
  8. SECTION("serializeJson()") {
  9. root["X"] = std::numeric_limits<double>::signaling_NaN();
  10. std::string json;
  11. serializeJson(doc, json);
  12. REQUIRE(json == "{\"X\":null}");
  13. }
  14. SECTION("deserializeJson()") {
  15. auto err = deserializeJson(doc, "{\"X\":NaN}");
  16. REQUIRE(err == DeserializationError::InvalidInput);
  17. }
  18. }