#include #include #include "linked_list.h" int main(); void test_empty( linked_list_t *p_list ); void test_one_entry( linked_list_t *p_list, int value ); void test_two_entries( linked_list_t *p_list, int fvalue, int bvalue ); int main() { linked_list_t list; init_linked_list( &list ); test_empty( &list ); push_front( &list, 42 ); test_one_entry( &list, 42 ); pop_front( &list ); test_empty( &list ); push_back( &list, 91 ); test_one_entry( &list, 91 ); pop_front( &list ); test_empty( &list ); push_front( &list, 201 ); push_front( &list, 200 ); test_two_entries( &list, 200, 201 ); pop_front( &list ); test_one_entry( &list, 201 ); pop_front( &list ); test_empty( &list ); push_back( &list, 301 ); push_back( &list, 300 ); test_two_entries( &list, 301, 300 ); pop_front( &list ); test_one_entry( &list, 300 ); pop_front( &list ); test_empty( &list ); return 0; } void test_empty( linked_list_t *p_list ) { int actual_value; bool valid; node_t *node; printf( "The list should be empty:\n" ); actual_value = front( p_list, &valid ); printf( " - valid should be false: %d\n", valid ); actual_value = back( p_list, &valid ); printf( " - valid should be false: %d\n", valid ); node = find( p_list, 101 ); 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_t *p_list, int value ) { int actual_value; bool valid; node_t *node; printf( "The list should contain just %d:\n", value ); actual_value = front( p_list, &valid ); printf( " - valid should be true: %d\n", valid ); printf( " - front should be %d: %d\n", value, actual_value ); actual_value = back( p_list, &valid ); printf( " - valid should be true: %d\n", valid ); printf( " - back should be %d: %d\n", value, actual_value ); node = find( p_list, value ); printf( " - node should not be NULL: %p\n", node ); node = find( p_list, value + 101 ); 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_t *p_list, int fvalue, int bvalue ) { int actual_value; bool valid; node_t *node; printf( "The list should contain %d->%d:\n", fvalue, bvalue ); actual_value = front( p_list, &valid ); printf( " - valid should be true: %d\n", valid ); printf( " - front should be %d: %d\n", fvalue, actual_value ); actual_value = back( p_list, &valid ); printf( " - valid should be true: %d\n", valid ); printf( " - back should be %d: %d\n", bvalue, actual_value ); node = find( p_list, fvalue ); printf( " - node should not be NULL: %p\n", node ); node = find( p_list, bvalue ); printf( " - node should not be NULL: %p\n", node ); node = find( p_list, fvalue + bvalue + 101 ); printf( " - node should be NULL: %p\n", node ); printf( " - list size should be 2: %d\n", p_list->size ); }