Bläddra i källkod

test: increase code coverage

Michele Caini 4 år sedan
förälder
incheckning
f7d67067ad
2 ändrade filer med 17 tillägg och 5 borttagningar
  1. 4 0
      test/entt/entity/sparse_set.cpp
  2. 13 5
      test/entt/entity/storage.cpp

+ 4 - 0
test/entt/entity/sparse_set.cpp

@@ -123,6 +123,9 @@ TEST(SparseSet, Current) {
 
     entt::sparse_set set{entt::deletion_policy::in_place};
 
+    ASSERT_EQ(set.current(traits_type::construct(0, 0)), traits_type::to_version(entt::tombstone));
+    ASSERT_EQ(set.current(traits_type::construct(3, 3)), traits_type::to_version(entt::tombstone));
+
     set.emplace(traits_type::construct(0, 0));
     set.emplace(traits_type::construct(3, 3));
 
@@ -130,6 +133,7 @@ TEST(SparseSet, Current) {
     ASSERT_NE(set.current(traits_type::construct(3, 3)), traits_type::to_version(entt::tombstone));
     ASSERT_EQ(set.current(traits_type::construct(3, 0)), traits_type::to_version(traits_type::construct(3, 3)));
     ASSERT_EQ(set.current(traits_type::construct(42, 1)), traits_type::to_version(entt::tombstone));
+    ASSERT_EQ(set.current(traits_type::construct(ENTT_SPARSE_PAGE, 1)), traits_type::to_version(entt::tombstone));
 
     set.remove(entt::entity{0});
 

+ 13 - 5
test/entt/entity/storage.cpp

@@ -53,6 +53,11 @@ struct entt::component_traits<stable_type>: basic_component_traits {
     using in_place_delete = std::true_type;
 };
 
+template<>
+struct entt::component_traits<empty_type>: basic_component_traits {
+    using in_place_delete = std::true_type;
+};
+
 bool operator==(const boxed_int &lhs, const boxed_int &rhs) {
     return lhs.value == rhs.value;
 }
@@ -259,10 +264,10 @@ TEST(Storage, InsertEmptyType) {
     pool.insert(std::rbegin(entities), std::rend(entities), std::begin(values));
 
     ASSERT_EQ(pool.size(), 2u);
-    ASSERT_EQ(pool.at(0u), entities[1u]);
-    ASSERT_EQ(pool.at(1u), entities[0u]);
-    ASSERT_EQ(pool.index(entities[0u]), 1u);
-    ASSERT_EQ(pool.index(entities[1u]), 0u);
+    ASSERT_EQ(pool.at(0u), entities[0u]);
+    ASSERT_EQ(pool.at(1u), entities[1u]);
+    ASSERT_EQ(pool.index(entities[0u]), 0u);
+    ASSERT_EQ(pool.index(entities[1u]), 1u);
 }
 
 TEST(Storage, Erase) {
@@ -594,7 +599,10 @@ TEST(Storage, EmptyTypeFromBase) {
 
     base.erase(std::begin(entities), std::end(entities));
 
-    ASSERT_TRUE(pool.empty());
+    ASSERT_FALSE(pool.empty());
+    ASSERT_EQ(pool.size(), 2u);
+    ASSERT_TRUE(*base.begin() == entt::tombstone);
+    ASSERT_TRUE(*(++base.begin()) == entt::tombstone);
 }
 
 TEST(Storage, NonDefaultConstructibleTypeFromBase) {