Browse Source

test: more on the runtime view

skypjack 10 months ago
parent
commit
825f73df6b
1 changed files with 28 additions and 2 deletions
  1. 28 2
      test/entt/entity/runtime_view.cpp

+ 28 - 2
test/entt/entity/runtime_view.cpp

@@ -322,7 +322,7 @@ TYPED_TEST(RuntimeView, EachWithHoles) {
     });
 }
 
-TYPED_TEST(RuntimeView, ExcludedComponents) {
+TYPED_TEST(RuntimeView, Exclude) {
     using runtime_view_type = typename TestFixture::type;
 
     std::tuple<entt::storage<int>, entt::storage<char>> storage{};
@@ -383,7 +383,7 @@ TYPED_TEST(RuntimeView, StableType) {
     ASSERT_EQ(view.size_hint(), 1u);
 }
 
-TYPED_TEST(RuntimeView, StableTypeWithExcludedComponent) {
+TYPED_TEST(RuntimeView, StableTypeWithExclude) {
     using runtime_view_type = typename TestFixture::type;
 
     constexpr entt::entity tombstone = entt::tombstone;
@@ -418,3 +418,29 @@ TYPED_TEST(RuntimeView, StableTypeWithExcludedComponent) {
         ASSERT_EQ(entt, entity[1u]);
     });
 }
+
+TYPED_TEST(RuntimeView, SameStorageTypes) {
+    using runtime_view_type = typename TestFixture::type;
+
+    std::tuple<entt::storage<int>, entt::storage<int>> storage{};
+    const std::array entity{entt::entity{1}, entt::entity{3}};
+    runtime_view_type view{};
+
+    std::get<0>(storage).emplace(entity[0u], 2);
+
+    std::get<1>(storage).emplace(entity[0u], 3);
+    std::get<1>(storage).emplace(entity[1u], 1);
+
+    view.iterate(std::get<0>(storage)).iterate(std::get<1>(storage));
+
+    ASSERT_TRUE(view.contains(entity[0u]));
+    ASSERT_FALSE(view.contains(entity[1u]));
+
+    for(auto entt: view) {
+        ASSERT_EQ(entt, entity[0u]);
+    }
+
+    view.each([&](auto entt) {
+        ASSERT_EQ(entt, entity[0u]);
+    });
+}