void case_list_iter() { struct list *list = list(); char *s1 = "s1", *s2 = "s2", *s3 = "s3"; list_push(list, s1); list_push(list, s2); list_push(list, s3); struct list_iter *iter = list_iter(list); assert(iter->list == list); assert(iter->node == list->head); assert(list_iter_next(iter) == s1); assert(list_iter_next(iter) == s2); assert(list_iter_next(iter) == s3); list_iter_seek_tail(iter); assert(list_iter_prev(iter) == s3); assert(list_iter_prev(iter) == s2); assert(list_iter_prev(iter) == s1); list_iter_free(iter); int i = 0; struct list_node *node; list_each(list, node) { char *s = node->data; assert(s[1] - 49 == i); i += 1; }
void case_list_iter() { struct list *list = list(); char *s1 = "s1", *s2 = "s2", *s3 = "s3"; list_push(list, s1); list_push(list, s2); list_push(list, s3); struct list_iter *iter = list_iter(list); assert(iter->list == list); assert(iter->node == list->head); assert(list_iter_next(iter) == s1); assert(list_iter_next(iter) == s2); assert(list_iter_next(iter) == s3); list_iter_seek_tail(iter); assert(list_iter_prev(iter) == s3); assert(list_iter_prev(iter) == s2); assert(list_iter_prev(iter) == s1); list_iter_free(iter); list_free(list); }