// ArduinoJson - https://arduinojson.org // Copyright © 2014-2022, Benoit BLANCHON // MIT License #include #include using namespace ARDUINOJSON_NAMESPACE; class EmptyClass {}; enum EmptyEnum {}; TEST_CASE("Polyfills/type_traits") { SECTION("is_base_of") { REQUIRE_FALSE( static_cast(is_base_of::value)); REQUIRE( static_cast(is_base_of::value)); } SECTION("is_array") { REQUIRE_FALSE((is_array::value)); REQUIRE((is_array::value)); REQUIRE((is_array::value)); } SECTION("is_const") { CHECK(is_const::value == false); CHECK(is_const::value == true); } SECTION("is_integral") { CHECK(is_integral::value == false); CHECK(is_integral::value == false); CHECK(is_integral::value == false); CHECK(is_integral::value == false); CHECK(is_integral::value == false); CHECK(is_integral::value == false); CHECK(is_integral::value == false); CHECK(is_integral::value == false); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); CHECK(is_integral::value == true); } SECTION("is_signed") { CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == false); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == false); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == false); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == true); CHECK(is_signed::value == false); } SECTION("is_unsigned") { CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == false); CHECK(is_unsigned::value == false); CHECK(is_unsigned::value == false); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == false); CHECK(is_unsigned::value == false); CHECK(is_unsigned::value == false); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == false); CHECK(is_unsigned::value == false); CHECK(is_unsigned::value == false); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == true); CHECK(is_unsigned::value == false); CHECK(is_unsigned::value == false); CHECK(is_unsigned::value == false); } SECTION("is_floating_point") { CHECK(is_floating_point::value == false); CHECK(is_floating_point::value == true); CHECK(is_floating_point::value == true); CHECK(is_floating_point::value == true); CHECK(is_floating_point::value == true); CHECK(is_floating_point::value == true); CHECK(is_floating_point::value == true); CHECK(is_floating_point::value == true); CHECK(is_floating_point::value == true); } SECTION("is_convertible") { CHECK((is_convertible::value == true)); CHECK((is_convertible::value == true)); CHECK((is_convertible::value == true)); CHECK((is_convertible::value == false)); CHECK((is_convertible::value == false)); CHECK((is_convertible::value == false)); CHECK((is_convertible::value == false)); CHECK((is_convertible::value == true)); CHECK((is_convertible::value == true)); CHECK((is_convertible::value == true)); CHECK((is_convertible, JsonVariantConst>::value == true)); CHECK((is_convertible::value == true)); CHECK((is_convertible::value == true)); CHECK((is_convertible, JsonVariantConst>::value == true)); CHECK((is_convertible::value == true)); CHECK( (is_convertible::value == true)); CHECK((is_convertible, JsonVariantConst>::value == true)); } SECTION("is_class") { CHECK((is_class::value == false)); CHECK((is_class::value == false)); CHECK((is_class::value == false)); CHECK((is_class::value == true)); } SECTION("is_enum") { CHECK(is_enum::value == false); CHECK(is_enum::value == true); CHECK(is_enum::value == false); CHECK(is_enum::value == false); CHECK(is_enum::value == false); CHECK(is_enum::value == false); } }