view: return the best size for entity storage from size_hint
This commit is contained in:
@@ -330,7 +330,7 @@ public:
|
||||
* @return Estimated number of entities iterated by the view.
|
||||
*/
|
||||
[[nodiscard]] size_type size_hint() const noexcept {
|
||||
return (index != Get) ? pools[index]->size() : size_type{};
|
||||
return (index != Get) ? offset() : size_type{};
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1873,7 +1873,7 @@ TEST(Registry, ExcludeOnlyView) {
|
||||
|
||||
registry.destroy(entity[3u]);
|
||||
|
||||
ASSERT_EQ(view.size_hint(), 4u);
|
||||
ASSERT_EQ(view.size_hint(), 3u);
|
||||
ASSERT_NE(view.begin(), view.end());
|
||||
|
||||
ASSERT_EQ(std::distance(view.begin(), view.end()), 1);
|
||||
|
||||
@@ -1441,7 +1441,7 @@ TEST(MultiStorageView, StorageEntity) {
|
||||
ASSERT_EQ(view.front(), entity[1u]);
|
||||
ASSERT_EQ(view.back(), entity[1u]);
|
||||
|
||||
ASSERT_EQ(view.size_hint(), 2u);
|
||||
ASSERT_EQ(view.size_hint(), 1u);
|
||||
ASSERT_NE(view.begin(), view.end());
|
||||
|
||||
ASSERT_EQ(std::distance(view.begin(), view.end()), 1);
|
||||
@@ -1478,7 +1478,7 @@ TEST(MultiStorageView, StorageEntityWithExclude) {
|
||||
ASSERT_EQ(view.front(), entity[1u]);
|
||||
ASSERT_EQ(view.back(), entity[1u]);
|
||||
|
||||
ASSERT_EQ(view.size_hint(), 3u);
|
||||
ASSERT_EQ(view.size_hint(), 2u);
|
||||
ASSERT_NE(view.begin(), view.end());
|
||||
|
||||
ASSERT_EQ(std::distance(view.begin(), view.end()), 1);
|
||||
@@ -1510,7 +1510,7 @@ TEST(MultiStorageView, StorageEntityExcludeOnly) {
|
||||
ASSERT_EQ(view.front(), entity[1u]);
|
||||
ASSERT_EQ(view.back(), entity[1u]);
|
||||
|
||||
ASSERT_EQ(view.size_hint(), 3u);
|
||||
ASSERT_EQ(view.size_hint(), 2u);
|
||||
ASSERT_NE(view.begin(), view.end());
|
||||
|
||||
ASSERT_EQ(std::distance(view.begin(), view.end()), 1);
|
||||
|
||||
Reference in New Issue
Block a user