-
florian.burgener authoredflorian.burgener authored
circ_list_tests.c 2.39 KiB
#include <assert.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include "circ_list.h"
int action_add_10(int element) {
return element + 10;
}
void print_list(element *list) {
element *iterator = list;
do {
printf("%d ", iterator->data);
iterator = iterator->next;
} while (iterator != list);
printf("\n");
}
int main() {
// list_create
element *list = list_create();
assert(list == NULL);
// list_insert_after
printf("list_insert_after\n");
list = list_insert_after(list, 1);
assert(list->data == 1);
print_list(list);
list = list_insert_after(list, 3);
assert(list->data == 3);
assert(list->next->data == 1);
assert(list->next->next->data == 3);
print_list(list);
list = list_insert_before(list, 2);
printf("list_insert_before\n");
assert(list->data == 2);
assert(list->next->data == 3);
assert(list->next->next->data == 1);
assert(list->next->next->next->data == 2);
print_list(list);
// list_empty
element *empty_list = list_create();
assert(list_empty(empty_list) == true);
assert(list_empty(list) == false);
// list_count
assert(list_count(empty_list) == 0);
assert(list_count(list) == 3);
// list_search
element *search_result_1 = list_search(list, 1);
assert(search_result_1->data == 1);
element *search_result_2 = list_search(list, 4);
assert(search_result_2 == NULL);
// list_process
printf("list_process\n");
list_process(list, action_add_10);
assert(list->data == 12);
assert(list->next->data == 13);
assert(list->next->next->data == 11);
assert(list->next->next->next->data == 12);
print_list(list);
// list_remove
printf("list_remove\n");
element *removed_element_1 = list_remove(list, 13);
assert(removed_element_1->data == 13);
assert(list->data == 12);
assert(list->next->data == 11);
assert(list->next->next->data == 12);
free(removed_element_1);
print_list(list);
// list_move
printf("list_move\n");
list = list_move(list);
assert(list->data == 11);
assert(list->next->data == 12);
assert(list->next->next->data == 11);
print_list(list);
list = list_move(list);
assert(list->data == 12);
assert(list->next->data == 11);
assert(list->next->next->data == 12);
print_list(list);
// list_free
list_free(list);
}