|
|
@@ -36,8 +36,11 @@ TEST(DefaultRegistry, Functionalities) {
|
|
|
ASSERT_TRUE(registry.empty<int>());
|
|
|
ASSERT_TRUE(registry.empty<char>());
|
|
|
|
|
|
- auto e0 = registry.create();
|
|
|
- auto e1 = registry.create<int, char>();
|
|
|
+ const auto e0 = registry.create();
|
|
|
+ const auto e1 = registry.create();
|
|
|
+
|
|
|
+ registry.assign<int>(e1);
|
|
|
+ registry.assign<char>(e1);
|
|
|
|
|
|
ASSERT_TRUE(registry.has<>(e0));
|
|
|
ASSERT_TRUE(registry.has<>(e1));
|
|
|
@@ -69,7 +72,7 @@ TEST(DefaultRegistry, Functionalities) {
|
|
|
ASSERT_TRUE((registry.has<int, char>(e0)));
|
|
|
ASSERT_FALSE((registry.has<int, char>(e1)));
|
|
|
|
|
|
- auto e2 = registry.create();
|
|
|
+ const auto e2 = registry.create();
|
|
|
|
|
|
registry.accommodate<int>(e2, registry.get<int>(e0));
|
|
|
registry.accommodate<char>(e2, registry.get<char>(e0));
|
|
|
@@ -121,7 +124,10 @@ TEST(DefaultRegistry, Functionalities) {
|
|
|
ASSERT_EQ(registry.size(), entt::DefaultRegistry::size_type{0});
|
|
|
ASSERT_TRUE(registry.empty());
|
|
|
|
|
|
- registry.create<int, char>();
|
|
|
+ const auto e3 = registry.create();
|
|
|
+
|
|
|
+ registry.assign<int>(e3);
|
|
|
+ registry.assign<char>(e3);
|
|
|
|
|
|
ASSERT_EQ(registry.size<int>(), entt::DefaultRegistry::size_type{1});
|
|
|
ASSERT_EQ(registry.size<char>(), entt::DefaultRegistry::size_type{1});
|
|
|
@@ -142,11 +148,13 @@ TEST(DefaultRegistry, Functionalities) {
|
|
|
ASSERT_TRUE(registry.empty<int>());
|
|
|
ASSERT_TRUE(registry.empty<char>());
|
|
|
|
|
|
- e0 = registry.create<int>();
|
|
|
- e1 = registry.create();
|
|
|
+ const auto e4 = registry.create();
|
|
|
+ const auto e5 = registry.create();
|
|
|
|
|
|
- ASSERT_NO_THROW(registry.reset<int>(e0));
|
|
|
- ASSERT_NO_THROW(registry.reset<int>(e1));
|
|
|
+ registry.assign<int>(e4);
|
|
|
+
|
|
|
+ ASSERT_NO_THROW(registry.reset<int>(e4));
|
|
|
+ ASSERT_NO_THROW(registry.reset<int>(e5));
|
|
|
|
|
|
ASSERT_EQ(registry.size<int>(), entt::DefaultRegistry::size_type{0});
|
|
|
ASSERT_EQ(registry.size<char>(), entt::DefaultRegistry::size_type{0});
|
|
|
@@ -156,8 +164,8 @@ TEST(DefaultRegistry, Functionalities) {
|
|
|
TEST(DefaultRegistry, CreateDestroyCornerCase) {
|
|
|
entt::DefaultRegistry registry;
|
|
|
|
|
|
- auto e0 = registry.create();
|
|
|
- auto e1 = registry.create();
|
|
|
+ const auto e0 = registry.create();
|
|
|
+ const auto e1 = registry.create();
|
|
|
|
|
|
registry.destroy(e0);
|
|
|
registry.destroy(e1);
|
|
|
@@ -171,7 +179,7 @@ TEST(DefaultRegistry, CreateDestroyCornerCase) {
|
|
|
TEST(DefaultRegistry, VersionOverflow) {
|
|
|
entt::DefaultRegistry registry;
|
|
|
|
|
|
- auto entity = registry.create();
|
|
|
+ const auto entity = registry.create();
|
|
|
registry.destroy(entity);
|
|
|
|
|
|
ASSERT_EQ(registry.version(entity), entt::DefaultRegistry::version_type{});
|
|
|
@@ -190,9 +198,9 @@ TEST(DefaultRegistry, Each) {
|
|
|
entt::DefaultRegistry::size_type match;
|
|
|
|
|
|
registry.create();
|
|
|
- registry.create<int>();
|
|
|
+ registry.assign<int>(registry.create());
|
|
|
registry.create();
|
|
|
- registry.create<int>();
|
|
|
+ registry.assign<int>(registry.create());
|
|
|
registry.create();
|
|
|
|
|
|
tot = 0u;
|
|
|
@@ -241,9 +249,9 @@ TEST(DefaultRegistry, Orphans) {
|
|
|
entt::DefaultRegistry registry;
|
|
|
entt::DefaultRegistry::size_type tot{};
|
|
|
|
|
|
- registry.create<int>();
|
|
|
+ registry.assign<int>(registry.create());
|
|
|
registry.create();
|
|
|
- registry.create<int>();
|
|
|
+ registry.assign<int>(registry.create());
|
|
|
registry.create();
|
|
|
registry.attach<double>(registry.create());
|
|
|
|
|
|
@@ -276,20 +284,22 @@ TEST(DefaultRegistry, CreateDestroyEntities) {
|
|
|
entt::DefaultRegistry::entity_type pre{}, post{};
|
|
|
|
|
|
for(int i = 0; i < 10; ++i) {
|
|
|
- registry.create<double>();
|
|
|
+ const auto entity = registry.create();
|
|
|
+ registry.assign<double>(entity);
|
|
|
}
|
|
|
|
|
|
registry.reset();
|
|
|
|
|
|
for(int i = 0; i < 7; ++i) {
|
|
|
- auto entity = registry.create<int>();
|
|
|
+ const auto entity = registry.create();
|
|
|
+ registry.assign<int>(entity);
|
|
|
if(i == 3) { pre = entity; }
|
|
|
}
|
|
|
|
|
|
registry.reset();
|
|
|
|
|
|
for(int i = 0; i < 5; ++i) {
|
|
|
- auto entity = registry.create();
|
|
|
+ const auto entity = registry.create();
|
|
|
if(i == 3) { post = entity; }
|
|
|
}
|
|
|
|
|
|
@@ -306,7 +316,7 @@ TEST(DefaultRegistry, AttachSetRemoveTags) {
|
|
|
|
|
|
ASSERT_FALSE(registry.has<int>());
|
|
|
|
|
|
- auto entity = registry.create();
|
|
|
+ const auto entity = registry.create();
|
|
|
registry.attach<int>(entity, 42);
|
|
|
|
|
|
ASSERT_TRUE(registry.has<int>());
|
|
|
@@ -321,7 +331,7 @@ TEST(DefaultRegistry, AttachSetRemoveTags) {
|
|
|
ASSERT_EQ(cregistry.get<int>(), 3);
|
|
|
ASSERT_EQ(registry.attachee<int>(), entity);
|
|
|
|
|
|
- auto other = registry.create();
|
|
|
+ const auto other = registry.create();
|
|
|
registry.move<int>(other);
|
|
|
|
|
|
ASSERT_TRUE(registry.has<int>());
|
|
|
@@ -345,9 +355,16 @@ TEST(DefaultRegistry, StandardViews) {
|
|
|
auto iview = registry.view<int>();
|
|
|
auto cview = registry.view<char>();
|
|
|
|
|
|
- registry.create(0, 'c');
|
|
|
- registry.create(0);
|
|
|
- registry.create(0, 'c');
|
|
|
+ const auto e0 = registry.create();
|
|
|
+ registry.assign<int>(e0, 0);
|
|
|
+ registry.assign<char>(e0, 'c');
|
|
|
+
|
|
|
+ const auto e1 = registry.create();
|
|
|
+ registry.assign<int>(e1, 0);
|
|
|
+
|
|
|
+ const auto e2 = registry.create();
|
|
|
+ registry.assign<int>(e2, 0);
|
|
|
+ registry.assign<char>(e2, 'c');
|
|
|
|
|
|
ASSERT_EQ(iview.size(), decltype(iview)::size_type{3});
|
|
|
ASSERT_EQ(cview.size(), decltype(cview)::size_type{2});
|
|
|
@@ -373,9 +390,16 @@ TEST(DefaultRegistry, PersistentViews) {
|
|
|
|
|
|
ASSERT_FALSE((registry.contains<int, double>()));
|
|
|
|
|
|
- registry.create(0, 'c');
|
|
|
- registry.create(0);
|
|
|
- registry.create(0, 'c');
|
|
|
+ const auto e0 = registry.create();
|
|
|
+ registry.assign<int>(e0, 0);
|
|
|
+ registry.assign<char>(e0, 'c');
|
|
|
+
|
|
|
+ const auto e1 = registry.create();
|
|
|
+ registry.assign<int>(e1, 0);
|
|
|
+
|
|
|
+ const auto e2 = registry.create();
|
|
|
+ registry.assign<int>(e2, 0);
|
|
|
+ registry.assign<char>(e2, 'c');
|
|
|
|
|
|
decltype(view)::size_type cnt{0};
|
|
|
view.each([&cnt](auto...) { ++cnt; });
|
|
|
@@ -386,7 +410,7 @@ TEST(DefaultRegistry, PersistentViews) {
|
|
|
TEST(DefaultRegistry, CleanStandardViewsAfterReset) {
|
|
|
entt::DefaultRegistry registry;
|
|
|
auto view = registry.view<int>();
|
|
|
- registry.create(0);
|
|
|
+ registry.assign<int>(registry.create(), 0);
|
|
|
|
|
|
ASSERT_EQ(view.size(), entt::DefaultRegistry::size_type{1});
|
|
|
|
|
|
@@ -398,7 +422,10 @@ TEST(DefaultRegistry, CleanStandardViewsAfterReset) {
|
|
|
TEST(DefaultRegistry, CleanPersistentViewsAfterReset) {
|
|
|
entt::DefaultRegistry registry;
|
|
|
auto view = registry.persistent<int, char>();
|
|
|
- registry.create(0, 'c');
|
|
|
+
|
|
|
+ const auto entity = registry.create();
|
|
|
+ registry.assign<int>(entity, 0);
|
|
|
+ registry.assign<char>(entity, 'c');
|
|
|
|
|
|
ASSERT_EQ(view.size(), entt::DefaultRegistry::size_type{1});
|
|
|
|
|
|
@@ -409,7 +436,7 @@ TEST(DefaultRegistry, CleanPersistentViewsAfterReset) {
|
|
|
|
|
|
TEST(DefaultRegistry, CleanTagsAfterReset) {
|
|
|
entt::DefaultRegistry registry;
|
|
|
- auto entity = registry.create();
|
|
|
+ const auto entity = registry.create();
|
|
|
registry.attach<int>(entity);
|
|
|
|
|
|
ASSERT_TRUE(registry.has<int>());
|
|
|
@@ -424,9 +451,9 @@ TEST(DefaultRegistry, SortSingle) {
|
|
|
|
|
|
int val = 0;
|
|
|
|
|
|
- registry.create(val++);
|
|
|
- registry.create(val++);
|
|
|
- registry.create(val++);
|
|
|
+ registry.assign<int>(registry.create(), val++);
|
|
|
+ registry.assign<int>(registry.create(), val++);
|
|
|
+ registry.assign<int>(registry.create(), val++);
|
|
|
|
|
|
for(auto entity: registry.view<int>()) {
|
|
|
ASSERT_EQ(registry.get<int>(entity), --val);
|
|
|
@@ -445,9 +472,11 @@ TEST(DefaultRegistry, SortMulti) {
|
|
|
unsigned int uval = 0u;
|
|
|
int ival = 0;
|
|
|
|
|
|
- registry.create(uval++, ival++);
|
|
|
- registry.create(uval++, ival++);
|
|
|
- registry.create(uval++, ival++);
|
|
|
+ for(auto i = 0; i < 3; ++i) {
|
|
|
+ const auto entity = registry.create();
|
|
|
+ registry.assign<unsigned int>(entity, uval++);
|
|
|
+ registry.assign<int>(entity, ival++);
|
|
|
+ }
|
|
|
|
|
|
for(auto entity: registry.view<unsigned int>()) {
|
|
|
ASSERT_EQ(registry.get<unsigned int>(entity), --uval);
|
|
|
@@ -472,7 +501,7 @@ TEST(DefaultRegistry, SortMulti) {
|
|
|
TEST(DefaultRegistry, ComponentsWithTypesFromStandardTemplateLibrary) {
|
|
|
// see #37 - the test shouldn't crash, that's all
|
|
|
entt::DefaultRegistry registry;
|
|
|
- auto entity = registry.create();
|
|
|
+ const auto entity = registry.create();
|
|
|
registry.assign<std::unordered_set<int>>(entity).insert(42);
|
|
|
registry.destroy(entity);
|
|
|
}
|
|
|
@@ -481,7 +510,7 @@ TEST(DefaultRegistry, ConstructWithComponents) {
|
|
|
// it should compile, that's all
|
|
|
entt::DefaultRegistry registry;
|
|
|
const auto value = 0;
|
|
|
- registry.create(value);
|
|
|
+ registry.assign<int>(registry.create(), value);
|
|
|
}
|
|
|
|
|
|
TEST(DefaultRegistry, MergeTwoRegistries) {
|
|
|
@@ -495,7 +524,9 @@ TEST(DefaultRegistry, MergeTwoRegistries) {
|
|
|
auto merge = [&ref](const auto &view, auto &dst) {
|
|
|
view.each([&](auto entity, const auto &component) {
|
|
|
if(ref.find(entity) == ref.cend()) {
|
|
|
- ref.emplace(entity, dst.create(component));
|
|
|
+ const auto other = dst.create();
|
|
|
+ dst.template assign<std::decay_t<decltype(component)>>(other, component);
|
|
|
+ ref.emplace(entity, other);
|
|
|
} else {
|
|
|
using component_type = std::decay_t<decltype(component)>;
|
|
|
dst.template assign<component_type>(ref[entity], component);
|
|
|
@@ -503,11 +534,24 @@ TEST(DefaultRegistry, MergeTwoRegistries) {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- src.create<int, float, double>();
|
|
|
- src.create<char, float, int>();
|
|
|
+ auto e0 = src.create();
|
|
|
+ src.assign<int>(e0);
|
|
|
+ src.assign<float>(e0);
|
|
|
+ src.assign<double>(e0);
|
|
|
+
|
|
|
+ auto e1 = src.create();
|
|
|
+ src.assign<char>(e1);
|
|
|
+ src.assign<float>(e1);
|
|
|
+ src.assign<int>(e1);
|
|
|
+
|
|
|
+ auto e2 = dst.create();
|
|
|
+ dst.assign<int>(e2);
|
|
|
+ dst.assign<char>(e2);
|
|
|
+ dst.assign<double>(e2);
|
|
|
|
|
|
- dst.create<int, char, double>();
|
|
|
- dst.create<float, int>();
|
|
|
+ auto e3 = dst.create();
|
|
|
+ dst.assign<float>(e3);
|
|
|
+ dst.assign<int>(e3);
|
|
|
|
|
|
auto eq = [](auto begin, auto end) { ASSERT_EQ(begin, end); };
|
|
|
auto ne = [](auto begin, auto end) { ASSERT_NE(begin, end); };
|