diff --git a/test/entt/entity/registry.cpp b/test/entt/entity/registry.cpp index db48e5b91..69de9df40 100644 --- a/test/entt/entity/registry.cpp +++ b/test/entt/entity/registry.cpp @@ -950,10 +950,12 @@ TEST(Registry, Orphans) { TEST(Registry, View) { entt::registry registry; + entt::entity entities[3u]; + auto mview = registry.view(); auto iview = registry.view(); auto cview = registry.view(); - entt::entity entities[3u]; + auto fview = registry.view(entt::exclude); registry.create(std::begin(entities), std::end(entities)); @@ -968,10 +970,20 @@ TEST(Registry, View) { ASSERT_EQ(iview.size(), 3u); ASSERT_EQ(cview.size(), 2u); - std::size_t cnt{}; - mview.each([&cnt](auto...) { ++cnt; }); + ASSERT_NE(mview.begin(), mview.end()); + ASSERT_NE(fview.begin(), fview.end()); - ASSERT_EQ(cnt, 2u); + ASSERT_EQ(std::distance(mview.begin(), mview.end()), 2); + ASSERT_EQ(std::distance(fview.begin(), fview.end()), 1); + + mview.each([&entities, first = true](auto entity, auto &&...) mutable { + ASSERT_EQ(entity, entities[2u * first]); + first = false; + }); + + fview.each([&entities](auto entity, auto &&...) { + ASSERT_EQ(entity, entities[1u]); + }); } TEST(Registry, NonOwningGroupInitOnFirstUse) {