char* test_r_list_values(void) { RList* list = r_list_new (); intptr_t test1 = 0x12345; intptr_t test2 = 0x88888; r_list_append (list, (void*)test1); r_list_append (list, (void*)test2); mu_assert("error, first value not 0x88888", (intptr_t)0x88888 == (intptr_t)r_list_pop (list)); mu_assert("error, first value not 0x12345", (intptr_t)0x12345 == (intptr_t)r_list_pop (list)); return NULL; }
bool test_r_list_values(void) { RList* list = r_list_new (); intptr_t test1 = 0x12345; intptr_t test2 = 0x88888; r_list_append (list, (void*)test1); r_list_append (list, (void*)test2); int top1 = (intptr_t)r_list_pop (list); int top2 = (intptr_t)r_list_pop (list); mu_assert_eq(top1, 0x88888, "first value not 0x88888"); mu_assert_eq(top2, 0x12345, "first value not 0x12345"); r_list_free (list); mu_end; }
bool test_r_list_length(void) { RList* list = r_list_new (); RList* list2 = r_list_new (); RListIter *iter; int count = 0; int test1 = 33508; int test2 = 33480; int test3 = 33964; // Put in not sorted order. r_list_append (list, (void*)&test1); r_list_append (list, (void*)&test3); r_list_append (list, (void*)&test2); iter = list->head; while (iter) { count++; iter = iter->n; } mu_assert_eq (list->length, 3, "First length check"); r_list_delete_data (list, (void*)&test1); mu_assert_eq (list->length, 2, "Second length check"); r_list_append (list, (void*)&test1); mu_assert_eq (list->length, 3, "Third length check"); r_list_pop (list); mu_assert_eq (list->length, 2, "Fourth length check"); r_list_pop_head (list); mu_assert_eq (list->length, 1, "Fifth length check"); r_list_insert (list, 2, (void*)&test2); mu_assert_eq (list->length, 2, "Sixth length check"); r_list_prepend (list, (void*)&test3); mu_assert_eq (list->length, 3, "Seventh length check"); r_list_del_n (list, 2); mu_assert_eq (list->length, 2, "Eighth length check"); r_list_append (list2, (void*)&test1); r_list_append (list2, (void*)&test3); r_list_append (list2, (void*)&test2); r_list_join (list, list2); mu_assert_eq (list->length, 5, "Ninth length check"); iter = list->head; count = 0; while (iter) { count++; iter = iter->n; } mu_assert_eq (list->length, count, "Tenth length check"); r_list_free (list); r_list_free (list2); mu_end; }
R_API int r_space_pop(RSpaces *f) { char *p = r_list_pop (f->spacestack); if (p) { if (*p) { r_space_set (f, p); } return R_TRUE; } return R_FALSE; }
char* test_r_list_del_n(void) { RList* list = r_list_new (); intptr_t test1 = 0x12345; intptr_t test2 = 0x88888; r_list_append (list, (void*)test1); r_list_append (list, (void*)test2); snprintf (buf, 1024, "error, expected size 2, got %d\n", (int)r_list_length (list)); mu_assert(buf, r_list_length (list) == 2); r_list_del_n (list, 0); mu_assert("error, first value not 0x88888", (intptr_t)0x88888 == (intptr_t)r_list_pop (list)); return NULL; }
bool test_r_list_del_n(void) { RList* list = r_list_new (); intptr_t test1 = 0x12345; intptr_t test2 = 0x88888; r_list_append (list, (void*)test1); r_list_append (list, (void*)test2); mu_assert_eq (r_list_length (list), 2, "list is of length 2 when adding 2 values"); r_list_del_n (list, 0); int top1 = (intptr_t)r_list_pop (list); mu_assert_eq(top1, 0x88888, "error, first value not 0x88888"); r_list_free (list); mu_end; }
bool test_r_list_size(void) { // Test that r_list adding and deleting works correctly. int i; RList* list = r_list_new (); intptr_t test = 0x101010; // Add 100 items. for (i = 0; i < 100; ++i) { r_list_append (list, (void*)test); mu_assert_eq (r_list_length (list), i + 1, "r_list_length failed on append"); } // Delete 50 of them. for (i = 0; i < 50; ++i) { (void)r_list_pop (list); mu_assert_eq(99 - i, r_list_length (list), "r_list_length failed on pop"); } // Purge the list. r_list_purge (list); mu_assert_eq(0, r_list_length (list), "r_list_length failed on purged list"); r_list_free (list); mu_end; }
char* test_r_list_size(void) { // Test that r_list adding and deleting works correctly. int i; RList* list = r_list_new (); intptr_t test = 0x101010; // Add 100 items. for (i = 0; i < 100; ++i) { r_list_append (list, (void*)test); snprintf(buf, 1024, "error, append gave wrong length. actual %d, expected %d", r_list_length (list), i + 1); mu_assert(buf, i + 1 == r_list_length (list)); } // Delete 50 of them. for (i = 0; i < 50; ++i) { intptr_t val = (intptr_t)r_list_pop (list); snprintf(buf, 1024, "error, pop gave wrong length. actual: %d, expected %d", r_list_length (list), 99 - i); mu_assert(buf, 99 - i == r_list_length (list)); } // Purge the list. r_list_purge (list); mu_assert("error, purge didn't clear list", 0 == r_list_length (list)); return NULL; }