test: view ::use and ::refresh

This commit is contained in:
Michele Caini
2023-07-11 18:08:25 +02:00
parent a12b99ad49
commit 1df40ada5c

View File

@@ -851,6 +851,36 @@ TEST(MultiComponentView, SizeHint) {
ASSERT_EQ(view.begin(), view.end());
}
TEST(MultiComponentView, UseAndRefresh) {
entt::registry registry;
entt::entity entity[3]{registry.create(), registry.create(), registry.create()};
registry.emplace<int>(entity[0u]);
registry.emplace<int>(entity[1u]);
registry.emplace<char>(entity[1u]);
registry.emplace<char>(entity[0u]);
registry.emplace<char>(entity[2u]);
auto view = registry.view<int, char>(entt::exclude<double>);
view.use<int>();
ASSERT_EQ(view.handle()->type(), entt::type_id<int>());
ASSERT_EQ(view.front(), entity[1u]);
ASSERT_EQ(view.back(), entity[0u]);
view.use<char>();
ASSERT_EQ(view.handle()->type(), entt::type_id<char>());
ASSERT_EQ(view.front(), entity[0u]);
ASSERT_EQ(view.back(), entity[1u]);
view.refresh();
ASSERT_EQ(view.handle()->type(), entt::type_id<int>());
}
TEST(MultiComponentView, Each) {
entt::registry registry;
entt::entity entity[2]{registry.create(), registry.create()};