#include "libft_test.h" TEST_GROUP(ft_lstiter); TEST_SETUP(ft_lstiter) {} TEST_TEAR_DOWN(ft_lstiter) {} static void square_iter_func(void *data) { int *d = (int*)data; *d = *d * *d; } TEST(ft_lstiter, basic) { t_ftlst *lst = NULL; int a = 2; int b = 3; int c = 4; int d = 5; ft_lstiter(lst, square_iter_func); TEST_ASSERT_NULL(lst); ft_lstadd_front(&lst, ft_lstnew(&a)); ft_lstiter(lst, square_iter_func); TEST_ASSERT_EQUAL(4, *(int*)lst->content); ft_lstadd_front(&lst, ft_lstnew(&b)); ft_lstiter(lst, square_iter_func); TEST_ASSERT_EQUAL(9, *(int*)lst->content); TEST_ASSERT_EQUAL(16, *(int*)lst->next->content); ft_lstadd_front(&lst, ft_lstnew(&c)); ft_lstiter(lst, square_iter_func); TEST_ASSERT_EQUAL(16, *(int*)lst->content); TEST_ASSERT_EQUAL(81, *(int*)lst->next->content); TEST_ASSERT_EQUAL(256, *(int*)lst->next->next->content); ft_lstadd_front(&lst, ft_lstnew(&d)); ft_lstiter(lst, square_iter_func); TEST_ASSERT_EQUAL(25, *(int*)lst->content); TEST_ASSERT_EQUAL(256, *(int*)lst->next->content); TEST_ASSERT_EQUAL(81 * 81, *(int*)lst->next->next->content); TEST_ASSERT_EQUAL(256 * 256, *(int*)lst->next->next->next->content); ft_lstclear(&lst, NULL); }