コード例 #1
0
ファイル: test-slist.c プロジェクト: vdt/libcore
void test_slist_prepend_to_empty(void)
{
    unsigned long *val = NULL;

    assert_true(test_slist == NULL);

    test_slist = slist_create();

    assert_true(test_slist != NULL);
    assert_true(slist_is_empty(test_slist));

    val = make_ulong_ptr(9999);
    assert_true(val != NULL);

    assert_true(slist_prepend(test_slist, val) == 0);

    /* Verify */
    val = NULL;
    val = slist_index(test_slist, 0);
    assert_true(val != NULL);
    assert_ulong_equal(9999, *val);
    assert_true(slist_size(test_slist) == 1);

    slist_free_all(test_slist, NULL);
    test_slist = NULL;
}
コード例 #2
0
ファイル: test-slist.c プロジェクト: vdt/libcore
void test_slist_index(void)
{
    unsigned long *val;

    /* Index the front */
    val = slist_index(test_slist, 0);
    assert_ulong_equal(0, *val);

    /* Index the back */
    val = slist_index(test_slist, slist_size(test_slist) - 1);
    assert_ulong_equal(999, *val);

    /* Index some random place */
    val = slist_index(test_slist, 47);
    assert_ulong_equal(47, *val);
}
コード例 #3
0
ファイル: test-slist.c プロジェクト: vdt/libcore
void test_slist_reverse_existing(void)
{
    unsigned long *val;
    unsigned long i, val_check;

    val = NULL;
    val_check = *(unsigned long *)slist_index(test_slist,
            slist_size(test_slist) - 1);

    assert_true(slist_reverse(test_slist) == 0);

    for(i = 0; i < slist_size(test_slist); i++, val_check--) {
        val = slist_index(test_slist, i);
        assert_true(val != NULL);
        assert_ulong_equal(*val, val_check);
    }
}
コード例 #4
0
ファイル: queue.c プロジェクト: tomyo/Dinic
int queue_index (Queue *queue, const void *data) {
    /* Precondition */
    assert(queue != NULL);

    /* Postcondicion */
    assert((int) queue->length == slist_length(queue->head));

    return slist_index(queue->head, data);
}
コード例 #5
0
ファイル: queue.c プロジェクト: vdt/libcore
/* Complexity: O(1) */
void* queue_back(Queue *queue)
{
    assert(queue != NULL);

    if(slist_is_empty((SList *)queue)) {
        return NULL;
    }

    return slist_index((SList *)queue, slist_size((SList *)queue) - 1);
}
コード例 #6
0
ファイル: test-slist.c プロジェクト: vdt/libcore
void test_slist_remove_data_from_existing(void)
{
    unsigned long *val;
    unsigned long old_size;

    old_size = slist_size(test_slist);

    val = NULL;
    val = slist_index(test_slist, 10);
    assert_true(val != NULL);

    assert_true(slist_remove_data(test_slist, val) == 0);
    assert_true((old_size - 1) == slist_size(test_slist));
}
コード例 #7
0
ファイル: test-slist.c プロジェクト: vdt/libcore
void test_slist_prepend_to_existing(void)
{
    unsigned long *val;
    unsigned long old_size;

    old_size = slist_size(test_slist);
    val = make_ulong_ptr(7777);
    assert_true(slist_prepend(test_slist, val) == 0);

    /* Verify */
    val = NULL;
    val = slist_index(test_slist, 0);
    assert_ulong_equal(7777, *val);
    assert_true((old_size + 1) == slist_size(test_slist));
}
コード例 #8
0
ファイル: test-slist.c プロジェクト: vdt/libcore
void test_slist_insert_in_middle(void)
{
    unsigned long *val;
    unsigned long old_size;

    old_size = slist_size(test_slist);
    val = make_ulong_ptr(6666);
    assert_true(slist_insert(test_slist, old_size / 2, val) == 0);

    /* Verify */
    val = NULL;
    val = slist_index(test_slist, old_size / 2);
    assert_ulong_equal(6666, *val);
    assert_true((old_size + 1) == slist_size(test_slist));
}
コード例 #9
0
ファイル: test-slist.c プロジェクト: vdt/libcore
void test_slist_insert_at_back(void)
{
    unsigned long *val;
    unsigned long old_size;

    old_size = slist_size(test_slist);
    val = make_ulong_ptr(7777);
    assert_true(slist_insert(test_slist, old_size, val) == 0);

    /* Verify */
    val = NULL;
    val = slist_index(test_slist, old_size);
    assert_ulong_equal(7777, *val);
    assert_true((old_size + 1) == slist_size(test_slist));
}
コード例 #10
0
ファイル: test-slist.c プロジェクト: vdt/libcore
void test_slist_insert_at_front(void)
{
    unsigned long *val;
    unsigned long old_size;

    old_size = slist_size(test_slist);
    val = make_ulong_ptr(8888);
    assert_true(slist_insert(test_slist, 0, val) == 0);

    /* Verify */
    val = NULL;
    val = slist_index(test_slist, 0);
    assert_ulong_equal(8888, *val);
    assert_true((old_size + 1) == slist_size(test_slist));
}
コード例 #11
0
ファイル: test-slist.c プロジェクト: vdt/libcore
void test_slist_remove_data_from_existing_until_empty(void)
{
    unsigned long *val;
    unsigned long i;

    val = NULL;
    i = slist_size(test_slist);
    while(i > 0) {
        val = slist_index(test_slist, --i);
        assert_true(val != NULL);
        assert_true(slist_remove_data(test_slist, val) == 0);
        assert_true(i == slist_size(test_slist));
    }

    assert_true(slist_is_empty(test_slist));
}
コード例 #12
0
ファイル: queue.c プロジェクト: vdt/libcore
/* Complexity: O(1) */
void* queue_front(Queue *queue)
{
    assert(queue != NULL);

    return slist_index((SList *)queue, 0);
}