test_stack_u64.c (1451B)
1 #include "test_stack_u64.h" 2 3 void test_stack_u64_init() 4 { 5 stack_u64 t; 6 stack_u64_init(&t); 7 8 CU_ASSERT(t.nmemb == 0); 9 CU_ASSERT(t.alloc > 0); 10 CU_ASSERT(t.data != NULL); 11 12 stack_u64_clear(&t); 13 } 14 15 void test_stack_u64_push() 16 { 17 stack_u64 t; 18 stack_u64_init(&t); 19 20 uint64_t i; 21 for(i = 0; i < 2*BASE_STACK_SIZE; i++) { 22 stack_u64_push(&t, i); 23 } 24 25 CU_ASSERT(t.alloc == 2*BASE_STACK_SIZE); 26 CU_ASSERT(t.nmemb == 2*BASE_STACK_SIZE); 27 for(i = 0; i < 2*BASE_STACK_SIZE; i++) { 28 CU_ASSERT(t.data[i] == i); 29 } 30 31 stack_u64_clear(&t); 32 } 33 34 void test_stack_u64_get_getlast() 35 { 36 stack_u64 t; 37 stack_u64_init(&t); 38 39 uint64_t i; 40 for(i = 0; i < 2*BASE_STACK_SIZE; i++) { 41 stack_u64_push(&t, i); 42 } 43 44 for(i = 0; i < t.nmemb; i++) { 45 CU_ASSERT(stack_u64_get(&t, i) == i); 46 } 47 CU_ASSERT(stack_u64_getlast(&t) == 2*BASE_STACK_SIZE-1); 48 49 stack_u64_clear(&t); 50 } 51 52 void test_stack_u64_pop() 53 { 54 stack_u64 t; 55 stack_u64_init(&t); 56 57 stack_u64_push(&t, 13); 58 stack_u64_push(&t, 16); 59 stack_u64_push(&t, 17); 60 61 CU_ASSERT(t.nmemb == 3); 62 CU_ASSERT(stack_u64_pop(&t) == 17); 63 CU_ASSERT(t.nmemb == 2); 64 CU_ASSERT(stack_u64_pop(&t) == 16); 65 CU_ASSERT(t.nmemb == 1); 66 CU_ASSERT(stack_u64_pop(&t) == 13); 67 CU_ASSERT(t.nmemb == 0); 68 CU_ASSERT(stack_u64_pop(&t) == STACK_U64_EMPTY_POP); 69 CU_ASSERT(t.nmemb == 0); 70 71 stack_u64_clear(&t); 72 }