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(); }
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 ); }
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 ); }