test: more about storage no instance

This commit is contained in:
Michele Caini
2023-10-23 08:54:31 +02:00
parent 382be6c4e1
commit c201a44f1a

View File

@@ -400,6 +400,34 @@ TYPED_TEST(StorageNoInstance, ConstIterable) {
}
}
TYPED_TEST(StorageNoInstance, IterableIteratorConversion) {
using value_type = typename TestFixture::type;
entt::storage<value_type> pool;
pool.emplace(entt::entity{3});
typename entt::storage<value_type>::iterable::iterator it = pool.each().begin();
typename entt::storage<value_type>::const_iterable::iterator cit = it;
testing::StaticAssertTypeEq<decltype(*it), std::tuple<entt::entity>>();
testing::StaticAssertTypeEq<decltype(*cit), std::tuple<entt::entity>>();
ASSERT_EQ(it, cit);
ASSERT_NE(++cit, it);
}
TYPED_TEST(StorageNoInstance, IterableAlgorithmCompatibility) {
using value_type = typename TestFixture::type;
entt::storage<value_type> pool;
pool.emplace(entt::entity{3});
const auto iterable = pool.each();
const auto it = std::find_if(iterable.begin(), iterable.end(), [](auto args) { return std::get<0>(args) == entt::entity{3}; });
ASSERT_EQ(std::get<0>(*it), entt::entity{3});
}
TYPED_TEST(StorageNoInstance, ReverseIterable) {
using value_type = typename TestFixture::type;
using iterator = typename entt::storage<value_type>::reverse_iterable::iterator;
@@ -488,14 +516,14 @@ TYPED_TEST(StorageNoInstance, ConstReverseIterable) {
}
}
TYPED_TEST(StorageNoInstance, IterableIteratorConversion) {
TYPED_TEST(StorageNoInstance, ReverseIterableIteratorConversion) {
using value_type = typename TestFixture::type;
entt::storage<value_type> pool;
pool.emplace(entt::entity{3});
typename entt::storage<value_type>::iterable::iterator it = pool.each().begin();
typename entt::storage<value_type>::const_iterable::iterator cit = it;
typename entt::storage<value_type>::reverse_iterable::iterator it = pool.reach().begin();
typename entt::storage<value_type>::const_reverse_iterable::iterator cit = it;
testing::StaticAssertTypeEq<decltype(*it), std::tuple<entt::entity>>();
testing::StaticAssertTypeEq<decltype(*cit), std::tuple<entt::entity>>();
@@ -503,3 +531,15 @@ TYPED_TEST(StorageNoInstance, IterableIteratorConversion) {
ASSERT_EQ(it, cit);
ASSERT_NE(++cit, it);
}
TYPED_TEST(StorageNoInstance, ReverseIterableAlgorithmCompatibility) {
using value_type = typename TestFixture::type;
entt::storage<value_type> pool;
pool.emplace(entt::entity{3});
const auto iterable = pool.reach();
const auto it = std::find_if(iterable.begin(), iterable.end(), [](auto args) { return std::get<0>(args) == entt::entity{3}; });
ASSERT_EQ(std::get<0>(*it), entt::entity{3});
}