// ArduinoJson - https://arduinojson.org // Copyright © 2014-2024, Benoit BLANCHON // MIT License #include #include #include using namespace ArduinoJson::detail; template void checkInteger(const char* input, T expected) { CAPTURE(input); T actual = parseNumber(input); REQUIRE(expected == actual); } TEST_CASE("parseNumber()") { checkInteger("-128", -128); checkInteger("127", 127); checkInteger("+127", 127); checkInteger("3.14", 3); checkInteger("x42", 0); checkInteger("128", 0); // overflow checkInteger("-129", 0); // overflow } TEST_CASE("parseNumber()") { checkInteger("-32768", -32768); checkInteger("32767", 32767); checkInteger("+32767", 32767); checkInteger("3.14", 3); checkInteger("x42", 0); checkInteger("-32769", 0); // overflow checkInteger("32768", 0); // overflow } TEST_CASE("parseNumber()") { checkInteger("-2147483648", (-2147483647 - 1)); checkInteger("2147483647", 2147483647); checkInteger("+2147483647", 2147483647); checkInteger("3.14", 3); checkInteger("x42", 0); checkInteger("-2147483649", 0); // overflow checkInteger("2147483648", 0); // overflow } TEST_CASE("parseNumber()") { checkInteger("0", 0); checkInteger("-0", 0); checkInteger("255", 255); checkInteger("+255", 255); checkInteger("3.14", 3); checkInteger("x42", 0); checkInteger("-1", 0); checkInteger("256", 0); } TEST_CASE("parseNumber()") { checkInteger("0", 0); checkInteger("65535", 65535); checkInteger("+65535", 65535); checkInteger("3.14", 3); // checkInteger(" 42", 0); checkInteger("x42", 0); checkInteger("-1", 0); checkInteger("65536", 0); }