sparse_set: better return value for range ::push

This commit is contained in:
Michele Caini
2024-03-06 08:49:26 +01:00
parent ef61d4c3d0
commit ebc6f64af0
3 changed files with 18 additions and 6 deletions

View File

@@ -812,7 +812,7 @@ public:
try_emplace(*it, true);
}
return first == last ? end() : find(*first);
return first == last ? end() : begin(0);
}
/**

View File

@@ -1044,8 +1044,12 @@ TYPED_TEST(SparseSet, Push) {
set.erase(entity.begin(), entity.end());
ASSERT_EQ(set.size(), 0u);
ASSERT_EQ(*set.push(entity.begin(), entity.end()), entity[0u]);
auto it = set.push(entity.begin(), entity.end());
ASSERT_EQ(set.size(), 2u);
ASSERT_EQ(*it, entity[1u]);
ASSERT_EQ(*(++it), entity[0u]);
ASSERT_EQ(set.index(entity[0u]), 0u);
ASSERT_EQ(set.index(entity[1u]), 1u);
@@ -1078,8 +1082,12 @@ TYPED_TEST(SparseSet, Push) {
set.erase(entity.begin(), entity.end());
ASSERT_EQ(set.size(), 2u);
ASSERT_EQ(*set.push(entity.begin(), entity.end()), entity[0u]);
auto it = set.push(entity.begin(), entity.end());
ASSERT_EQ(set.size(), 4u);
ASSERT_EQ(*it, entity[1u]);
ASSERT_EQ(*(++it), entity[0u]);
ASSERT_EQ(set.index(entity[0u]), 2u);
ASSERT_EQ(set.index(entity[1u]), 3u);
@@ -1118,9 +1126,13 @@ TYPED_TEST(SparseSet, Push) {
ASSERT_EQ(set.size(), 2u);
ASSERT_EQ(set.free_list(), 0u);
ASSERT_EQ(*set.push(entity.begin(), entity.end()), entity[0u]);
auto it = set.push(entity.begin(), entity.end());
ASSERT_EQ(set.free_list(), 2u);
ASSERT_EQ(set.size(), 2u);
ASSERT_EQ(*it, entity[1u]);
ASSERT_EQ(*(++it), entity[0u]);
ASSERT_EQ(set.index(entity[0u]), 0u);
ASSERT_EQ(set.index(entity[1u]), 1u);

View File

@@ -246,8 +246,8 @@ TEST(StorageEntity, TryEmplaceInUse) {
auto it = pool.push(entity.begin(), entity.end());
ASSERT_EQ(*it, entt::entity{0});
ASSERT_EQ(*(--it), entt::entity{2});
ASSERT_EQ(*it, entt::entity{2});
ASSERT_EQ(*(++it), entt::entity{0});
}
TEST(StorageEntity, Patch) {