#include #include #include "linked_list_generic.h" int main(); void test_empty( linked_list_double_t *p_list ); void test_one_entry( linked_list_double_t *p_list, double value ); void test_two_entries( linked_list_double_t *p_list, double fvalue, double bvalue ); int main() { linked_list_double_t list; init_linked_list_double( &list ); test_empty( &list ); push_front_double( &list, 42.5 ); test_one_entry( &list, 42.5 ); pop_front_double( &list ); test_empty( &list ); push_back_double( &list, 91.5 ); test_one_entry( &list, 91.5 ); pop_front_double( &list ); test_empty( &list ); push_front_double( &list, 201.5 ); push_front_double( &list, 200.5 ); test_two_entries( &list, 200.5, 201.3 ); pop_front_double( &list ); test_one_entry( &list, 201.5 ); pop_front_double( &list ); test_empty( &list ); push_back_double( &list, 301.5 ); push_back_double( &list, 300.5 ); test_two_entries( &list, 301.5, 300.3 ); pop_front_double( &list ); test_one_entry( &list, 300.5 ); pop_front_double( &list ); test_empty( &list ); return 0; } void test_empty( linked_list_double_t *p_list ) { double actual_value; bool valid; node_double_t *node; printf( "The list should be empty:\n" ); actual_value = front_double( p_list, &valid ); printf( " - valid should be false: %d\n", valid ); actual_value = back_double( p_list, &valid ); printf( " - valid should be false: %d\n", valid ); node = find_double( p_list, 101.5 ); printf( " - node should be NULL: %p\n", node ); printf( " - list size should be 0: %d\n", p_list->size ); } void test_one_entry( linked_list_double_t *p_list, double value ) { double actual_value; bool valid; node_double_t *node; printf( "The list should contain just %d:\n", value ); actual_value = front_double( p_list, &valid ); printf( " - valid should be true: %d\n", valid ); printf( " - front should be %f: %f\n", value, actual_value ); actual_value = back_double( p_list, &valid ); printf( " - valid should be true: %d\n", valid ); printf( " - back should be %f: %f\n", value, actual_value ); node = find_double( p_list, value ); printf( " - node should not be NULL: %p\n", node ); node = find_double( p_list, value + 101.5 ); printf( " - node should be NULL: %p\n", node ); printf( " - list size should be 1: %d\n", p_list->size ); } void test_two_entries( linked_list_double_t *p_list, double fvalue, double bvalue ) { double actual_value; bool valid; node_double_t *node; printf( "The list should contain %f->%f:\n", fvalue, bvalue ); actual_value = front_double( p_list, &valid ); printf( " - valid should be true: %d\n", valid ); printf( " - front should be %f: %f\n", fvalue, actual_value ); actual_value = back_double( p_list, &valid ); printf( " - valid should be true: %d\n", valid ); printf( " - back should be %f: %f\n", bvalue, actual_value ); node = find_double( p_list, fvalue ); printf( " - node should not be NULL: %p\n", node ); node = find_double( p_list, bvalue ); printf( " - node should not be NULL: %p\n", node ); node = find_double( p_list, fvalue + bvalue + 101.5 ); printf( " - node should be NULL: %p\n", node ); printf( " - list size should be 2: %d\n", p_list->size ); }