/* * test program for sorted list of ints * * no inputs */ #include #include #include "sorted-int-list.h" #include "test-helper.h" // has print_test_data /******************************************************************************* * * declarations (prototypes) of helper functions */ /* convenience function to print list */ void print_list(sorted_int_list_node_t * lst); /* functions to test sorted-list functions verbosely */ void test_insert(sorted_int_list_node_t ** lst_p, int n); void test_remove(sorted_int_list_node_t ** lst_p, int n); void test_count(sorted_int_list_node_t * lst, int n); /******************************************************************************/ int main(void) { sorted_int_list_node_t * list_p = NULL; int insert_data[] = { 6, 2, 4, 4, 0, 8 }; int count_data[] = { 0, 2, 4, 8, -1, 3, 100}; int remove_data[] = { 4, 0, 8, 0, 8}; for (int i = 0; i < sizeof(insert_data)/sizeof(insert_data[0]); ++i) { test_insert(&list_p, insert_data[i]); } print_test_data(insert_data, sizeof(insert_data)/sizeof(insert_data[0])); for (int i = 0; i < sizeof(count_data)/sizeof(count_data[0]); ++i) { test_count(list_p, count_data[i]); } for (int i = 0; i < sizeof(remove_data)/sizeof(remove_data[0]); ++i) { test_remove(&list_p, remove_data[i]); } test_insert(&list_p, 0); test_insert(&list_p, 8); sorted_int_list_remove_all(&list_p); printf("after removing all elements "); print_list(list_p); printf("\n"); return EXIT_SUCCESS; } /******************************************************************************/ void print_list(sorted_int_list_node_t * lst) { printf("["); sorted_int_list_print(lst, stdout, " %d"); printf(" ]"); } void test_insert(sorted_int_list_node_t ** lst_p, int n) { printf("inserting %d into list ", n); print_list(*lst_p); printf("\n"); if (sorted_int_list_insert(lst_p, n)) { printf("result "); print_list(*lst_p); printf("\n"); } else { printf("insert failed\n"); } } void test_remove(sorted_int_list_node_t ** lst_p, int n) { printf("removing %d from list ", n); print_list(*lst_p); printf("\n"); sorted_int_list_remove(lst_p, n); printf("result "); print_list(*lst_p); printf("\n"); } void test_count(sorted_int_list_node_t * lst, int n) { printf("counting occurrences of %d in list ", n); print_list(lst); printf("\n"); printf("result %d\n", sorted_int_list_count(lst, n)); }