aboutsummaryrefslogtreecommitdiff
path: root/test/src/lst/test_ft_lstremove_if.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/src/lst/test_ft_lstremove_if.c')
-rw-r--r--test/src/lst/test_ft_lstremove_if.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/test/src/lst/test_ft_lstremove_if.c b/test/src/lst/test_ft_lstremove_if.c
index ef50e47..e32a262 100644
--- a/test/src/lst/test_ft_lstremove_if.c
+++ b/test/src/lst/test_ft_lstremove_if.c
@@ -10,5 +10,61 @@ TEST_TEAR_DOWN(ft_lstremove_if)
TEST(ft_lstremove_if, basic)
{
+ t_ftlst *lst = NULL;
+ int a = 1;
+ int b = 2;
+ int c = 3;
+ int d = 4;
+ ft_lstadd_back(&lst, ft_lstnew(&a));
+ ft_lstadd_back(&lst, ft_lstnew(&b));
+ ft_lstadd_back(&lst, ft_lstnew(&c));
+ ft_lstadd_back(&lst, ft_lstnew(&d));
+ ft_lstadd_back(&lst, ft_lstnew(&d));
+ ft_lstadd_back(&lst, ft_lstnew(&d));
+ ft_lstadd_back(&lst, ft_lstnew(&a));
+ ft_lstadd_back(&lst, ft_lstnew(&a));
+
+ ft_lstremove_if(&lst, ft_compar_int, &a, NULL);
+ TEST_ASSERT_NOT_NULL(lst);
+ TEST_ASSERT_NOT_NULL(lst->next);
+ TEST_ASSERT_NOT_NULL(lst->next->next);
+ TEST_ASSERT_NOT_NULL(lst->next->next->next);
+ TEST_ASSERT_NOT_NULL(lst->next->next->next->next);
+ TEST_ASSERT_NOT_NULL(lst->content);
+ TEST_ASSERT_NOT_NULL(lst->next->content);
+ TEST_ASSERT_NOT_NULL(lst->next->next->content);
+ TEST_ASSERT_NOT_NULL(lst->next->next->next->content);
+ TEST_ASSERT_NOT_NULL(lst->next->next->next->next->content);
+ TEST_ASSERT_EQUAL(b, *(int*)lst->content);
+ TEST_ASSERT_EQUAL(c, *(int*)lst->next->content);
+ TEST_ASSERT_EQUAL(d, *(int*)lst->next->next->content);
+ TEST_ASSERT_EQUAL(d, *(int*)lst->next->next->next->content);
+ TEST_ASSERT_EQUAL(d, *(int*)lst->next->next->next->next->content);
+
+ ft_lstremove_if(&lst, ft_compar_int, &b, NULL);
+ TEST_ASSERT_NOT_NULL(lst);
+ TEST_ASSERT_NOT_NULL(lst->next);
+ TEST_ASSERT_NOT_NULL(lst->next->next);
+ TEST_ASSERT_NOT_NULL(lst->next->next->next);
+ TEST_ASSERT_NOT_NULL(lst->content);
+ TEST_ASSERT_NOT_NULL(lst->next->content);
+ TEST_ASSERT_NOT_NULL(lst->next->next->content);
+ TEST_ASSERT_EQUAL(c, *(int*)lst->content);
+ TEST_ASSERT_EQUAL(d, *(int*)lst->next->content);
+ TEST_ASSERT_EQUAL(d, *(int*)lst->next->next->content);
+ TEST_ASSERT_EQUAL(d, *(int*)lst->next->next->next->content);
+
+ ft_lstremove_if(&lst, ft_compar_int, &d, NULL);
+ TEST_ASSERT_NOT_NULL(lst);
+ TEST_ASSERT_NOT_NULL(lst->content);
+ TEST_ASSERT_EQUAL(c, *(int*)lst->content);
+
+ ft_lstremove_if(&lst, ft_compar_int, &d, NULL);
+ TEST_ASSERT_NOT_NULL(lst);
+ TEST_ASSERT_NOT_NULL(lst->content);
+ TEST_ASSERT_EQUAL(c, *(int*)lst->content);
+
+ ft_lstremove_if(&lst, ft_compar_int, &c, NULL);
+ TEST_ASSERT_NULL(lst);
}