36 lines
810 B
D
36 lines
810 B
D
module tests.id_manager;
|
|
|
|
import ecs.id_manager;
|
|
import ecs.entity;
|
|
|
|
unittest
|
|
{
|
|
IDManager manager;
|
|
manager.initialize();
|
|
EntityID id1 = manager.getNewID();
|
|
EntityID id2 = manager.getNewID();
|
|
EntityID id3 = manager.getNewID();
|
|
|
|
assert(id1 == EntityID(1, 0));
|
|
assert(id2 == EntityID(2, 0));
|
|
assert(id3 == EntityID(3, 0));
|
|
|
|
manager.optimize();
|
|
manager.releaseID(id2);
|
|
manager.releaseID(id1);
|
|
|
|
id2 = manager.getNewID();
|
|
id1 = manager.getNewID();
|
|
|
|
Entity e;
|
|
e.id = id3;
|
|
manager.update(e);
|
|
|
|
assert(id1 == EntityID(2, 1));
|
|
assert(id2 == EntityID(1, 1));
|
|
assert(id3 == EntityID(3, 0));
|
|
assert(manager.isExist(id3));
|
|
assert(!manager.isExist(EntityID(1, 0)));
|
|
assert(!manager.isExist(EntityID(0, 0)));
|
|
manager.deinitialize();
|
|
}
|