diff --git a/test/entt/core/compressed_pair.cpp b/test/entt/core/compressed_pair.cpp index 9db15bec1..3fe0207a8 100644 --- a/test/entt/core/compressed_pair.cpp +++ b/test/entt/core/compressed_pair.cpp @@ -47,24 +47,24 @@ TEST(CompressedPair, Size) { empty_type empty; }; - static_assert(sizeof(entt::compressed_pair) == sizeof(int[2u])); - static_assert(sizeof(entt::compressed_pair) == sizeof(int)); - static_assert(sizeof(entt::compressed_pair) == sizeof(int)); - static_assert(sizeof(entt::compressed_pair) < sizeof(local)); - static_assert(sizeof(entt::compressed_pair) < sizeof(std::pair)); + ASSERT_EQ(sizeof(entt::compressed_pair), sizeof(int[2u])); + ASSERT_EQ(sizeof(entt::compressed_pair), sizeof(int)); + ASSERT_EQ(sizeof(entt::compressed_pair), sizeof(int)); + ASSERT_LT(sizeof(entt::compressed_pair), sizeof(local)); + ASSERT_LT(sizeof(entt::compressed_pair), sizeof(std::pair)); } TEST(CompressedPair, ConstructCopyMove) { - static_assert(!std::is_default_constructible_v>); - static_assert(std::is_default_constructible_v>); + ASSERT_FALSE((std::is_default_constructible_v>)); + ASSERT_TRUE((std::is_default_constructible_v>)); - static_assert(std::is_copy_constructible_v>); - static_assert(!std::is_copy_constructible_v>); - static_assert(std::is_copy_assignable_v>); - static_assert(!std::is_copy_assignable_v>); + ASSERT_TRUE((std::is_copy_constructible_v>)); + ASSERT_FALSE((std::is_copy_constructible_v>)); + ASSERT_TRUE((std::is_copy_assignable_v>)); + ASSERT_FALSE((std::is_copy_assignable_v>)); - static_assert(std::is_move_constructible_v>); - static_assert(std::is_move_assignable_v>); + ASSERT_TRUE((std::is_move_constructible_v>)); + ASSERT_TRUE((std::is_move_assignable_v>)); entt::compressed_pair copyable{non_default_constructible{42}, empty_type{}}; auto by_copy{copyable}; @@ -104,9 +104,9 @@ TEST(CompressedPair, DeductionGuide) { empty_type empty{}; entt::compressed_pair pair{value, 3}; - static_assert(std::is_same_v>); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>(); - ASSERT_TRUE((std::is_same_v>)); ASSERT_EQ(pair.first(), 42); ASSERT_EQ(pair.second(), 3); } @@ -115,11 +115,11 @@ TEST(CompressedPair, Getters) { entt::compressed_pair pair{3, empty_type{}}; const auto &cpair = pair; - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(pair.first(), cpair.first()); ASSERT_EQ(&pair.second(), &cpair.second()); @@ -169,14 +169,14 @@ TEST(CompressedPair, Get) { ASSERT_EQ(cfirst, 3); ASSERT_EQ(csecond, 4); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); auto [tfirst, tsecond] = entt::compressed_pair{9, 99}; ASSERT_EQ(tfirst, 9); ASSERT_EQ(tsecond, 99); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); } diff --git a/test/entt/core/hashed_string.cpp b/test/entt/core/hashed_string.cpp index 953cf0b9c..a37f5c6b4 100644 --- a/test/entt/core/hashed_string.cpp +++ b/test/entt/core/hashed_string.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include #include @@ -21,8 +20,8 @@ struct expected { inline constexpr auto expected_v = expected::value; TEST(BasicHashedString, DeductionGuide) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); } TEST(HashedString, Functionalities) { @@ -110,23 +109,23 @@ TEST(HashedString, Constexprness) { using namespace entt::literals; constexpr std::string_view view{"foobar__", 6}; - static_assert(entt::hashed_string{"quux"} == "quux"_hs); - static_assert(entt::hashed_string{"foobar"} == expected_v); + ASSERT_EQ(entt::hashed_string{"quux"}, "quux"_hs); + ASSERT_EQ(entt::hashed_string{"foobar"}, expected_v); - static_assert(entt::hashed_string::value("quux") == "quux"_hs); - static_assert(entt::hashed_string::value("foobar") == expected_v); + ASSERT_EQ(entt::hashed_string::value("quux"), "quux"_hs); + ASSERT_EQ(entt::hashed_string::value("foobar"), expected_v); - static_assert(entt::hashed_string{"quux", 4} == "quux"_hs); - static_assert(entt::hashed_string{view.data(), view.size()} == expected_v); + ASSERT_EQ((entt::hashed_string{"quux", 4}), "quux"_hs); + ASSERT_EQ((entt::hashed_string{view.data(), view.size()}), expected_v); - static_assert(entt::hashed_string::value("quux", 4) == "quux"_hs); - static_assert(entt::hashed_string::value(view.data(), view.size()) == expected_v); + ASSERT_EQ((entt::hashed_string::value("quux", 4)), "quux"_hs); + ASSERT_EQ((entt::hashed_string::value(view.data(), view.size())), expected_v); - static_assert(entt::hashed_string{"bar"} < "foo"_hs); - static_assert(entt::hashed_string{"bar"} <= "bar"_hs); + ASSERT_LT(entt::hashed_string{"bar"}, "foo"_hs); + ASSERT_LE(entt::hashed_string{"bar"}, "bar"_hs); - static_assert(entt::hashed_string{"foo"} > "bar"_hs); - static_assert(entt::hashed_string{"foo"} >= "foo"_hs); + ASSERT_GT(entt::hashed_string{"foo"}, "bar"_hs); + ASSERT_GE(entt::hashed_string{"foo"}, "foo"_hs); } TEST(HashedWString, Functionalities) { @@ -204,21 +203,21 @@ TEST(HashedWString, Constexprness) { using namespace entt::literals; constexpr std::wstring_view view{L"foobar__", 6}; - static_assert(entt::hashed_wstring{L"quux"} == L"quux"_hws); - static_assert(entt::hashed_wstring{L"foobar"} == expected_v); + ASSERT_EQ(entt::hashed_wstring{L"quux"}, L"quux"_hws); + ASSERT_EQ(entt::hashed_wstring{L"foobar"}, expected_v); - static_assert(entt::hashed_wstring::value(L"quux") == L"quux"_hws); - static_assert(entt::hashed_wstring::value(L"foobar") == expected_v); + ASSERT_EQ(entt::hashed_wstring::value(L"quux"), L"quux"_hws); + ASSERT_EQ(entt::hashed_wstring::value(L"foobar"), expected_v); - static_assert(entt::hashed_wstring{L"quux", 4} == L"quux"_hws); - static_assert(entt::hashed_wstring{view.data(), view.size()} == expected_v); + ASSERT_EQ((entt::hashed_wstring{L"quux", 4}), L"quux"_hws); + ASSERT_EQ((entt::hashed_wstring{view.data(), view.size()}), expected_v); - static_assert(entt::hashed_wstring::value(L"quux", 4) == L"quux"_hws); - static_assert(entt::hashed_wstring::value(view.data(), view.size()) == expected_v); + ASSERT_EQ((entt::hashed_wstring::value(L"quux", 4)), L"quux"_hws); + ASSERT_EQ((entt::hashed_wstring::value(view.data(), view.size())), expected_v); - static_assert(entt::hashed_wstring{L"bar"} < L"foo"_hws); - static_assert(entt::hashed_wstring{L"bar"} <= L"bar"_hws); + ASSERT_LT(entt::hashed_wstring{L"bar"}, L"foo"_hws); + ASSERT_LE(entt::hashed_wstring{L"bar"}, L"bar"_hws); - static_assert(entt::hashed_wstring{L"foo"} > L"bar"_hws); - static_assert(entt::hashed_wstring{L"foo"} >= L"foo"_hws); + ASSERT_GT(entt::hashed_wstring{L"foo"}, L"bar"_hws); + ASSERT_GE(entt::hashed_wstring{L"foo"}, L"foo"_hws); } diff --git a/test/entt/core/memory.cpp b/test/entt/core/memory.cpp index 05d65f786..4fefbf112 100644 --- a/test/entt/core/memory.cpp +++ b/test/entt/core/memory.cpp @@ -133,9 +133,8 @@ TEST(UsesAllocatorConstructionArgs, NoUsesAllocatorConstruction) { const auto value = 42; const auto args = entt::uses_allocator_construction_args(std::allocator{}, value); - static_assert(std::tuple_size_v == 1u); - static_assert(std::is_same_v>); - + ASSERT_EQ(std::tuple_size_v, 1u); + testing::StaticAssertTypeEq>(); ASSERT_EQ(std::get<0>(args), value); } @@ -143,9 +142,8 @@ TEST(UsesAllocatorConstructionArgs, LeadingAllocatorConvention) { const auto value = 42; const auto args = entt::uses_allocator_construction_args>(std::allocator{}, value, 'c'); - static_assert(std::tuple_size_v == 4u); - static_assert(std::is_same_v &, const int &, char &&>>); - + ASSERT_EQ(std::tuple_size_v, 4u); + testing::StaticAssertTypeEq &, const int &, char &&>>(); ASSERT_EQ(std::get<2>(args), value); } @@ -153,9 +151,8 @@ TEST(UsesAllocatorConstructionArgs, TrailingAllocatorConvention) { const auto size = 42u; const auto args = entt::uses_allocator_construction_args>(std::allocator{}, size); - static_assert(std::tuple_size_v == 2u); - static_assert(std::is_same_v &>>); - + ASSERT_EQ(std::tuple_size_v, 2u); + testing::StaticAssertTypeEq &>>(); ASSERT_EQ(std::get<0>(args), size); } @@ -164,26 +161,24 @@ TEST(UsesAllocatorConstructionArgs, PairPiecewiseConstruct) { const auto tup = std::make_tuple(size); const auto args = entt::uses_allocator_construction_args>>(std::allocator{}, std::piecewise_construct, std::make_tuple(3), tup); - static_assert(std::tuple_size_v == 3u); - static_assert(std::is_same_v, std::tuple &>>>); - + ASSERT_EQ(std::tuple_size_v, 3u); + testing::StaticAssertTypeEq, std::tuple &>>>(); ASSERT_EQ(std::get<0>(std::get<2>(args)), size); } TEST(UsesAllocatorConstructionArgs, PairNoArgs) { [[maybe_unused]] const auto args = entt::uses_allocator_construction_args>>(std::allocator{}); - static_assert(std::tuple_size_v == 3u); - static_assert(std::is_same_v, std::tuple &>>>); + ASSERT_EQ(std::tuple_size_v, 3u); + testing::StaticAssertTypeEq, std::tuple &>>>(); } TEST(UsesAllocatorConstructionArgs, PairValues) { const auto size = 42u; const auto args = entt::uses_allocator_construction_args>>(std::allocator{}, 3, size); - static_assert(std::tuple_size_v == 3u); - static_assert(std::is_same_v, std::tuple &>>>); - + ASSERT_EQ(std::tuple_size_v, 3u); + testing::StaticAssertTypeEq, std::tuple &>>>(); ASSERT_EQ(std::get<0>(std::get<2>(args)), size); } @@ -191,9 +186,8 @@ TEST(UsesAllocatorConstructionArgs, PairConstLValueReference) { const auto value = std::make_pair(3, 42u); const auto args = entt::uses_allocator_construction_args>>(std::allocator{}, value); - static_assert(std::tuple_size_v == 3u); - static_assert(std::is_same_v, std::tuple &>>>); - + ASSERT_EQ(std::tuple_size_v, 3u); + testing::StaticAssertTypeEq, std::tuple &>>>(); ASSERT_EQ(std::get<0>(std::get<1>(args)), 3); ASSERT_EQ(std::get<0>(std::get<2>(args)), 42u); } @@ -201,8 +195,8 @@ TEST(UsesAllocatorConstructionArgs, PairConstLValueReference) { TEST(UsesAllocatorConstructionArgs, PairRValueReference) { [[maybe_unused]] const auto args = entt::uses_allocator_construction_args>>(std::allocator{}, std::make_pair(3, 42u)); - static_assert(std::tuple_size_v == 3u); - static_assert(std::is_same_v, std::tuple &>>>); + ASSERT_EQ(std::tuple_size_v, 3u); + testing::StaticAssertTypeEq, std::tuple &>>>(); } TEST(MakeObjUsingAllocator, Functionalities) { diff --git a/test/entt/core/tuple.cpp b/test/entt/core/tuple.cpp index 80db85bae..aae913859 100644 --- a/test/entt/core/tuple.cpp +++ b/test/entt/core/tuple.cpp @@ -1,12 +1,13 @@ #include +#include #include #include TEST(Tuple, IsTuple) { - static_assert(!entt::is_tuple_v); - static_assert(entt::is_tuple_v>); - static_assert(entt::is_tuple_v>); - static_assert(entt::is_tuple_v>); + ASSERT_FALSE(entt::is_tuple_v); + ASSERT_TRUE(entt::is_tuple_v>); + ASSERT_TRUE(entt::is_tuple_v>); + ASSERT_TRUE((entt::is_tuple_v>)); } TEST(Tuple, UnwrapTuple) { @@ -14,17 +15,17 @@ TEST(Tuple, UnwrapTuple) { auto multi = std::make_tuple(42, 'c'); auto ref = std::forward_as_tuple(std::get<0>(single)); - ASSERT_TRUE((std::is_same_v)); - ASSERT_TRUE((std::is_same_v &>)); - ASSERT_TRUE((std::is_same_v)); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq &>(); + testing::StaticAssertTypeEq(); - ASSERT_TRUE((std::is_same_v)); - ASSERT_TRUE((std::is_same_v &&>)); - ASSERT_TRUE((std::is_same_v)); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq &&>(); + testing::StaticAssertTypeEq(); - ASSERT_TRUE((std::is_same_v)); - ASSERT_TRUE((std::is_same_v &>)); - ASSERT_TRUE((std::is_same_v)); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq &>(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entt::unwrap_tuple(single), 42); ASSERT_EQ(entt::unwrap_tuple(multi), multi); diff --git a/test/entt/core/type_info.cpp b/test/entt/core/type_info.cpp index c28cdf686..c37bc4ff9 100644 --- a/test/entt/core/type_info.cpp +++ b/test/entt/core/type_info.cpp @@ -42,10 +42,10 @@ TEST(TypeName, Functionalities) { } TEST(TypeInfo, Functionalities) { - static_assert(std::is_copy_constructible_v); - static_assert(std::is_move_constructible_v); - static_assert(std::is_copy_assignable_v); - static_assert(std::is_move_assignable_v); + ASSERT_TRUE(std::is_copy_constructible_v); + ASSERT_TRUE(std::is_move_constructible_v); + ASSERT_TRUE(std::is_copy_assignable_v); + ASSERT_TRUE(std::is_move_assignable_v); entt::type_info info{std::in_place_type}; entt::type_info other{std::in_place_type}; diff --git a/test/entt/core/type_traits.cpp b/test/entt/core/type_traits.cpp index 17c4db05e..bc0149da2 100644 --- a/test/entt/core/type_traits.cpp +++ b/test/entt/core/type_traits.cpp @@ -42,10 +42,10 @@ struct multi_argument_operation { }; TEST(SizeOf, Functionalities) { - static_assert(entt::size_of_v == 0u); - static_assert(entt::size_of_v == sizeof(char)); - static_assert(entt::size_of_v == 0u); - static_assert(entt::size_of_v == sizeof(int[3])); + ASSERT_EQ(entt::size_of_v, 0u); + ASSERT_EQ(entt::size_of_v, sizeof(char)); + ASSERT_EQ(entt::size_of_v, 0u); + ASSERT_EQ(entt::size_of_v, sizeof(int[3])); } TEST(UnpackAsType, Functionalities) { @@ -69,188 +69,188 @@ TEST(UnpackAsValue, Functionalities) { TEST(IntegralConstant, Functionalities) { entt::integral_constant<3> constant{}; - static_assert(std::is_same_v::value_type, int>); - static_assert(constant.value == 3); + testing::StaticAssertTypeEq::value_type, int>(); + ASSERT_EQ(constant.value, 3); } TEST(Choice, Functionalities) { - static_assert(std::is_base_of_v, entt::choice_t<1>>); - static_assert(!std::is_base_of_v, entt::choice_t<0>>); + ASSERT_TRUE((std::is_base_of_v, entt::choice_t<1>>)); + ASSERT_FALSE((std::is_base_of_v, entt::choice_t<0>>)); } TEST(TypeList, Functionalities) { using type = entt::type_list; using other = entt::type_list; - static_assert(type::size == 2u); - static_assert(other::size == 1u); + ASSERT_EQ(type::size, 2u); + ASSERT_EQ(other::size, 1u); - static_assert(std::is_same_v>); - static_assert(std::is_same_v, entt::type_list>); - static_assert(std::is_same_v, entt::type_list>); - static_assert(std::is_same_v, entt::type_list>); - static_assert(std::is_same_v>, type>); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq, entt::type_list>(); + testing::StaticAssertTypeEq, entt::type_list>(); + testing::StaticAssertTypeEq, entt::type_list>(); + testing::StaticAssertTypeEq>, type>(); - static_assert(entt::type_list_contains_v); - static_assert(entt::type_list_contains_v); - static_assert(!entt::type_list_contains_v); + ASSERT_TRUE((entt::type_list_contains_v)); + ASSERT_TRUE((entt::type_list_contains_v)); + ASSERT_FALSE((entt::type_list_contains_v)); - static_assert(std::is_same_v, int>); - static_assert(std::is_same_v, char>); - static_assert(std::is_same_v, double>); + testing::StaticAssertTypeEq, int>(); + testing::StaticAssertTypeEq, char>(); + testing::StaticAssertTypeEq, double>(); - static_assert(entt::type_list_index_v == 0u); - static_assert(entt::type_list_index_v == 1u); - static_assert(entt::type_list_index_v == 0u); + ASSERT_EQ((entt::type_list_index_v), 0u); + ASSERT_EQ((entt::type_list_index_v), 1u); + ASSERT_EQ((entt::type_list_index_v), 0u); - static_assert(std::is_same_v, entt::type_list>, entt::type_list>); - static_assert(std::is_same_v, entt::type_list>, entt::type_list<>>); - static_assert(std::is_same_v, entt::type_list>, entt::type_list>); - static_assert(std::is_same_v, entt::type_list>, entt::type_list>); - static_assert(std::is_same_v, entt::type_list>, entt::type_list>); + testing::StaticAssertTypeEq, entt::type_list>, entt::type_list>(); + testing::StaticAssertTypeEq, entt::type_list>, entt::type_list<>>(); + testing::StaticAssertTypeEq, entt::type_list>, entt::type_list>(); + testing::StaticAssertTypeEq, entt::type_list>, entt::type_list>(); + testing::StaticAssertTypeEq, entt::type_list>, entt::type_list>(); - static_assert(std::is_same_v, entt::type_identity>, entt::type_list>); - static_assert(std::is_same_v, std::add_const>, entt::type_list>); - static_assert(std::is_same_v, multi_argument_operation>, entt::type_list>); + testing::StaticAssertTypeEq, entt::type_identity>, entt::type_list>(); + testing::StaticAssertTypeEq, std::add_const>, entt::type_list>(); + testing::StaticAssertTypeEq, multi_argument_operation>, entt::type_list>(); - static_assert(std::tuple_size_v> == 0u); - static_assert(std::tuple_size_v> == 1u); - static_assert(std::tuple_size_v> == 2u); + ASSERT_EQ(std::tuple_size_v>, 0u); + ASSERT_EQ(std::tuple_size_v>, 1u); + ASSERT_EQ((std::tuple_size_v>), 2u); - static_assert(std::is_same_v>>); - static_assert(std::is_same_v>>); - static_assert(std::is_same_v>>); + testing::StaticAssertTypeEq>>(); + testing::StaticAssertTypeEq>>(); + testing::StaticAssertTypeEq>>(); } TEST(ValueList, Functionalities) { using value = entt::value_list<0, 2>; using other = entt::value_list<1>; - static_assert(value::size == 2u); - static_assert(other::size == 1u); + ASSERT_EQ(value::size, 2u); + ASSERT_EQ(other::size, 1u); - static_assert(std::is_same_v>); - static_assert(std::is_same_v, entt::value_list<0, 2, 1, 0, 2, 1>>); - static_assert(std::is_same_v, entt::value_list<0, 2, 1>>); - static_assert(std::is_same_v, entt::value_list<0, 2, 0, 2>>); - static_assert(std::is_same_v>, value>); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq, entt::value_list<0, 2, 1, 0, 2, 1>>(); + testing::StaticAssertTypeEq, entt::value_list<0, 2, 1>>(); + testing::StaticAssertTypeEq, entt::value_list<0, 2, 0, 2>>(); + testing::StaticAssertTypeEq>, value>(); - static_assert(entt::value_list_contains_v); - static_assert(entt::value_list_contains_v); - static_assert(!entt::value_list_contains_v); + ASSERT_TRUE((entt::value_list_contains_v)); + ASSERT_TRUE((entt::value_list_contains_v)); + ASSERT_FALSE((entt::value_list_contains_v)); - static_assert(entt::value_list_element_v<0u, value> == 0); - static_assert(entt::value_list_element_v<1u, value> == 2); - static_assert(entt::value_list_element_v<0u, other> == 1); + ASSERT_EQ((entt::value_list_element_v<0u, value>), 0); + ASSERT_EQ((entt::value_list_element_v<1u, value>), 2); + ASSERT_EQ((entt::value_list_element_v<0u, other>), 1); - static_assert(entt::value_list_index_v<0, value> == 0u); - static_assert(entt::value_list_index_v<2, value> == 1u); - static_assert(entt::value_list_index_v<1, other> == 0u); + ASSERT_EQ((entt::value_list_index_v<0, value>), 0u); + ASSERT_EQ((entt::value_list_index_v<2, value>), 1u); + ASSERT_EQ((entt::value_list_index_v<1, other>), 0u); - static_assert(std::is_same_v, entt::value_list<3, 4>>, entt::value_list<0, 1, 2>>); - static_assert(std::is_same_v, entt::value_list<0, 1, 2>>, entt::value_list<>>); - static_assert(std::is_same_v, entt::value_list<0, 1>>, entt::value_list<2>>); - static_assert(std::is_same_v, entt::value_list<1, 2>>, entt::value_list<0>>); - static_assert(std::is_same_v, entt::value_list<1>>, entt::value_list<0, 2>>); + testing::StaticAssertTypeEq, entt::value_list<3, 4>>, entt::value_list<0, 1, 2>>(); + testing::StaticAssertTypeEq, entt::value_list<0, 1, 2>>, entt::value_list<>>(); + testing::StaticAssertTypeEq, entt::value_list<0, 1>>, entt::value_list<2>>(); + testing::StaticAssertTypeEq, entt::value_list<1, 2>>, entt::value_list<0>>(); + testing::StaticAssertTypeEq, entt::value_list<1>>, entt::value_list<0, 2>>(); - static_assert(std::tuple_size_v> == 0u); - static_assert(std::tuple_size_v> == 1u); - static_assert(std::tuple_size_v> == 2u); + ASSERT_EQ((std::tuple_size_v>), 0u); + ASSERT_EQ((std::tuple_size_v>), 1u); + ASSERT_EQ((std::tuple_size_v>), 2u); - static_assert(std::is_same_v>>); - static_assert(std::is_same_v>>); - static_assert(std::is_same_v>>); + testing::StaticAssertTypeEq>>(); + testing::StaticAssertTypeEq>>(); + testing::StaticAssertTypeEq>>(); } TEST(IsApplicable, Functionalities) { - static_assert(entt::is_applicable_v>); - static_assert(!entt::is_applicable_v>); + ASSERT_TRUE((entt::is_applicable_v>)); + ASSERT_FALSE((entt::is_applicable_v>)); - static_assert(entt::is_applicable_r_v>); - static_assert(!entt::is_applicable_r_v>); - static_assert(!entt::is_applicable_r_v>); + ASSERT_TRUE((entt::is_applicable_r_v>)); + ASSERT_FALSE((entt::is_applicable_r_v>)); + ASSERT_FALSE((entt::is_applicable_r_v>)); } TEST(IsComplete, Functionalities) { - static_assert(!entt::is_complete_v); - static_assert(entt::is_complete_v); + ASSERT_FALSE(entt::is_complete_v); + ASSERT_TRUE(entt::is_complete_v); } TEST(IsIterator, Functionalities) { - static_assert(!entt::is_iterator_v); - static_assert(!entt::is_iterator_v); + ASSERT_FALSE(entt::is_iterator_v); + ASSERT_FALSE(entt::is_iterator_v); - static_assert(!entt::is_iterator_v); - static_assert(entt::is_iterator_v); + ASSERT_FALSE(entt::is_iterator_v); + ASSERT_TRUE(entt::is_iterator_v); - static_assert(entt::is_iterator_v::iterator>); - static_assert(entt::is_iterator_v::const_iterator>); - static_assert(entt::is_iterator_v::reverse_iterator>); + ASSERT_TRUE(entt::is_iterator_v::iterator>); + ASSERT_TRUE(entt::is_iterator_v::const_iterator>); + ASSERT_TRUE(entt::is_iterator_v::reverse_iterator>); } TEST(IsEBCOEligible, Functionalities) { - static_assert(entt::is_ebco_eligible_v); - static_assert(!entt::is_ebco_eligible_v); - static_assert(!entt::is_ebco_eligible_v); - static_assert(!entt::is_ebco_eligible_v); + ASSERT_TRUE(entt::is_ebco_eligible_v); + ASSERT_FALSE(entt::is_ebco_eligible_v); + ASSERT_FALSE(entt::is_ebco_eligible_v); + ASSERT_FALSE(entt::is_ebco_eligible_v); } TEST(IsTransparent, Functionalities) { - static_assert(!entt::is_transparent_v>); - static_assert(entt::is_transparent_v>); - static_assert(!entt::is_transparent_v>); - static_assert(entt::is_transparent_v>); + ASSERT_FALSE(entt::is_transparent_v>); + ASSERT_TRUE(entt::is_transparent_v>); + ASSERT_FALSE(entt::is_transparent_v>); + ASSERT_TRUE(entt::is_transparent_v>); } TEST(IsEqualityComparable, Functionalities) { - static_assert(entt::is_equality_comparable_v); - static_assert(entt::is_equality_comparable_v); - static_assert(entt::is_equality_comparable_v>); - static_assert(entt::is_equality_comparable_v>>); - static_assert(entt::is_equality_comparable_v>); - static_assert(entt::is_equality_comparable_v>>); - static_assert(entt::is_equality_comparable_v>); - static_assert(entt::is_equality_comparable_v>>); - static_assert(entt::is_equality_comparable_v::iterator>); - static_assert(entt::is_equality_comparable_v); + ASSERT_TRUE(entt::is_equality_comparable_v); + ASSERT_TRUE(entt::is_equality_comparable_v); + ASSERT_TRUE(entt::is_equality_comparable_v>); + ASSERT_TRUE(entt::is_equality_comparable_v>>); + ASSERT_TRUE((entt::is_equality_comparable_v>)); + ASSERT_TRUE((entt::is_equality_comparable_v>>)); + ASSERT_TRUE((entt::is_equality_comparable_v>)); + ASSERT_TRUE((entt::is_equality_comparable_v>>)); + ASSERT_TRUE(entt::is_equality_comparable_v::iterator>); + ASSERT_TRUE(entt::is_equality_comparable_v); - static_assert(!entt::is_equality_comparable_v); - static_assert(!entt::is_equality_comparable_v); - static_assert(!entt::is_equality_comparable_v); - static_assert(!entt::is_equality_comparable_v>); - static_assert(!entt::is_equality_comparable_v>>); - static_assert(!entt::is_equality_comparable_v>); - static_assert(!entt::is_equality_comparable_v>>); - static_assert(!entt::is_equality_comparable_v>); - static_assert(!entt::is_equality_comparable_v>>); - static_assert(!entt::is_equality_comparable_v); + ASSERT_FALSE(entt::is_equality_comparable_v); + ASSERT_FALSE(entt::is_equality_comparable_v); + ASSERT_FALSE(entt::is_equality_comparable_v); + ASSERT_FALSE(entt::is_equality_comparable_v>); + ASSERT_FALSE(entt::is_equality_comparable_v>>); + ASSERT_FALSE((entt::is_equality_comparable_v>)); + ASSERT_FALSE((entt::is_equality_comparable_v>>)); + ASSERT_FALSE((entt::is_equality_comparable_v>)); + ASSERT_FALSE((entt::is_equality_comparable_v>>)); + ASSERT_FALSE(entt::is_equality_comparable_v); } TEST(ConstnessAs, Functionalities) { - static_assert(std::is_same_v, int>); - static_assert(std::is_same_v, int>); - static_assert(std::is_same_v, const int>); - static_assert(std::is_same_v, const int>); + testing::StaticAssertTypeEq, int>(); + testing::StaticAssertTypeEq, int>(); + testing::StaticAssertTypeEq, const int>(); + testing::StaticAssertTypeEq, const int>(); } TEST(MemberClass, Functionalities) { - static_assert(std::is_same_v>); - static_assert(std::is_same_v>); - static_assert(std::is_same_v>); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>(); } TEST(NthArgument, Functionalities) { - static_assert(std::is_same_v, int>); - static_assert(std::is_same_v, const double &>); - static_assert(std::is_same_v, double>); - static_assert(std::is_same_v, float>); - static_assert(std::is_same_v, bool>); + testing::StaticAssertTypeEq, int>(); + testing::StaticAssertTypeEq, const double &>(); + testing::StaticAssertTypeEq, double>(); + testing::StaticAssertTypeEq, float>(); + testing::StaticAssertTypeEq, bool>(); ASSERT_EQ(free_function(entt::nth_argument_t<0u, &free_function>{}, entt::nth_argument_t<1u, &free_function>{}), 42); } TEST(Tag, Functionalities) { using namespace entt::literals; - static_assert(entt::tag<"foobar"_hs>::value == entt::hashed_string::value("foobar")); - static_assert(std::is_same_v::value_type, entt::id_type>); + ASSERT_EQ(entt::tag<"foobar"_hs>::value, entt::hashed_string::value("foobar")); + testing::StaticAssertTypeEq::value_type, entt::id_type>(); } diff --git a/test/entt/entity/component.cpp b/test/entt/entity/component.cpp index e39345025..d48647bdc 100644 --- a/test/entt/entity/component.cpp +++ b/test/entt/entity/component.cpp @@ -32,41 +32,41 @@ struct entt::component_traits { TEST(Component, VoidType) { using traits_type = entt::component_traits; - static_assert(!traits_type::in_place_delete); - static_assert(traits_type::page_size == 0u); + ASSERT_FALSE(traits_type::in_place_delete); + ASSERT_EQ(traits_type::page_size, 0u); } TEST(Component, Empty) { using traits_type = entt::component_traits; - static_assert(!traits_type::in_place_delete); - static_assert(traits_type::page_size == 0u); + ASSERT_FALSE(traits_type::in_place_delete); + ASSERT_EQ(traits_type::page_size, 0u); } TEST(Component, NonEmpty) { using traits_type = entt::component_traits; - static_assert(!traits_type::in_place_delete); - static_assert(traits_type::page_size == ENTT_PACKED_PAGE); + ASSERT_FALSE(traits_type::in_place_delete); + ASSERT_EQ(traits_type::page_size, ENTT_PACKED_PAGE); } TEST(Component, NonMovable) { using traits_type = entt::component_traits; - static_assert(traits_type::in_place_delete); - static_assert(traits_type::page_size == ENTT_PACKED_PAGE); + ASSERT_TRUE(traits_type::in_place_delete); + ASSERT_EQ(traits_type::page_size, ENTT_PACKED_PAGE); } TEST(Component, SelfContained) { using traits_type = entt::component_traits; - static_assert(traits_type::in_place_delete); - static_assert(traits_type::page_size == 4u); + ASSERT_TRUE(traits_type::in_place_delete); + ASSERT_EQ(traits_type::page_size, 4u); } TEST(Component, TraitsBased) { using traits_type = entt::component_traits; - static_assert(!traits_type::in_place_delete); - static_assert(traits_type::page_size == 8u); + ASSERT_TRUE(!traits_type::in_place_delete); + ASSERT_EQ(traits_type::page_size, 8u); } diff --git a/test/entt/entity/group.cpp b/test/entt/entity/group.cpp index bfb2eb91a..03f857067 100644 --- a/test/entt/entity/group.cpp +++ b/test/entt/entity/group.cpp @@ -223,8 +223,8 @@ TEST(NonOwningGroup, Each) { ASSERT_EQ(std::get<0>(*iterable.begin()), entity[1u]); ASSERT_EQ(std::get<0>(*++citerable.begin()), entity[0u]); - static_assert(std::is_same_v(*iterable.begin())), int &>); - static_assert(std::is_same_v(*citerable.begin())), const char &>); + testing::StaticAssertTypeEq(*iterable.begin())), int &>(); + testing::StaticAssertTypeEq(*citerable.begin())), const char &>(); // do not use iterable, make sure an iterable group works when created from a temporary for(auto [entt, ivalue, cvalue]: registry.group(entt::get).each()) { @@ -284,8 +284,8 @@ TEST(NonOwningGroup, Sort) { ASSERT_FALSE(group.contains(e3)); group.sort([](const auto lhs, const auto rhs) { - static_assert(std::is_same_v(lhs)), const int &>); - static_assert(std::is_same_v(rhs)), unsigned int &>); + testing::StaticAssertTypeEq(lhs)), const int &>(); + testing::StaticAssertTypeEq(rhs)), unsigned int &>(); return std::get<0>(lhs) < std::get<0>(rhs); }); @@ -388,33 +388,33 @@ TEST(NonOwningGroup, ConstNonConstAndAllInBetween) { ASSERT_EQ(group.size(), 1u); - static_assert(std::is_same_v({})), int &>); - static_assert(std::is_same_v({})), int &>); + testing::StaticAssertTypeEq({})), int &>(); + testing::StaticAssertTypeEq({})), int &>(); - static_assert(std::is_same_v({})), void>); - static_assert(std::is_same_v({})), void>); + testing::StaticAssertTypeEq({})), void>(); + testing::StaticAssertTypeEq({})), void>(); - static_assert(std::is_same_v({})), const char &>); - static_assert(std::is_same_v({})), const char &>); + testing::StaticAssertTypeEq({})), const char &>(); + testing::StaticAssertTypeEq({})), const char &>(); - static_assert(std::is_same_v({})), std::tuple>); - static_assert(std::is_same_v({})), std::tuple>); + testing::StaticAssertTypeEq({})), std::tuple>(); + testing::StaticAssertTypeEq({})), std::tuple>(); - static_assert(std::is_same_v>); + testing::StaticAssertTypeEq>(); - static_assert(std::is_same_v)), decltype(std::as_const(registry).group_if_exists(entt::get))>); - static_assert(std::is_same_v)), decltype(std::as_const(registry).group_if_exists(entt::get))>); - static_assert(std::is_same_v)), decltype(std::as_const(registry).group_if_exists(entt::get))>); + testing::StaticAssertTypeEq)), decltype(std::as_const(registry).group_if_exists(entt::get))>(); + testing::StaticAssertTypeEq)), decltype(std::as_const(registry).group_if_exists(entt::get))>(); + testing::StaticAssertTypeEq)), decltype(std::as_const(registry).group_if_exists(entt::get))>(); group.each([](auto &&i, auto &&c) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); }); for(auto [entt, iv, cv]: group.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); } } @@ -534,8 +534,8 @@ TEST(NonOwningGroup, EmptyAndNonEmptyTypes) { }); for(auto [entt, iv]: group.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_TRUE(entt == e0 || entt == e1); } @@ -573,9 +573,9 @@ TEST(NonOwningGroup, EmptyTypes) { }); for(auto [entt, iv, cv]: registry.group(entt::get).each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } @@ -585,9 +585,9 @@ TEST(NonOwningGroup, EmptyTypes) { }); for(auto [entt, iv, cv]: registry.group(entt::get).each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } @@ -596,9 +596,9 @@ TEST(NonOwningGroup, EmptyTypes) { }); for(auto [entt, iv, cv]: registry.group(entt::get).each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } @@ -643,9 +643,10 @@ TEST(NonOwningGroup, SignalRace) { TEST(NonOwningGroup, ExtendedGet) { using type = decltype(std::declval().group(entt::get).get({})); - static_assert(std::tuple_size_v == 2u); - static_assert(std::is_same_v, int &>); - static_assert(std::is_same_v, char &>); + ASSERT_EQ(std::tuple_size_v, 2u); + + testing::StaticAssertTypeEq, int &>(); + testing::StaticAssertTypeEq, char &>(); entt::registry registry; const auto entity = registry.create(); @@ -678,18 +679,18 @@ TEST(NonOwningGroup, Storage) { const auto entity = registry.create(); auto group = registry.group(entt::get, entt::exclude); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); ASSERT_TRUE(group); @@ -971,8 +972,8 @@ TEST(OwningGroup, Each) { ASSERT_EQ(std::get<0>(*iterable.begin()), entity[1u]); ASSERT_EQ(std::get<0>(*++citerable.begin()), entity[0u]); - static_assert(std::is_same_v(*iterable.begin())), int &>); - static_assert(std::is_same_v(*citerable.begin())), const char &>); + testing::StaticAssertTypeEq(*iterable.begin())), int &>(); + testing::StaticAssertTypeEq(*citerable.begin())), const char &>(); // do not use iterable, make sure an iterable group works when created from a temporary for(auto [entt, ivalue, cvalue]: registry.group(entt::get).each()) { @@ -1101,8 +1102,8 @@ TEST(OwningGroup, SortUnordered) { registry.emplace(entity[6], 5); group.sort([](const auto lhs, const auto rhs) { - static_assert(std::is_same_v(lhs)), boxed_int &>); - static_assert(std::is_same_v(rhs)), char &>); + testing::StaticAssertTypeEq(lhs)), boxed_int &>(); + testing::StaticAssertTypeEq(rhs)), char &>(); return std::get<1>(lhs) < std::get<1>(rhs); }); @@ -1218,43 +1219,43 @@ TEST(OwningGroup, ConstNonConstAndAllInBetween) { ASSERT_EQ(group.size(), 1u); - static_assert(std::is_same_v({})), int &>); - static_assert(std::is_same_v({})), int &>); + testing::StaticAssertTypeEq({})), int &>(); + testing::StaticAssertTypeEq({})), int &>(); - static_assert(std::is_same_v({})), const char &>); - static_assert(std::is_same_v({})), const char &>); + testing::StaticAssertTypeEq({})), const char &>(); + testing::StaticAssertTypeEq({})), const char &>(); - static_assert(std::is_same_v({})), void>); - static_assert(std::is_same_v({})), void>); + testing::StaticAssertTypeEq({})), void>(); + testing::StaticAssertTypeEq({})), void>(); - static_assert(std::is_same_v({})), double &>); - static_assert(std::is_same_v({})), double &>); + testing::StaticAssertTypeEq({})), double &>(); + testing::StaticAssertTypeEq({})), double &>(); - static_assert(std::is_same_v({})), const float &>); - static_assert(std::is_same_v({})), const float &>); + testing::StaticAssertTypeEq({})), const float &>(); + testing::StaticAssertTypeEq({})), const float &>(); - static_assert(std::is_same_v({})), std::tuple>); - static_assert(std::is_same_v({})), std::tuple>); + testing::StaticAssertTypeEq({})), std::tuple>(); + testing::StaticAssertTypeEq({})), std::tuple>(); - static_assert(std::is_same_v>); + testing::StaticAssertTypeEq>(); - static_assert(std::is_same_v(entt::get)), decltype(std::as_const(registry).group_if_exists(entt::get))>); - static_assert(std::is_same_v(entt::get)), decltype(std::as_const(registry).group_if_exists(entt::get))>); - static_assert(std::is_same_v(entt::get)), decltype(std::as_const(registry).group_if_exists(entt::get))>); + testing::StaticAssertTypeEq(entt::get)), decltype(std::as_const(registry).group_if_exists(entt::get))>(); + testing::StaticAssertTypeEq(entt::get)), decltype(std::as_const(registry).group_if_exists(entt::get))>(); + testing::StaticAssertTypeEq(entt::get)), decltype(std::as_const(registry).group_if_exists(entt::get))>(); group.each([](auto &&i, auto &&c, auto &&d, auto &&f) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); }); for(auto [entt, iv, cv, dv, fv]: group.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); } } @@ -1374,8 +1375,8 @@ TEST(OwningGroup, EmptyAndNonEmptyTypes) { }); for(auto [entt, iv]: group.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_TRUE(entt == e0 || entt == e1); } @@ -1413,9 +1414,9 @@ TEST(OwningGroup, EmptyTypes) { }); for(auto [entt, iv, cv]: registry.group(entt::get).each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } @@ -1425,9 +1426,9 @@ TEST(OwningGroup, EmptyTypes) { }); for(auto [entt, cv, iv]: registry.group(entt::get).each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } @@ -1436,9 +1437,9 @@ TEST(OwningGroup, EmptyTypes) { }); for(auto [entt, iv, cv]: registry.group(entt::get).each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } @@ -1531,9 +1532,10 @@ TEST(OwningGroup, SwappingValuesIsAllowed) { TEST(OwningGroup, ExtendedGet) { using type = decltype(std::declval().group(entt::get).get({})); - static_assert(std::tuple_size_v == 2u); - static_assert(std::is_same_v, int &>); - static_assert(std::is_same_v, char &>); + ASSERT_EQ(std::tuple_size_v, 2u); + + testing::StaticAssertTypeEq, int &>(); + testing::StaticAssertTypeEq, char &>(); entt::registry registry; const auto entity = registry.create(); @@ -1566,18 +1568,18 @@ TEST(OwningGroup, Storage) { const auto entity = registry.create(); auto group = registry.group(entt::get, entt::exclude); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); ASSERT_TRUE(group); diff --git a/test/entt/entity/handle.cpp b/test/entt/entity/handle.cpp index 258dfabae..c7bc75eb9 100644 --- a/test/entt/entity/handle.cpp +++ b/test/entt/entity/handle.cpp @@ -8,18 +8,18 @@ #include TEST(BasicHandle, Assumptions) { - static_assert(std::is_trivially_copyable_v); - static_assert(std::is_trivially_assignable_v); - static_assert(std::is_trivially_destructible_v); + ASSERT_TRUE(std::is_trivially_copyable_v); + ASSERT_TRUE((std::is_trivially_assignable_v)); + ASSERT_TRUE(std::is_trivially_destructible_v); - static_assert(std::is_trivially_copyable_v); - static_assert(std::is_trivially_assignable_v); - static_assert(std::is_trivially_destructible_v); + ASSERT_TRUE(std::is_trivially_copyable_v); + ASSERT_TRUE((std::is_trivially_assignable_v)); + ASSERT_TRUE(std::is_trivially_destructible_v); } TEST(BasicHandle, DeductionGuide) { - static_assert(std::is_same_v(), {}}), entt::basic_handle>); - static_assert(std::is_same_v(), {}}), entt::basic_handle>); + testing::StaticAssertTypeEq(), {}}), entt::basic_handle>(); + testing::StaticAssertTypeEq(), {}}), entt::basic_handle>(); } TEST(BasicHandle, Construction) { @@ -39,8 +39,8 @@ TEST(BasicHandle, Construction) { ASSERT_EQ(handle, chandle); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); } TEST(BasicHandle, Invalidation) { @@ -250,8 +250,8 @@ TEST(BasicHandle, Storage) { entt::handle handle{registry, entity}; entt::const_handle chandle{std::as_const(registry), entity}; - static_assert(std::is_same_v>); - static_assert(std::is_same_v>); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>(); ASSERT_EQ(handle.storage().begin(), handle.storage().end()); ASSERT_EQ(chandle.storage().begin(), chandle.storage().end()); diff --git a/test/entt/entity/snapshot.cpp b/test/entt/entity/snapshot.cpp index 79b6e9d46..cf68da9f2 100644 --- a/test/entt/entity/snapshot.cpp +++ b/test/entt/entity/snapshot.cpp @@ -25,11 +25,11 @@ struct shadow { }; TEST(BasicSnapshot, Constructors) { - static_assert(!std::is_default_constructible_v>); - static_assert(!std::is_copy_constructible_v>); - static_assert(!std::is_copy_assignable_v>); - static_assert(std::is_move_constructible_v>); - static_assert(std::is_move_assignable_v>); + ASSERT_FALSE(std::is_default_constructible_v>); + ASSERT_FALSE(std::is_copy_constructible_v>); + ASSERT_FALSE(std::is_copy_assignable_v>); + ASSERT_TRUE(std::is_move_constructible_v>); + ASSERT_TRUE(std::is_move_assignable_v>); entt::registry registry; entt::basic_snapshot snapshot{registry}; @@ -219,11 +219,11 @@ TEST(BasicSnapshot, GetTypeSparse) { } TEST(BasicSnapshotLoader, Constructors) { - static_assert(!std::is_default_constructible_v>); - static_assert(!std::is_copy_constructible_v>); - static_assert(!std::is_copy_assignable_v>); - static_assert(std::is_move_constructible_v>); - static_assert(std::is_move_assignable_v>); + ASSERT_FALSE(std::is_default_constructible_v>); + ASSERT_FALSE(std::is_copy_constructible_v>); + ASSERT_FALSE(std::is_copy_assignable_v>); + ASSERT_TRUE(std::is_move_constructible_v>); + ASSERT_TRUE(std::is_move_assignable_v>); entt::registry registry; entt::basic_snapshot_loader loader{registry}; @@ -495,11 +495,11 @@ TEST(BasicSnapshotLoader, Orphans) { } TEST(BasicContinuousLoader, Constructors) { - static_assert(!std::is_default_constructible_v>); - static_assert(!std::is_copy_constructible_v>); - static_assert(!std::is_copy_assignable_v>); - static_assert(std::is_move_constructible_v>); - static_assert(std::is_move_assignable_v>); + ASSERT_FALSE(std::is_default_constructible_v>); + ASSERT_FALSE(std::is_copy_constructible_v>); + ASSERT_FALSE(std::is_copy_assignable_v>); + ASSERT_TRUE(std::is_move_constructible_v>); + ASSERT_TRUE(std::is_move_assignable_v>); entt::registry registry; entt::basic_continuous_loader loader{registry}; diff --git a/test/entt/entity/storage.cpp b/test/entt/entity/storage.cpp index b25a67cc5..22791038f 100644 --- a/test/entt/entity/storage.cpp +++ b/test/entt/entity/storage.cpp @@ -975,7 +975,7 @@ TEST_F(Storage, ShrinkToFit) { } TEST_F(Storage, AggregatesMustWork) { - static_assert(std::is_aggregate_v); + ASSERT_TRUE(std::is_aggregate_v); entt::storage storage{}; // aggregate types with no args enter the non-aggregate path @@ -1018,9 +1018,9 @@ TEST_F(Storage, SelfMoveSupportInPlaceDelete) { TEST_F(Storage, Iterator) { using iterator = typename entt::storage::iterator; - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); entt::storage pool; pool.emplace(entt::entity{3}, 42); @@ -1079,9 +1079,9 @@ TEST_F(Storage, Iterator) { TEST_F(Storage, ConstIterator) { using iterator = typename entt::storage::const_iterator; - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); entt::storage pool; pool.emplace(entt::entity{3}, 42); @@ -1142,9 +1142,9 @@ TEST_F(Storage, ConstIterator) { TEST_F(Storage, ReverseIterator) { using reverse_iterator = typename entt::storage::reverse_iterator; - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); entt::storage pool; pool.emplace(entt::entity{3}, 42); @@ -1203,9 +1203,9 @@ TEST_F(Storage, ReverseIterator) { TEST_F(Storage, ConstReverseIterator) { using const_reverse_iterator = typename entt::storage::const_reverse_iterator; - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); entt::storage pool; pool.emplace(entt::entity{3}, 42); @@ -1270,8 +1270,8 @@ TEST_F(Storage, IteratorConversion) { typename entt::storage::iterator it = pool.begin(); typename entt::storage::const_iterator cit = it; - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(it->value, 42); ASSERT_EQ(it->value, cit->value); @@ -1304,9 +1304,9 @@ TEST_F(Storage, IteratorPageSizeAwareness) { TEST_F(Storage, Iterable) { using iterator = typename entt::storage::iterable::iterator; - static_assert(std::is_same_v>); - static_assert(std::is_same_v>>); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>>(); + testing::StaticAssertTypeEq(); entt::storage pool; entt::sparse_set &base = pool; @@ -1338,8 +1338,8 @@ TEST_F(Storage, Iterable) { ASSERT_EQ(begin.base(), base.end()); for(auto [entity, element]: iterable) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_TRUE(entity != entt::entity{1} || element == boxed_int{99}); ASSERT_TRUE(entity != entt::entity{3} || element == boxed_int{42}); } @@ -1348,9 +1348,9 @@ TEST_F(Storage, Iterable) { TEST_F(Storage, ConstIterable) { using iterator = typename entt::storage::const_iterable::iterator; - static_assert(std::is_same_v>); - static_assert(std::is_same_v>>); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>>(); + testing::StaticAssertTypeEq(); entt::storage pool; entt::sparse_set &base = pool; @@ -1382,8 +1382,8 @@ TEST_F(Storage, ConstIterable) { ASSERT_EQ(begin.base(), base.end()); for(auto [entity, element]: iterable) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_TRUE(entity != entt::entity{1} || element == boxed_int{99}); ASSERT_TRUE(entity != entt::entity{3} || element == boxed_int{42}); } @@ -1396,8 +1396,8 @@ TEST_F(Storage, IterableIteratorConversion) { typename entt::storage::iterable::iterator it = pool.each().begin(); typename entt::storage::const_iterable::iterator cit = it; - static_assert(std::is_same_v>); - static_assert(std::is_same_v>); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>(); ASSERT_EQ(it, cit); ASSERT_NE(++cit, it); @@ -1406,10 +1406,10 @@ TEST_F(Storage, IterableIteratorConversion) { TEST_F(Storage, EmptyTypeIterable) { using iterator = typename entt::storage::iterable::iterator; - static_assert(std::is_same_v>); - static_assert(std::is_same_v>); - static_assert(std::is_same_v>>); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>>(); + testing::StaticAssertTypeEq(); entt::storage pool; entt::sparse_set &base = pool; @@ -1439,7 +1439,7 @@ TEST_F(Storage, EmptyTypeIterable) { ASSERT_EQ(begin.base(), base.end()); for(auto [entity]: iterable) { - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); ASSERT_TRUE(entity == entt::entity{1} || entity == entt::entity{3}); } } @@ -1447,10 +1447,10 @@ TEST_F(Storage, EmptyTypeIterable) { TEST_F(Storage, EmptyTypeConstIterable) { using iterator = typename entt::storage::const_iterable::iterator; - static_assert(std::is_same_v>); - static_assert(std::is_same_v>); - static_assert(std::is_same_v>>); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>>(); + testing::StaticAssertTypeEq(); entt::storage pool; entt::sparse_set &base = pool; @@ -1480,7 +1480,7 @@ TEST_F(Storage, EmptyTypeConstIterable) { ASSERT_EQ(begin.base(), base.end()); for(auto [entity]: iterable) { - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); ASSERT_TRUE(entity == entt::entity{1} || entity == entt::entity{3}); } } @@ -1498,9 +1498,9 @@ TEST_F(Storage, IterableAlgorithmCompatibility) { TEST_F(Storage, ReverseIterable) { using iterator = typename entt::storage::reverse_iterable::iterator; - static_assert(std::is_same_v>); - static_assert(std::is_same_v>>); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>>(); + testing::StaticAssertTypeEq(); entt::storage pool; entt::sparse_set &base = pool; @@ -1532,8 +1532,8 @@ TEST_F(Storage, ReverseIterable) { ASSERT_EQ(begin.base(), base.rend()); for(auto [entity, element]: iterable) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_TRUE(entity != entt::entity{1} || element == boxed_int{99}); ASSERT_TRUE(entity != entt::entity{3} || element == boxed_int{42}); } @@ -1542,9 +1542,9 @@ TEST_F(Storage, ReverseIterable) { TEST_F(Storage, ConstReverseIterable) { using iterator = typename entt::storage::const_reverse_iterable::iterator; - static_assert(std::is_same_v>); - static_assert(std::is_same_v>>); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>>(); + testing::StaticAssertTypeEq(); entt::storage pool; entt::sparse_set &base = pool; @@ -1576,8 +1576,8 @@ TEST_F(Storage, ConstReverseIterable) { ASSERT_EQ(begin.base(), base.rend()); for(auto [entity, element]: iterable) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_TRUE(entity != entt::entity{1} || element == boxed_int{99}); ASSERT_TRUE(entity != entt::entity{3} || element == boxed_int{42}); } @@ -1590,8 +1590,8 @@ TEST_F(Storage, ReverseIterableIteratorConversion) { typename entt::storage::reverse_iterable::iterator it = pool.reach().begin(); typename entt::storage::const_reverse_iterable::iterator cit = it; - static_assert(std::is_same_v>); - static_assert(std::is_same_v>); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>(); ASSERT_EQ(it, cit); ASSERT_NE(++cit, it); @@ -1600,10 +1600,10 @@ TEST_F(Storage, ReverseIterableIteratorConversion) { TEST_F(Storage, EmptyTypeReverseIterable) { using iterator = typename entt::storage::reverse_iterable::iterator; - static_assert(std::is_same_v>); - static_assert(std::is_same_v>); - static_assert(std::is_same_v>>); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>>(); + testing::StaticAssertTypeEq(); entt::storage pool; entt::sparse_set &base = pool; @@ -1633,7 +1633,7 @@ TEST_F(Storage, EmptyTypeReverseIterable) { ASSERT_EQ(begin.base(), base.rend()); for(auto [entity]: iterable) { - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); ASSERT_TRUE(entity == entt::entity{1} || entity == entt::entity{3}); } } @@ -1641,10 +1641,10 @@ TEST_F(Storage, EmptyTypeReverseIterable) { TEST_F(Storage, EmptyTypeConstReverseIterable) { using iterator = typename entt::storage::const_reverse_iterable::iterator; - static_assert(std::is_same_v>); - static_assert(std::is_same_v>); - static_assert(std::is_same_v>>); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>>(); + testing::StaticAssertTypeEq(); entt::storage pool; entt::sparse_set &base = pool; @@ -1674,7 +1674,7 @@ TEST_F(Storage, EmptyTypeConstReverseIterable) { ASSERT_EQ(begin.base(), base.rend()); for(auto [entity]: iterable) { - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); ASSERT_TRUE(entity == entt::entity{1} || entity == entt::entity{3}); } } @@ -2305,14 +2305,14 @@ TEST_F(Storage, UsesAllocatorConstruction) { TEST_F(Storage, StorageType) { // just a bunch of static asserts to avoid regressions - static_assert(std::is_same_v, entt::sigh_mixin>>); - static_assert(std::is_same_v, entt::sigh_mixin>>); + testing::StaticAssertTypeEq, entt::sigh_mixin>>(); + testing::StaticAssertTypeEq, entt::sigh_mixin>>(); } TEST_F(Storage, StorageFor) { // just a bunch of static asserts to avoid regressions - static_assert(std::is_same_v, const entt::sigh_mixin>>); - static_assert(std::is_same_v, entt::sigh_mixin>>); - static_assert(std::is_same_v, const entt::sigh_mixin>>); - static_assert(std::is_same_v, entt::sigh_mixin>>); + testing::StaticAssertTypeEq, const entt::sigh_mixin>>(); + testing::StaticAssertTypeEq, entt::sigh_mixin>>(); + testing::StaticAssertTypeEq, const entt::sigh_mixin>>(); + testing::StaticAssertTypeEq, entt::sigh_mixin>>(); } diff --git a/test/entt/entity/view.cpp b/test/entt/entity/view.cpp index aa2767937..de826c5ad 100644 --- a/test/entt/entity/view.cpp +++ b/test/entt/entity/view.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include #include #include @@ -246,8 +245,8 @@ TEST(SingleComponentView, Each) { ASSERT_EQ(std::get<0>(*iterable.begin()), entity[1u]); ASSERT_EQ(std::get<0>(*++citerable.begin()), entity[0u]); - static_assert(std::is_same_v(*iterable.begin())), int &>); - static_assert(std::is_same_v(*citerable.begin())), const int &>); + testing::StaticAssertTypeEq(*iterable.begin())), int &>(); + testing::StaticAssertTypeEq(*citerable.begin())), const int &>(); // do not use iterable, make sure an iterable view works when created from a temporary for(auto [entt, value]: view.each()) { @@ -268,32 +267,32 @@ TEST(SingleComponentView, ConstNonConstAndAllInBetween) { ASSERT_EQ(view.size(), 1u); ASSERT_EQ(cview.size(), 1u); - static_assert(std::is_same_v({})), int &>); - static_assert(std::is_same_v({})), int &>); - static_assert(std::is_same_v>); + testing::StaticAssertTypeEq({})), int &>(); + testing::StaticAssertTypeEq({})), int &>(); + testing::StaticAssertTypeEq>(); - static_assert(std::is_same_v({})), const int &>); - static_assert(std::is_same_v({})), const int &>); - static_assert(std::is_same_v>); + testing::StaticAssertTypeEq({})), const int &>(); + testing::StaticAssertTypeEq({})), const int &>(); + testing::StaticAssertTypeEq>(); - static_assert(std::is_same_v()), decltype(cview)>); + testing::StaticAssertTypeEq()), decltype(cview)>(); view.each([](auto &&i) { - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); }); cview.each([](auto &&i) { - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); }); for(auto [entt, iv]: view.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); } for(auto [entt, iv]: cview.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); } } @@ -310,17 +309,17 @@ TEST(SingleComponentView, ConstNonConstAndAllInBetweenWithEmptyType) { ASSERT_EQ(view.size(), 1u); ASSERT_EQ(cview.size(), 1u); - static_assert(std::is_same_v>); - static_assert(std::is_same_v>); + testing::StaticAssertTypeEq>(); + testing::StaticAssertTypeEq>(); - static_assert(std::is_same_v()), decltype(cview)>); + testing::StaticAssertTypeEq()), decltype(cview)>(); for(auto [entt]: view.each()) { - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); } for(auto [entt]: cview.each()) { - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); } } @@ -381,7 +380,7 @@ TEST(SingleComponentView, EmptyTypes) { }); for(auto [entt]: registry.view().each()) { - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } @@ -395,8 +394,8 @@ TEST(SingleComponentView, EmptyTypes) { }); for(auto [entt, iv]: registry.view().each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } } @@ -423,13 +422,13 @@ TEST(SingleComponentView, DeductionGuide) { entt::storage_type_t istorage; entt::storage_type_t sstorage; - static_assert(std::is_same_v>, entt::exclude_t<>>, decltype(entt::basic_view{istorage})>); - static_assert(std::is_same_v>, entt::exclude_t<>>, decltype(entt::basic_view{std::as_const(istorage)})>); - static_assert(std::is_same_v>, entt::exclude_t<>>, decltype(entt::basic_view{sstorage})>); + testing::StaticAssertTypeEq>, entt::exclude_t<>>, decltype(entt::basic_view{istorage})>(); + testing::StaticAssertTypeEq>, entt::exclude_t<>>, decltype(entt::basic_view{std::as_const(istorage)})>(); + testing::StaticAssertTypeEq>, entt::exclude_t<>>, decltype(entt::basic_view{sstorage})>(); - static_assert(std::is_same_v>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(istorage), std::make_tuple()})>); - static_assert(std::is_same_v>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(std::as_const(istorage))})>); - static_assert(std::is_same_v>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(sstorage)})>); + testing::StaticAssertTypeEq>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(istorage), std::make_tuple()})>(); + testing::StaticAssertTypeEq>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(std::as_const(istorage))})>(); + testing::StaticAssertTypeEq>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(sstorage)})>(); } TEST(SingleComponentView, IterableViewAlgorithmCompatibility) { @@ -476,8 +475,8 @@ TEST(SingleComponentView, StableType) { }); for(auto [entt, st]: view.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(other, entt); } @@ -492,14 +491,14 @@ TEST(SingleComponentView, Storage) { auto view = registry.view(); auto cview = registry.view(); - static_assert(std::is_same_v *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); + testing::StaticAssertTypeEq *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); ASSERT_TRUE(view); ASSERT_TRUE(cview); @@ -923,8 +922,8 @@ TEST(MultiComponentView, Each) { ASSERT_EQ(std::get<0>(*iterable.begin()), entity[1u]); ASSERT_EQ(std::get<0>(*++citerable.begin()), entity[0u]); - static_assert(std::is_same_v(*iterable.begin())), int &>); - static_assert(std::is_same_v(*citerable.begin())), const char &>); + testing::StaticAssertTypeEq(*iterable.begin())), int &>(); + testing::StaticAssertTypeEq(*citerable.begin())), const char &>(); // do not use iterable, make sure an iterable view works when created from a temporary for(auto [entt, ivalue, cvalue]: registry.view().each()) { @@ -1024,29 +1023,29 @@ TEST(MultiComponentView, ConstNonConstAndAllInBetween) { ASSERT_EQ(view.size_hint(), 1u); - static_assert(std::is_same_v({})), int &>); - static_assert(std::is_same_v({})), const char &>); - static_assert(std::is_same_v({})), std::tuple>); + testing::StaticAssertTypeEq({})), int &>(); + testing::StaticAssertTypeEq({})), const char &>(); + testing::StaticAssertTypeEq({})), std::tuple>(); - static_assert(std::is_same_v({})), int &>); - static_assert(std::is_same_v({})), const char &>); - static_assert(std::is_same_v({})), std::tuple>); + testing::StaticAssertTypeEq({})), int &>(); + testing::StaticAssertTypeEq({})), const char &>(); + testing::StaticAssertTypeEq({})), std::tuple>(); - static_assert(std::is_same_v>); + testing::StaticAssertTypeEq>(); - static_assert(std::is_same_v()), decltype(std::as_const(registry).view())>); - static_assert(std::is_same_v()), decltype(std::as_const(registry).view())>); - static_assert(std::is_same_v()), decltype(std::as_const(registry).view())>); + testing::StaticAssertTypeEq()), decltype(std::as_const(registry).view())>(); + testing::StaticAssertTypeEq()), decltype(std::as_const(registry).view())>(); + testing::StaticAssertTypeEq()), decltype(std::as_const(registry).view())>(); view.each([](auto &&i, auto &&c) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); }); for(auto [entt, iv, cv]: view.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); } } @@ -1169,9 +1168,9 @@ TEST(MultiComponentView, EmptyTypes) { }); for(auto [entt, iv, cv]: v1.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } @@ -1181,9 +1180,9 @@ TEST(MultiComponentView, EmptyTypes) { }); for(auto [entt, iv, cv]: v2.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } @@ -1192,9 +1191,9 @@ TEST(MultiComponentView, EmptyTypes) { }); for(auto [entt, iv, cv]: v3.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } @@ -1205,9 +1204,9 @@ TEST(MultiComponentView, EmptyTypes) { v3.use<0u>(); for(auto [entt, iv, cv]: v3.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } @@ -1219,9 +1218,9 @@ TEST(MultiComponentView, EmptyTypes) { v2.use(); for(auto [entt, iv, cv]: v2.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(entity, entt); } } @@ -1250,9 +1249,11 @@ TEST(MultiComponentView, FrontBack) { TEST(MultiComponentView, ExtendedGet) { using type = decltype(std::declval().view().get({})); - static_assert(std::tuple_size_v == 2u); - static_assert(std::is_same_v, int &>); - static_assert(std::is_same_v, char &>); + + ASSERT_EQ(std::tuple_size_v, 2u); + + testing::StaticAssertTypeEq, int &>(); + testing::StaticAssertTypeEq, char &>(); } TEST(MultiComponentView, DeductionGuide) { @@ -1261,23 +1262,23 @@ TEST(MultiComponentView, DeductionGuide) { entt::storage_type_t dstorage; entt::storage_type_t sstorage; - static_assert(std::is_same_v, entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{istorage, dstorage})>); - static_assert(std::is_same_v, entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::as_const(istorage), dstorage})>); - static_assert(std::is_same_v, const entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{istorage, std::as_const(dstorage)})>); - static_assert(std::is_same_v, const entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::as_const(istorage), std::as_const(dstorage)})>); - static_assert(std::is_same_v, entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{istorage, sstorage})>); + testing::StaticAssertTypeEq, entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{istorage, dstorage})>(); + testing::StaticAssertTypeEq, entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::as_const(istorage), dstorage})>(); + testing::StaticAssertTypeEq, const entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{istorage, std::as_const(dstorage)})>(); + testing::StaticAssertTypeEq, const entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::as_const(istorage), std::as_const(dstorage)})>(); + testing::StaticAssertTypeEq, entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{istorage, sstorage})>(); - static_assert(std::is_same_v, entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(istorage, dstorage), std::make_tuple()})>); - static_assert(std::is_same_v, entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(std::as_const(istorage), dstorage)})>); - static_assert(std::is_same_v, const entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(istorage, std::as_const(dstorage))})>); - static_assert(std::is_same_v, const entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(std::as_const(istorage), std::as_const(dstorage))})>); - static_assert(std::is_same_v, entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(istorage, sstorage)})>); + testing::StaticAssertTypeEq, entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(istorage, dstorage), std::make_tuple()})>(); + testing::StaticAssertTypeEq, entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(std::as_const(istorage), dstorage)})>(); + testing::StaticAssertTypeEq, const entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(istorage, std::as_const(dstorage))})>(); + testing::StaticAssertTypeEq, const entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(std::as_const(istorage), std::as_const(dstorage))})>(); + testing::StaticAssertTypeEq, entt::storage_type_t>, entt::exclude_t<>>, decltype(entt::basic_view{std::forward_as_tuple(istorage, sstorage)})>(); - static_assert(std::is_same_v>, entt::exclude_t>>, decltype(entt::basic_view{std::forward_as_tuple(istorage), std::forward_as_tuple(dstorage)})>); - static_assert(std::is_same_v>, entt::exclude_t>>, decltype(entt::basic_view{std::forward_as_tuple(std::as_const(istorage)), std::forward_as_tuple(dstorage)})>); - static_assert(std::is_same_v>, entt::exclude_t>>, decltype(entt::basic_view{std::forward_as_tuple(istorage), std::forward_as_tuple(std::as_const(dstorage))})>); - static_assert(std::is_same_v>, entt::exclude_t>>, decltype(entt::basic_view{std::forward_as_tuple(std::as_const(istorage)), std::forward_as_tuple(std::as_const(dstorage))})>); - static_assert(std::is_same_v>, entt::exclude_t>>, decltype(entt::basic_view{std::forward_as_tuple(istorage), std::forward_as_tuple(sstorage)})>); + testing::StaticAssertTypeEq>, entt::exclude_t>>, decltype(entt::basic_view{std::forward_as_tuple(istorage), std::forward_as_tuple(dstorage)})>(); + testing::StaticAssertTypeEq>, entt::exclude_t>>, decltype(entt::basic_view{std::forward_as_tuple(std::as_const(istorage)), std::forward_as_tuple(dstorage)})>(); + testing::StaticAssertTypeEq>, entt::exclude_t>>, decltype(entt::basic_view{std::forward_as_tuple(istorage), std::forward_as_tuple(std::as_const(dstorage))})>(); + testing::StaticAssertTypeEq>, entt::exclude_t>>, decltype(entt::basic_view{std::forward_as_tuple(std::as_const(istorage)), std::forward_as_tuple(std::as_const(dstorage))})>(); + testing::StaticAssertTypeEq>, entt::exclude_t>>, decltype(entt::basic_view{std::forward_as_tuple(istorage), std::forward_as_tuple(sstorage)})>(); } TEST(MultiComponentView, IterableViewAlgorithmCompatibility) { @@ -1331,9 +1332,9 @@ TEST(MultiComponentView, StableType) { }); for(auto [entt, iv, st]: view.each()) { - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); + testing::StaticAssertTypeEq(); ASSERT_EQ(other, entt); } @@ -1433,18 +1434,18 @@ TEST(MultiComponentView, Storage) { const auto entity = registry.create(); auto view = registry.view(entt::exclude); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); - static_assert(std::is_same_v()), const entt::storage_type_t *>); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); + testing::StaticAssertTypeEq()), const entt::storage_type_t *>(); ASSERT_TRUE(view); @@ -1643,9 +1644,9 @@ TEST(View, Pipe) { auto view3 = registry.view(); auto view4 = registry.view(); - static_assert(std::is_same_v, const entt::storage_type_t>, entt::exclude_t, entt::storage_type_t>>, decltype(view1 | view2)>); - static_assert(std::is_same_v, entt::storage_type_t>, entt::exclude_t, const entt::storage_type_t>>, decltype(view2 | view1)>); - static_assert(std::is_same_v); + testing::StaticAssertTypeEq, const entt::storage_type_t>, entt::exclude_t, entt::storage_type_t>>, decltype(view1 | view2)>(); + testing::StaticAssertTypeEq, entt::storage_type_t>, entt::exclude_t, const entt::storage_type_t>>, decltype(view2 | view1)>(); + testing::StaticAssertTypeEq(); ASSERT_FALSE((view1 | view2).contains(entity)); ASSERT_TRUE((view1 | view2).contains(other)); diff --git a/test/example/signal_less.cpp b/test/example/signal_less.cpp index 9a4d3d35e..725e5a0ed 100644 --- a/test/example/signal_less.cpp +++ b/test/example/signal_less.cpp @@ -28,8 +28,8 @@ inline constexpr auto has_on_construct_v = has_on_construct::value TEST(Example, SignalLess) { // invoking registry::on_construct is a compile-time error - static_assert(!has_on_construct_v); - static_assert(has_on_construct_v); + ASSERT_FALSE((has_on_construct_v)); + ASSERT_TRUE((has_on_construct_v)); entt::registry registry; const entt::entity entity[1u]{registry.create()};