Explorar o código

test: code coverage for range functionalities

Michele Caini %!s(int64=3) %!d(string=hai) anos
pai
achega
82863f8291
Modificáronse 1 ficheiros con 43 adicións e 2 borrados
  1. 43 2
      test/entt/entity/registry.cpp

+ 43 - 2
test/entt/entity/registry.cpp

@@ -666,7 +666,7 @@ ENTT_DEBUG_TEST(RegistryDeathTest, DestroyVersion) {
     ASSERT_DEATH(registry.destroy(entity, 3), "");
 }
 
-TEST(Registry, RangeDestroy) {
+TEST(Registry, DestroyRange) {
     entt::registry registry;
     const auto iview = registry.view<int>();
     const auto icview = registry.view<int, char>();
@@ -722,6 +722,24 @@ TEST(Registry, RangeDestroy) {
     ASSERT_FALSE(registry.valid(entities[1u]));
     ASSERT_FALSE(registry.valid(entities[2u]));
     ASSERT_EQ(registry.storage<int>().size(), 0u);
+
+    entt::sparse_set managed{};
+
+    registry.create(std::begin(entities), std::end(entities));
+    managed.push(std::begin(entities), std::end(entities));
+    registry.insert<int>(managed.begin(), managed.end());
+
+    ASSERT_TRUE(registry.valid(managed[0u]));
+    ASSERT_TRUE(registry.valid(managed[1u]));
+    ASSERT_TRUE(registry.valid(managed[2u]));
+    ASSERT_EQ(registry.storage<int>().size(), 3u);
+
+    registry.destroy(managed.begin(), managed.end());
+
+    ASSERT_FALSE(registry.valid(managed[0u]));
+    ASSERT_FALSE(registry.valid(managed[1u]));
+    ASSERT_FALSE(registry.valid(managed[2u]));
+    ASSERT_EQ(registry.storage<int>().size(), 0u);
 }
 
 TEST(Registry, StableDestroy) {
@@ -792,7 +810,7 @@ ENTT_DEBUG_TEST(RegistryDeathTest, ReleaseVersion) {
     ASSERT_DEATH(registry.release(entity, 3), "");
 }
 
-TEST(Registry, RangeRelease) {
+TEST(Registry, ReleaseRange) {
     entt::registry registry;
     entt::entity entities[3u];
 
@@ -1576,6 +1594,17 @@ TEST(Registry, Erase) {
     ASSERT_EQ(registry.storage<char>().size(), 0u);
     ASSERT_EQ(registry.storage<double>().size(), 1u);
 
+    registry.insert<int>(std::begin(entities) + 1, std::end(entities) - 1u);
+    registry.insert<char>(std::begin(entities) + 1, std::end(entities) - 1u);
+
+    ASSERT_EQ(registry.storage<int>().size(), 1u);
+    ASSERT_EQ(registry.storage<char>().size(), 1u);
+
+    registry.erase<int, char>(iview.begin(), iview.end());
+
+    ASSERT_EQ(registry.storage<int>().size(), 0u);
+    ASSERT_EQ(registry.storage<char>().size(), 0u);
+
     registry.insert<int>(std::begin(entities), std::end(entities));
     registry.insert<char>(std::begin(entities), std::end(entities));
 
@@ -1689,6 +1718,18 @@ TEST(Registry, Remove) {
     ASSERT_EQ(registry.storage<char>().size(), 0u);
     ASSERT_EQ(registry.storage<double>().size(), 1u);
 
+    registry.insert<int>(std::begin(entities) + 1, std::end(entities) - 1u);
+    registry.insert<char>(std::begin(entities) + 1, std::end(entities) - 1u);
+
+    ASSERT_EQ(registry.storage<int>().size(), 1u);
+    ASSERT_EQ(registry.storage<char>().size(), 1u);
+
+    registry.remove<int, char>(iview.begin(), iview.end());
+    registry.remove<int, char>(iview.begin(), iview.end());
+
+    ASSERT_EQ(registry.storage<int>().size(), 0u);
+    ASSERT_EQ(registry.storage<char>().size(), 0u);
+
     registry.insert<int>(std::begin(entities), std::end(entities));
     registry.insert<char>(std::begin(entities), std::end(entities));