char *test_push_pop() { List_push(list, test1); mu_assert(List_last(list) == test1, "Wrong last value"); List_push(list, test2); mu_assert(List_last(list) == test2, "Wrong last value"); List_push(list, test3); mu_assert(List_last(list) == test3, "Wrong last value"); mu_assert(List_count(list) == 3, "Wrong count on push"); char *val = List_pop(list); mu_assert(val == test3, "Wrong value on pop"); val = List_pop(list); mu_assert(val == test2, "Wrong value on pop"); val = List_pop(list); mu_assert(val == test1, "Wrong value on pop"); mu_assert(List_count(list) == 0, "Wrong count after pop."); return NULL; }
void remove_mid(List *list) { List_push(list, 12); List_push(list, 7); List_push(list, 8); List_remove(list, List_index(list, 1)); assert(List_size(list) == 2); assert(List_first(list)->data == 12); assert(List_last(list)->data == 8); }
char *test_remove() { //only test middle case since push shift test other cases char *val = List_remove(list, list->first->next); mu_assert(val == test2, "Wrong removed element."); mu_assert(List_count(list) == 2, "Wrong count after remove."); mu_assert(List_first(list) == test3, "Wrong first after remove."); mu_assert(List_last(list) == test1, "Wrong last after remove."); return NULL; }
char *test_remove() { char *val = List_remove(list, list->first->next); mu_assert(val == test2, "Wrong removed element."); mu_assert(List_count(list) == 2, "Wrong count after remove."); mu_assert(List_first(list) == test3, "Wrong first after remove."); mu_assert(List_last(list) == test1, "Wrong last after remove."); return NULL; }
void str_push_pop(List *list) { SET_TYPE(list, string); List_push(list, "hello world"); List_push(list, "bad boy"); assert(strcmp(List_index(list, 0)->data, "hello world") == 0); assert(strcmp(List_index(list, 1)->data, "bad boy") == 0); assert(strcmp(List_first(list)->data, "hello world") == 0); assert(strcmp(List_last(list)->data, "bad boy") == 0); List_pop(list); List_pop(list); }
char *test_remove() { /*only need to test middle remove case since push/shift already tests the other cases*/ char *val = List_remove(list, list->first->next); mu_assert(val == test2, "Wrong removed element."); mu_assert(List_count(list) == 2, "Wrong count after remove."); mu_assert(List_first(list) == test3, "Wrong first after remove."); mu_assert(List_last(list) == test1, "Wrong last after remove."); return NULL; }
char *test_remove() { List_push(list, tv1); List_push(list, tv2); List_push(list, tv3); char *out = List_remove(list, list->first->next); mu_assert(out == tv2, "Removed wrong thing."); mu_assert(List_first(list) == tv1, "Wrong first ref."); mu_assert(List_last(list) == tv3, "Wrong last ref."); return NULL; }
void push_shift(List *list) { List_push(list, 12); List_push(list, 7); List_push(list, 2); assert(List_index(list, 0)->data == 12); assert(List_index(list, 1)->data == 7); assert(List_first(list)->data == 12); assert(List_last(list)->data == 2); List_shift(list); assert(List_first(list)->data == 7); List_shift(list); assert(List_first(list)->data == 2); List_shift(list); assert(List_first(list) == NULL); }
char* test_copy() { src = List_create(); dest = List_create(); List_push(src, test1); List_push(src, test2); List_push(src, test3); List_copy(dest, src); mu_assert(List_count(dest) == 3, "Wrong copy - count."); mu_assert(List_first(dest) == test1, "Wrong copy - first."); mu_assert(List_last(dest) == test3, "Wrong copy - last."); return NULL; }
char *test_push_pop() { List_push(list, tv1); mu_assert(List_last(list) == tv1, "Bad last value."); List_push(list, tv2); mu_assert(List_last(list) == tv2, "Bad last value."); List_push(list, tv3); mu_assert(List_last(list) == tv3, "Bad last value."); mu_assert(List_size(list) == 3, "Wrong size"); char *out = List_pop(list); mu_assert(out == tv3, "Bad popped value."); out = List_pop(list); mu_assert(out == tv2, "Bad popped value."); out = List_pop(list); mu_assert(out == tv1, "Bad popped value."); mu_assert(List_size(list) == 0, "Wrong size"); return NULL; }
char *test_push_pop() { List_push(list, test1); mu_assert(List_last(list) == test1, "Wrong last value"); List_push(list, test2); mu_assert(List_last(list) == test2, "Wrong last value"); List_push(list, test3); mu_assert(List_last(list) == test3, "Wrong last value"); mu_assert(List_count(list) == 3, "Wrong count"); char *val = List_pop(list); mu_assert(val == test3, "Wrong popped value"); val = List_pop(list); mu_assert(val == test2, "Wrong popped value"); val = List_pop(list); mu_assert(val == test1, "Wrong popped value"); mu_assert(List_count(list) == 0, "Wrong count"); return NULL; }