From 65cf641e9533b190db870d0cc46f2f852239ebf6 Mon Sep 17 00:00:00 2001 From: Charles Date: Sat, 4 Apr 2020 23:36:19 +0200 Subject: Added test for ft_strsjoin, ft_strsjoinf, ft_vecpush_safe, Added doc for algo functions, tested functions --- test/src/main.c | 4 ++ test/src/runner/test_runner_str.c | 10 +++++ test/src/runner/test_runner_vec.c | 7 ++- test/src/str/test_ft_strsjoin.c | 57 ++++++++++++++++++++++++ test/src/str/test_ft_strsjoinf.c | 87 +++++++++++++++++++++++++++++++++++++ test/src/vec/test_ft_vecpush_safe.c | 45 +++++++++++++++++++ 6 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 test/src/str/test_ft_strsjoin.c create mode 100644 test/src/str/test_ft_strsjoinf.c create mode 100644 test/src/vec/test_ft_vecpush_safe.c (limited to 'test') diff --git a/test/src/main.c b/test/src/main.c index 7bac44b..b8f5cf3 100644 --- a/test/src/main.c +++ b/test/src/main.c @@ -30,6 +30,8 @@ static void run_all_test(void) // str RUN_TEST_GROUP(ft_strlen); RUN_TEST_GROUP(ft_fnmatch); + RUN_TEST_GROUP(ft_strsjoin); + RUN_TEST_GROUP(ft_strsjoinf); // ht RUN_TEST_GROUP(ft_htentry_new); @@ -79,7 +81,9 @@ static void run_all_test(void) RUN_TEST_GROUP(ft_vecpush); RUN_TEST_GROUP(ft_vecremove); RUN_TEST_GROUP(ft_vecinsert); + RUN_TEST_GROUP(ft_vecpush_safe); + // dstr RUN_TEST_GROUP(ft_dstrdestroy); RUN_TEST_GROUP(ft_dstrgrow); RUN_TEST_GROUP(ft_dstrinsert); diff --git a/test/src/runner/test_runner_str.c b/test/src/runner/test_runner_str.c index a299786..a6c0da8 100644 --- a/test/src/runner/test_runner_str.c +++ b/test/src/runner/test_runner_str.c @@ -9,3 +9,13 @@ TEST_GROUP_RUNNER(ft_fnmatch) { RUN_TEST_CASE(ft_fnmatch, basic); } + +TEST_GROUP_RUNNER(ft_strsjoin) +{ + RUN_TEST_CASE(ft_strsjoin, basic); +} + +TEST_GROUP_RUNNER(ft_strsjoinf) +{ + RUN_TEST_CASE(ft_strsjoinf, basic); +} diff --git a/test/src/runner/test_runner_vec.c b/test/src/runner/test_runner_vec.c index c393bfa..5a57def 100644 --- a/test/src/runner/test_runner_vec.c +++ b/test/src/runner/test_runner_vec.c @@ -6,7 +6,7 @@ /* By: charles +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 19:55:53 by charles #+# #+# */ -/* Updated: 2020/04/04 19:36:41 by charles ### ########.fr */ +/* Updated: 2020/04/04 23:26:54 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -57,3 +57,8 @@ TEST_GROUP_RUNNER(ft_vecsort) { RUN_TEST_CASE(ft_vecsort, basic); } + +TEST_GROUP_RUNNER(ft_vecpush_safe) +{ + RUN_TEST_CASE(ft_vecpush_safe, basic); +} diff --git a/test/src/str/test_ft_strsjoin.c b/test/src/str/test_ft_strsjoin.c new file mode 100644 index 0000000..0fac07b --- /dev/null +++ b/test/src/str/test_ft_strsjoin.c @@ -0,0 +1,57 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_strsjoin.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/01 19:41:59 by charles #+# #+# */ +/* Updated: 2020/04/04 23:32:26 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_test.h" + +TEST_GROUP(ft_strsjoin); + +TEST_SETUP(ft_strsjoin) +{} + +TEST_TEAR_DOWN(ft_strsjoin) +{} + +TEST(ft_strsjoin, basic) +{ + char *join; + char *arr[] = {"bonjour", "je", "suis", NULL}; + char *arr2[] = {"", "bonjour", "", "", "", "je", "suis", NULL}; + char *null_arr[] = {NULL}; + + join = ft_strsjoin(arr, " "); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("bonjour je suis", join); + + join = ft_strsjoin(arr, "<|>"); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("bonjour<|>je<|>suis", join); + + join = ft_strsjoin(arr, ""); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("bonjourjesuis", join); + + join = ft_strsjoin(arr2, " "); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("bonjour je suis", join); + + join = ft_strsjoin(arr2, "<|>"); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("bonjour<|>je<|>suis", join); + + join = ft_strsjoin(arr2, ""); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("bonjourjesuis", join); + + join = ft_strsjoin(null_arr, "abc"); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("", join); +} diff --git a/test/src/str/test_ft_strsjoinf.c b/test/src/str/test_ft_strsjoinf.c new file mode 100644 index 0000000..d5184a9 --- /dev/null +++ b/test/src/str/test_ft_strsjoinf.c @@ -0,0 +1,87 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_strsjoinf.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/01 19:41:59 by charles #+# #+# */ +/* Updated: 2020/04/04 23:25:39 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_test.h" + +TEST_GROUP(ft_strsjoinf); + +TEST_SETUP(ft_strsjoinf) +{} + +TEST_TEAR_DOWN(ft_strsjoinf) +{} + +TEST(ft_strsjoinf, basic) +{ + char *join; + char *arr_orig[] = {"bonjour", "je", "suis", NULL}; + char *arr2_orig[] = {"", "bonjour", "", "", "", "je", "suis", NULL}; + char **null_arr; + char **arr; + char **arr2; + + size_t i; + + arr = malloc(sizeof(arr_orig)); + for (i = 0; i < sizeof(arr_orig) / sizeof(char*) - 1; i++) + arr[i] = strdup(arr_orig[i]); + arr[i] = NULL; + join = ft_strsjoinf(arr, " "); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("bonjour je suis", join); + + arr = malloc(sizeof(arr_orig)); + for (i = 0; i < sizeof(arr_orig) / sizeof(char*) - 1; i++) + arr[i] = strdup(arr_orig[i]); + arr[i] = NULL; + join = ft_strsjoinf(arr, "<|>"); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("bonjour<|>je<|>suis", join); + + arr = malloc(sizeof(arr_orig)); + for (i = 0; i < sizeof(arr_orig) / sizeof(char*) - 1; i++) + arr[i] = strdup(arr_orig[i]); + arr[i] = NULL; + join = ft_strsjoinf(arr, ""); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("bonjourjesuis", join); + + arr2 = malloc(sizeof(arr2_orig)); + for (i = 0; i < sizeof(arr2_orig) / sizeof(char*) - 1; i++) + arr2[i] = strdup(arr2_orig[i]); + arr2[i] = NULL; + join = ft_strsjoinf(arr2, " "); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("bonjour je suis", join); + + arr2 = malloc(sizeof(arr2_orig)); + for (i = 0; i < sizeof(arr2_orig) / sizeof(char*) - 1; i++) + arr2[i] = strdup(arr2_orig[i]); + arr2[i] = NULL; + join = ft_strsjoinf(arr2, "<|>"); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("bonjour<|>je<|>suis", join); + + arr2 = malloc(sizeof(arr2_orig)); + for (i = 0; i < sizeof(arr2_orig) / sizeof(char*) - 1; i++) + arr2[i] = strdup(arr2_orig[i]); + arr2[i] = NULL; + join = ft_strsjoinf(arr2, ""); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("bonjourjesuis", join); + + null_arr = malloc(sizeof(char*)); + null_arr[0] = NULL; + join = ft_strsjoinf(null_arr, "abc"); + TEST_ASSERT_NOT_NULL(join); + TEST_ASSERT_EQUAL_STRING("", join); +} diff --git a/test/src/vec/test_ft_vecpush_safe.c b/test/src/vec/test_ft_vecpush_safe.c new file mode 100644 index 0000000..8546829 --- /dev/null +++ b/test/src/vec/test_ft_vecpush_safe.c @@ -0,0 +1,45 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_vecpush_safe.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/01 19:41:59 by charles #+# #+# */ +/* Updated: 2020/04/04 23:31:08 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_test.h" + +TEST_GROUP(ft_vecpush_safe); + +TEST_SETUP(ft_vecpush_safe) +{} + +TEST_TEAR_DOWN(ft_vecpush_safe) +{} + +TEST(ft_vecpush_safe, basic) +{ + t_ftvec *vec; + + vec = ft_vecnew(1); + TEST_ASSERT_NULL(ft_vecpush_safe(vec, NULL)); + + TEST_ASSERT_NOT_NULL(ft_vecpush_safe(vec, (void*)0x1UL)); + TEST_ASSERT_EQUAL_HEX(0x1, (unsigned long)vec->data[0]); + TEST_ASSERT_GREATER_OR_EQUAL(1, vec->capacity); + TEST_ASSERT_EQUAL(1, vec->size); + + TEST_ASSERT_NULL(ft_vecpush_safe(vec, NULL)); + TEST_ASSERT_NULL(ft_vecpush_safe(vec, NULL)); + + TEST_ASSERT_NOT_NULL(ft_vecpush_safe(vec, (void*)0x2UL)); + TEST_ASSERT_EQUAL_HEX(0x2, (unsigned long)vec->data[1]); + TEST_ASSERT_GREATER_OR_EQUAL(2, vec->capacity); + TEST_ASSERT_EQUAL(2, vec->size); + + TEST_ASSERT_NULL(ft_vecpush_safe(vec, NULL)); + TEST_ASSERT_NULL(ft_vecpush_safe(vec, NULL)); +} -- cgit