diff --git a/tests/zecsy.cpp b/tests/zecsy.cpp index 65a4d71..a4e3672 100644 --- a/tests/zecsy.cpp +++ b/tests/zecsy.cpp @@ -473,12 +473,40 @@ TEST_CASE("Archetype signature management") // Initial state: empty archetype REQUIRE(w.archetype_count() == 0); - auto e = w.make_entity(); - REQUIRE(w.archetype_count() == 1); + auto e0 = w.make_entity(); + REQUIRE(w.archetype_count() == 1); //<> // Add first component - w.set(e); - REQUIRE(w.archetype_count() == 1); + w.set(e0); + REQUIRE(w.archetype_count() == 1); // + + w.set(e0); + REQUIRE(w.archetype_count() == 1); // + + w.set(e0); + REQUIRE(w.archetype_count() == 1); // + + w.remove(e0); + REQUIRE(w.archetype_count() == 1); // + + auto e1 = w.make_entity(); + w.set(e1); + REQUIRE(w.archetype_count() == 2); //, + + w.remove(e0); + REQUIRE(w.archetype_count() == 2); //<>, + + w.set(e0); + REQUIRE(w.archetype_count() == 2); //, + + w.set(e0); + REQUIRE(w.archetype_count() == 1); // + + w.destroy_entity(e0); + REQUIRE(w.archetype_count() == 1); // + + w.destroy_entity(e1); + REQUIRE(w.archetype_count() == 0); } TEST_CASE("Component distribution across archetypes") @@ -499,11 +527,13 @@ TEST_CASE("Component distribution across archetypes") auto e = w.make_entity(); w.set(e); } + for(int i = 0; i < 3; ++i) { auto e = w.make_entity(); w.set(e); } + for(int i = 0; i < 2; ++i) { auto e = w.make_entity();