Exemple #1
0
TEST_C(DequeTests, DequeIteratorNext)
{
    int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    int e = 5;
    int f = 6;

    deque_add(deque, &a);
    deque_add(deque, &b);
    deque_add(deque, &c);
    deque_add(deque, &d);
    deque_add(deque, &e);
    deque_add(deque, &f);

    DequeIter iter;
    deque_iter_init(&iter, deque);

    size_t i = 0;

    void *el;
    while (deque_iter_next(&iter, &el) != CC_ITER_END) {
        void *k;
        deque_get_at(deque, i, &k);
        CHECK_EQUAL_C_POINTER(k, el);
        i++;

        CHECK_EQUAL_C_INT(i, iter.index);
    }
};
Exemple #2
0
TEST_C(DequeTests, DequeIteratorAdd)
{
    int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    int e = 5;
    int f = 6;

    int g = 7;

    deque_add(deque, &a);
    deque_add(deque, &b);
    deque_add(deque, &c);
    deque_add(deque, &d);
    deque_add(deque, &e);
    deque_add(deque, &f);

    DequeIter iter;
    deque_iter_init(&iter, deque);

    size_t i = 0;

    int *el;

    CHECK_EQUAL_C_INT(6, deque_size(deque));

    while (deque_iter_next(&iter, (void*) &el) != CC_ITER_END) {
        if (*el == d)
            deque_iter_add(&iter, &g);
        if (i >= 3) {
          CHECK_EQUAL_C_INT(i, deque_iter_index(&iter) - 1);
        }
        i++;
    }
    CHECK_EQUAL_C_INT(7, deque_size(deque));

    void *ret;
    deque_get_at(deque, 4, &ret);
    CHECK_EQUAL_C_INT(g, *(int*)ret);
};
Exemple #3
0
TEST_C(DequeTests, DequeIteratorRemove)
{
    int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    int e = 5;
    int f = 6;

    deque_add(deque, &a);
    deque_add(deque, &b);
    deque_add(deque, &c);
    deque_add(deque, &d);
    deque_add(deque, &e);
    deque_add(deque, &f);

    DequeIter iter;
    deque_iter_init(&iter, deque);

    size_t i = 0;
    void *el;
    while (deque_iter_next(&iter, &el) != CC_ITER_END) {
        if (i == 3)
            deque_iter_remove(&iter, NULL);

        if (i > 2) {
          CHECK_EQUAL_C_INT(5, deque_size(deque));
        } else {
          CHECK_EQUAL_C_INT(6, deque_size(deque));
        }
        if (i >= 3) {
          CHECK_EQUAL_C_INT(i-1, deque_iter_index(&iter));
        }
        i++;
    }
};
Exemple #4
0
/**
 * Initializes the iterator.
 *
 * @param[in] iter the iterator that is being initialized
 * @param[in] queue the queue to iterate over
 */
void queue_iter_init(QueueIter *iter, Queue *queue)
{
    deque_iter_init(&(iter->i), queue->d);
}