module tests.id_manager; import bubel.ecs.id_manager; import bubel.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(); }