// ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2020 // 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 == 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); } 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); } 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)); } 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); } SECTION("IsVisitable") { CHECK(IsVisitable::value == false); CHECK(IsVisitable::value == false); CHECK(IsVisitable::value == true); CHECK(IsVisitable::value == true); CHECK(IsVisitable::value == true); CHECK(IsVisitable >::value == true); CHECK(IsVisitable::value == true); CHECK(IsVisitable::value == true); CHECK((IsVisitable >::value == true)); CHECK(IsVisitable::value == true); CHECK(IsVisitable::value == true); CHECK(IsVisitable >::value == true); } }