// tests/test_is_database_primitive.cpp #include #include "matador/utils/types.hpp" #include using namespace matador::utils; TEST_CASE("is_database_primitive: true for all database_type alternatives", "[type_traits]") { STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); } TEST_CASE("is_database_primitive: strips cv/ref qualifiers", "[type_traits]") { STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); STATIC_REQUIRE(is_database_primitive_v); } TEST_CASE("is_database_primitive: false for non-alternatives (even if convertible)", "[type_traits]") { STATIC_REQUIRE_FALSE(is_database_primitive_v); // not const char* STATIC_REQUIRE_FALSE(is_database_primitive_v); // array type != const char* STATIC_REQUIRE_FALSE(is_database_primitive_v); // not in variant STATIC_REQUIRE_FALSE(is_database_primitive_v); // not in variant STATIC_REQUIRE_FALSE(is_database_primitive_v); // not in variant STATIC_REQUIRE_FALSE(is_database_primitive_v); // your custom null wrapper isn't in variant } TEST_CASE("is_database_primitive: works via ::value too", "[type_traits]") { STATIC_REQUIRE(is_database_primitive::value); // STATIC_REQUIRE(is_database_primitive::value); // assuming unsigned != uint32_t on your platform }