Added overflow handling in JsonVariant::as<T>() and JsonVariant::is<T>()

This commit is contained in:
Benoit Blanchon
2019-03-06 15:31:37 +01:00
parent 746f2882f7
commit 576543c4b4
42 changed files with 781 additions and 434 deletions

View File

@ -2,6 +2,8 @@
// Copyright Benoit Blanchon 2014-2019
// MIT License
#define ARDUINOJSON_USE_DOUBLE 0
#include <ArduinoJson/Numbers/parseFloat.hpp>
#include <catch.hpp>
@ -33,10 +35,6 @@ void checkInf(const char* input, bool negative) {
}
TEST_CASE("parseFloat<float>()") {
SECTION("Null") {
check<float>(NULL, 0);
}
SECTION("Float_Short_NoExponent") {
check<float>("3.14", 3.14f);
check<float>("-3.14", -3.14f);
@ -97,19 +95,13 @@ TEST_CASE("parseFloat<float>()") {
checkInf<float>("inf", false);
checkInf<float>("+inf", false);
checkInf<float>("-inf", true);
}
SECTION("Boolean") {
check<float>("false", 0.0f);
check<float>("true", 1.0f);
checkInf<float>("1e300", false);
checkInf<float>("-1e300", true);
}
}
TEST_CASE("parseFloat<double>()") {
SECTION("Null") {
check<double>(NULL, 0);
}
SECTION("Short_NoExponent") {
check<double>("3.14", 3.14);
check<double>("-3.14", -3.14);
@ -169,9 +161,4 @@ TEST_CASE("parseFloat<double>()") {
checkNaN<double>("NaN");
checkNaN<double>("nan");
}
SECTION("Boolean") {
check<double>("false", 0.0);
check<double>("true", 1.0);
}
}