Пример #1
0
void testObjectManager() {
    ObjectManager<int> manager;

    std::vector<ObjectID> ids;

    static const int nb = 1024;

    for(int i = 0; i < nb; ++i) {
        ids.push_back(manager.add(i));
    }

    bool check_array[2 * nb];
    std::fill(std::begin(check_array), std::end(check_array), true);

    srand(0);
    for(int i = 0; i < nb / 2; ++i) {
        int idx = rand() % nb;

        if(manager.isValid(ids[idx])) {
            int value = manager[ids[idx]];
            check_array[value] = false;
        }
        manager.remove(ids[idx]);

    }

    for(int i = nb; i < 2 * nb; ++i) {
        ids.push_back(manager.add(i));
    }

    for(const auto& data: manager) {
        if(!check_array[data]) {
            return;
        }
    }
}