Esempio n. 1
0
void 
test_c_deque() {
    int flip = 1;
    int i = 0;
    int limit = 20;
    void*  element;
    int j = 0;

    struct clib_deque* myDeq = new_c_deque ( 10, compare_e, NULL);
    assert ( (struct clib_deque*)0 != myDeq );

    for ( i = 0; i <= limit; i++ ) { 
        if ( flip ) {
            push_back_c_deque ( myDeq, &i , sizeof(int));
            flip = 0;
        } else {
            push_front_c_deque ( myDeq, &i, sizeof(int) );
            flip = 1;
        }
    }
    front_c_deque ( myDeq, &element );
    assert ( *(int*)element == limit - 1 );
    free ( element );

    back_c_deque ( myDeq, &element );
    assert ( *(int*)element == limit);
    free ( element );

    while ( empty_c_deque(myDeq) != clib_true ) {
        pop_front_c_deque ( myDeq);
    }
    delete_c_deque(myDeq);

    myDeq = new_c_deque ( 10, compare_e, free_e); 
    for ( i = 0; i <= limit; i ++ ) { 
        int *v = (int*)malloc(sizeof(int ));
        memcpy ( v, &i, sizeof ( int ));
        push_back_c_deque ( myDeq, v , sizeof(int*));
        free ( v );
    }   
    for ( i = myDeq->head + 1; i < myDeq->tail; i++ ){
        void* elem;
        if ( element_at_c_deque( myDeq, i, &elem ) == CLIB_ERROR_SUCCESS ) {
                assert ( *(int*)elem == j++ );
                free ( elem );
        }
    }
    delete_c_deque(myDeq);
	test_with_deque_iterator();
}
Esempio n. 2
0
static void
test_with_deque_iterator() {
	struct clib_deque* myDeq = create_deque();
	print_using_iterator(myDeq);
	replace_values_using_iterators(myDeq);
	print_using_iterator(myDeq);
	delete_c_deque ( myDeq );
}
Esempio n. 3
0
static void 
t_clib_for_each() {
	struct clib_array *pArray;
	struct clib_deque *pDeq;
	struct clib_set   *pSet;
	struct clib_map   *pMap;
	struct clib_slist *pSlist;
	struct clib_iterator *pArrayIterator;
	struct clib_iterator *pDequeIterator;
	struct clib_iterator *pSetIterator;
	struct clib_iterator *pMapIterator;
	struct clib_iterator *pSlistIterator;
	
	printf ( "Performing for_each for array\n");
	pArray = create_c_array();
	pArrayIterator = new_iterator_c_array ( pArray );
	clib_for_each ( pArrayIterator, print_integers );
	delete_c_array( pArray );
	delete_iterator_c_array ( pArrayIterator );

	printf ( "Performing for_each for deque\n");
	pDeq   = create_deque();
	pDequeIterator = new_iterator_c_deque ( pDeq );
	clib_for_each ( pDequeIterator, print_integers );
	delete_c_deque( pDeq );
	delete_iterator_c_deque ( pDequeIterator );

	printf ( "Performing for_each for set\n");
	pSet   = create_set();
	pSetIterator = new_iterator_c_set ( pSet );
	clib_for_each ( pSetIterator, print_integers );
	delete_c_set( pSet );
	delete_iterator_c_set ( pSetIterator );

	printf ( "Performing for_each for map\n");
	pMap   = create_map();
	pMapIterator = new_iterator_c_map ( pMap );
	clib_for_each ( pMapIterator, print_integers );
	delete_c_map( pMap );
	delete_iterator_c_map ( pMapIterator );

	printf ( "Performing for_each for slist\n");
	pSlist = create_slist();
	pSlistIterator = new_iterator_c_slist ( pSlist );
	clib_for_each ( pSlistIterator, print_integers );
	delete_c_slist( pSlist );
	delete_iterator_c_slist ( pSlistIterator );
}