diff --git a/test/entt/entity/view.cpp b/test/entt/entity/view.cpp index 2e7115df1..ed148ea02 100644 --- a/test/entt/entity/view.cpp +++ b/test/entt/entity/view.cpp @@ -1233,42 +1233,6 @@ TEST(MultiComponentView, SameComponentTypes) { ASSERT_EQ(&view.use<1u>().handle(), &other); } -TEST(View, Pipe) { - entt::registry registry; - const auto entity = registry.create(); - const auto other = registry.create(); - - registry.emplace(entity); - registry.emplace(entity); - registry.emplace(entity); - registry.emplace(entity); - - registry.emplace(other); - registry.emplace(other); - registry.emplace(other); - - const auto view1 = registry.view(entt::exclude); - const auto view2 = registry.view(entt::exclude); - const auto view3 = registry.view(); - const 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); - - ASSERT_FALSE((view1 | view2).contains(entity)); - ASSERT_TRUE((view1 | view2).contains(other)); - - ASSERT_TRUE((view3 | view2).contains(entity)); - ASSERT_FALSE((view3 | view2).contains(other)); - - ASSERT_FALSE((view1 | view2 | view3).contains(entity)); - ASSERT_FALSE((view1 | view2 | view3).contains(other)); - - ASSERT_FALSE((view1 | view4 | view2).contains(entity)); - ASSERT_TRUE((view1 | view4 | view2).contains(other)); -} - TEST(MultiComponentView, Storage) { entt::registry registry; const auto entity = registry.create(); @@ -1325,3 +1289,39 @@ TEST(MultiComponentView, Storage) { ASSERT_TRUE((registry.all_of(entity))); ASSERT_FALSE((registry.any_of(entity))); } + +TEST(View, Pipe) { + entt::registry registry; + const auto entity = registry.create(); + const auto other = registry.create(); + + registry.emplace(entity); + registry.emplace(entity); + registry.emplace(entity); + registry.emplace(entity); + + registry.emplace(other); + registry.emplace(other); + registry.emplace(other); + + const auto view1 = registry.view(entt::exclude); + const auto view2 = registry.view(entt::exclude); + const auto view3 = registry.view(); + const 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); + + ASSERT_FALSE((view1 | view2).contains(entity)); + ASSERT_TRUE((view1 | view2).contains(other)); + + ASSERT_TRUE((view3 | view2).contains(entity)); + ASSERT_FALSE((view3 | view2).contains(other)); + + ASSERT_FALSE((view1 | view2 | view3).contains(entity)); + ASSERT_FALSE((view1 | view2 | view3).contains(other)); + + ASSERT_FALSE((view1 | view4 | view2).contains(entity)); + ASSERT_TRUE((view1 | view4 | view2).contains(other)); +}