diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-02-16 04:51:41 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-02-16 04:51:41 +0100 |
| commit | 01b4cc91d1596cf94d709a627ed8ad64bc1e285d (patch) | |
| tree | 8b15a7758247ed4d4a084bccefedbf426ddfd305 /test/src/lst/test_ft_lstmap.c | |
| parent | bf4dc8e5c1dbb8149f0cab473f73b5e9bac24ae0 (diff) | |
| download | libft-01b4cc91d1596cf94d709a627ed8ad64bc1e285d.tar.gz libft-01b4cc91d1596cf94d709a627ed8ad64bc1e285d.tar.bz2 libft-01b4cc91d1596cf94d709a627ed8ad64bc1e285d.zip | |
Filled lst* tests
Diffstat (limited to 'test/src/lst/test_ft_lstmap.c')
| -rw-r--r-- | test/src/lst/test_ft_lstmap.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/test/src/lst/test_ft_lstmap.c b/test/src/lst/test_ft_lstmap.c index 5252e9e..4abdddc 100644 --- a/test/src/lst/test_ft_lstmap.c +++ b/test/src/lst/test_ft_lstmap.c @@ -8,7 +8,75 @@ TEST_SETUP(ft_lstmap) TEST_TEAR_DOWN(ft_lstmap) {} +static void *f_square(void *data) +{ + int *d = malloc(sizeof(int)); + + *d = *(int*)data; + *d = *d * *d; + return d; +} + TEST(ft_lstmap, basic) { + t_ftlst *lst = NULL; + t_ftlst *mapped = NULL; + int a = 2; + int b = 3; + int c = 4; + int d = 5; + + mapped = ft_lstmap(lst, f_square, free); + TEST_ASSERT_NULL(mapped); + + ft_lstadd_front(&lst, ft_lstnew(&a)); + mapped = ft_lstmap(lst, f_square, free); + TEST_ASSERT_NOT_NULL(mapped); + TEST_ASSERT_NOT_NULL(mapped->content); + TEST_ASSERT_EQUAL(4, *(int*)mapped->content); + TEST_ASSERT_NULL(mapped->next); + ft_lstclear(&mapped, free); + + ft_lstadd_front(&lst, ft_lstnew(&b)); + mapped = ft_lstmap(lst, f_square, free); + TEST_ASSERT_NOT_NULL(mapped); + TEST_ASSERT_NOT_NULL(mapped->content); + TEST_ASSERT_EQUAL(9, *(int*)mapped->content); + TEST_ASSERT_NOT_NULL(mapped->next); + TEST_ASSERT_NOT_NULL(mapped->next->content); + TEST_ASSERT_EQUAL(4, *(int*)mapped->next->content); + TEST_ASSERT_NULL(mapped->next->next); + ft_lstclear(&mapped, free); + + ft_lstadd_front(&lst, ft_lstnew(&c)); + mapped = ft_lstmap(lst, f_square, free); + TEST_ASSERT_NOT_NULL(mapped); + TEST_ASSERT_NOT_NULL(mapped->content); + TEST_ASSERT_EQUAL(16, *(int*)mapped->content); + TEST_ASSERT_NOT_NULL(mapped->next); + TEST_ASSERT_NOT_NULL(mapped->next->content); + TEST_ASSERT_EQUAL(9, *(int*)mapped->next->content); + TEST_ASSERT_NOT_NULL(mapped->next->next); + TEST_ASSERT_NOT_NULL(mapped->next->next->content); + TEST_ASSERT_EQUAL(4, *(int*)mapped->next->next->content); + TEST_ASSERT_NULL(mapped->next->next->next); + ft_lstclear(&mapped, free); + + ft_lstadd_front(&lst, ft_lstnew(&d)); + mapped = ft_lstmap(lst, f_square, free); + TEST_ASSERT_NOT_NULL(mapped); + TEST_ASSERT_NOT_NULL(mapped->content); + TEST_ASSERT_EQUAL(25, *(int*)mapped->content); + TEST_ASSERT_NOT_NULL(mapped->next); + TEST_ASSERT_NOT_NULL(mapped->next->content); + TEST_ASSERT_EQUAL(16, *(int*)mapped->next->content); + TEST_ASSERT_NOT_NULL(mapped->next->next); + TEST_ASSERT_NOT_NULL(mapped->next->next->content); + TEST_ASSERT_EQUAL(9, *(int*)mapped->next->next->content); + TEST_ASSERT_NOT_NULL(mapped->next->next->next); + TEST_ASSERT_NOT_NULL(mapped->next->next->next->content); + TEST_ASSERT_EQUAL(4, *(int*)mapped->next->next->next->content); + ft_lstclear(&mapped, free); + ft_lstclear(&lst, NULL); } |
