diff options
Diffstat (limited to 'test/src')
59 files changed, 1872 insertions, 374 deletions
diff --git a/test/src/algo/test_ft_qsort.c b/test/src/algo/test_ft_qsort.c index 25a5ef6..00062b0 100644 --- a/test/src/algo/test_ft_qsort.c +++ b/test/src/algo/test_ft_qsort.c @@ -8,19 +8,43 @@ TEST_SETUP(ft_qsort) TEST_TEAR_DOWN(ft_qsort) {} -static int compar(const void *a, const void *b) -{ - return *(int*)a - *(int*)b; -} - TEST(ft_qsort, basic) { int arr[] = {3, 4, 1, 2, 7, 189, -1, -134, 7, 1, 34}; int sorted_arr[sizeof(arr)]; - memcpy(sorted_arr, arr, sizeof(arr)); - qsort(sorted_arr, sizeof(arr) / sizeof(int), sizeof(int), compar); - - ft_qsort(arr, sizeof(arr) / sizeof(int), sizeof(int), compar); + qsort(sorted_arr, sizeof(arr) / sizeof(int), sizeof(int), ft_compar_int); + ft_qsort(arr, sizeof(arr) / sizeof(int), sizeof(int), ft_compar_int); TEST_ASSERT_EQUAL_INT_ARRAY(sorted_arr, arr, sizeof(arr) / sizeof(int)); } + +TEST(ft_qsort, strings) +{ + char *arr[] = {"zzz", "fff", "aaa"}; + char *sorted[sizeof(arr)]; + memcpy(sorted, arr, sizeof(arr)); + qsort(sorted, sizeof(arr) / sizeof(char*), sizeof(char*), ft_compar_str); + ft_qsort(arr, sizeof(arr) / sizeof(char*), sizeof(char*), ft_compar_str); + TEST_ASSERT_EQUAL_STRING_ARRAY(sorted, arr, sizeof(arr) / sizeof(char*)); + + char *arr2[] = {"abcdef", "abcde", "abcd", "abc", "ab", "a", ""}; + char *sorted2[sizeof(arr2)]; + memcpy(sorted2, arr2, sizeof(arr2)); + qsort(sorted2, sizeof(arr2) / sizeof(char*), sizeof(char*), ft_compar_str); + ft_qsort(arr2, sizeof(arr2) / sizeof(char*), sizeof(char*), ft_compar_str); + TEST_ASSERT_EQUAL_STRING_ARRAY(sorted2, arr2, sizeof(arr2) / sizeof(char*)); + + char *arr3[] = {"", "a", "ab", "abc", "abcd", "abcde", "abcdef"}; + char *sorted3[sizeof(arr3)]; + memcpy(sorted3, arr3, sizeof(arr3)); + qsort(sorted3, sizeof(arr3) / sizeof(char*), sizeof(char*), ft_compar_str); + ft_qsort(arr3, sizeof(arr3) / sizeof(char*), sizeof(char*), ft_compar_str); + TEST_ASSERT_EQUAL_STRING_ARRAY(sorted3, arr3, sizeof(arr3) / sizeof(char*)); + + char *arr4[] = {"ast.c", "z.c", "path.c", "main.c", "utils.c", "preprocess.c", "env.c"}; + char *sorted4[sizeof(arr4)]; + memcpy(sorted4, arr4, sizeof(arr4)); + qsort(sorted4, sizeof(arr4) / sizeof(char*), sizeof(char*), ft_compar_str); + ft_qsort(arr4, sizeof(arr4) / sizeof(char*), sizeof(char*), ft_compar_str); + TEST_ASSERT_EQUAL_STRING_ARRAY(sorted4, arr4, sizeof(arr4) / sizeof(char*)); +} diff --git a/test/src/dstr/test_ft_dstrdestroy.c b/test/src/dstr/test_ft_dstrdestroy.c new file mode 100644 index 0000000..1a6cb41 --- /dev/null +++ b/test/src/dstr/test_ft_dstrdestroy.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_dstrdestroy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/01 19:41:59 by charles #+# #+# */ +/* Updated: 2020/04/04 21:04:51 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_test.h" + +TEST_GROUP(ft_dstrdestroy); + +TEST_SETUP(ft_dstrdestroy) +{} + +TEST_TEAR_DOWN(ft_dstrdestroy) +{} + +TEST(ft_dstrdestroy, basic) +{ + TEST_PASS(); +} diff --git a/test/src/dstr/test_ft_dstrerase.c b/test/src/dstr/test_ft_dstrerase.c new file mode 100644 index 0000000..01ed560 --- /dev/null +++ b/test/src/dstr/test_ft_dstrerase.c @@ -0,0 +1,69 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_dstrerase.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/01 19:41:59 by charles #+# #+# */ +/* Updated: 2020/04/05 01:02:40 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_test.h" + +TEST_GROUP(ft_dstrerase); + +TEST_SETUP(ft_dstrerase) +{} + +TEST_TEAR_DOWN(ft_dstrerase) +{} + +TEST(ft_dstrerase, basic) +{ + t_ftdstr *dstr; + + dstr = ft_dstrnew("bonjour"); + ft_dstrerase(dstr, 0, 0); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_EQUAL(7, dstr->length); + TEST_ASSERT_EQUAL(8, dstr->capacity); + TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str); + + ft_dstrerase(dstr, 2, 0); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_EQUAL(7, dstr->length); + TEST_ASSERT_EQUAL(8, dstr->capacity); + TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str); + + ft_dstrerase(dstr, 2, 1); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_EQUAL(6, dstr->length); + TEST_ASSERT_EQUAL(8, dstr->capacity); + TEST_ASSERT_EQUAL_STRING("bojour", dstr->str); + + ft_dstrerase(dstr, 6, 1); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_EQUAL(6, dstr->length); + TEST_ASSERT_EQUAL(8, dstr->capacity); + TEST_ASSERT_EQUAL_STRING("bojour", dstr->str); + + ft_dstrerase(dstr, 5, 1); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_EQUAL(5, dstr->length); + TEST_ASSERT_EQUAL(8, dstr->capacity); + TEST_ASSERT_EQUAL_STRING("bojou", dstr->str); + + ft_dstrerase(dstr, 0, 2); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_EQUAL(3, dstr->length); + TEST_ASSERT_EQUAL(8, dstr->capacity); + TEST_ASSERT_EQUAL_STRING("jou", dstr->str); + + ft_dstrerase(dstr, 0, 10); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_EQUAL(0, dstr->length); + TEST_ASSERT_EQUAL(8, dstr->capacity); + TEST_ASSERT_EQUAL_STRING("", dstr->str); +} diff --git a/test/src/dstr/test_ft_dstrgrow.c b/test/src/dstr/test_ft_dstrgrow.c new file mode 100644 index 0000000..1e3edb6 --- /dev/null +++ b/test/src/dstr/test_ft_dstrgrow.c @@ -0,0 +1,52 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_dstrgrow.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/01 19:41:59 by charles #+# #+# */ +/* Updated: 2020/04/04 21:12:16 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_test.h" + +TEST_GROUP(ft_dstrgrow); + +TEST_SETUP(ft_dstrgrow) +{} + +TEST_TEAR_DOWN(ft_dstrgrow) +{} + +TEST(ft_dstrgrow, basic) +{ + t_ftdstr *dstr; + + dstr = ft_dstrnew("bonjour"); + TEST_ASSERT_NOT_NULL(ft_dstrgrow(dstr, 3)); + TEST_ASSERT_GREATER_OR_EQUAL(3, dstr->capacity - 1); + TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str); + TEST_ASSERT_EQUAL(strlen("bonjour"), dstr->length); + + TEST_ASSERT_NOT_NULL(ft_dstrgrow(dstr, 16)); + TEST_ASSERT_GREATER_OR_EQUAL(16, dstr->capacity - 1); + TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str); + TEST_ASSERT_EQUAL(strlen("bonjour"), dstr->length); + + TEST_ASSERT_NOT_NULL(ft_dstrgrow(dstr, 8)); + TEST_ASSERT_GREATER_OR_EQUAL(8, dstr->capacity - 1); + TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str); + TEST_ASSERT_EQUAL(strlen("bonjour"), dstr->length); + + TEST_ASSERT_NOT_NULL(ft_dstrgrow(dstr, 20)); + TEST_ASSERT_GREATER_OR_EQUAL(20, dstr->capacity - 1); + TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str); + TEST_ASSERT_EQUAL(strlen("bonjour"), dstr->length); + + TEST_ASSERT_NOT_NULL(ft_dstrgrow(dstr, 32)); + TEST_ASSERT_GREATER_OR_EQUAL(32, dstr->capacity - 1); + TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str); + TEST_ASSERT_EQUAL(strlen("bonjour"), dstr->length); +} diff --git a/test/src/dstr/test_ft_dstrinsert.c b/test/src/dstr/test_ft_dstrinsert.c new file mode 100644 index 0000000..61f407c --- /dev/null +++ b/test/src/dstr/test_ft_dstrinsert.c @@ -0,0 +1,59 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_dstrinsert.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/01 19:41:59 by charles #+# #+# */ +/* Updated: 2020/04/04 21:21:51 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_test.h" + +TEST_GROUP(ft_dstrinsert); + +TEST_SETUP(ft_dstrinsert) +{} + +TEST_TEAR_DOWN(ft_dstrinsert) +{} + +TEST(ft_dstrinsert, basic) +{ + t_ftdstr *dstr; + + dstr = ft_dstrnew(""); + + TEST_ASSERT_NULL(ft_dstrinsert(dstr, "", 1)); + TEST_ASSERT_NULL(ft_dstrinsert(dstr, "test", 1)); + TEST_ASSERT_NULL(ft_dstrinsert(dstr, "", 5)); + TEST_ASSERT_NULL(ft_dstrinsert(dstr, "test", 5)); + + TEST_ASSERT_NOT_NULL(ft_dstrinsert(dstr, "bonjour", 0)); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL_STRING("bonjour", dstr->str); + TEST_ASSERT_EQUAL(strlen(dstr->str), dstr->length); + TEST_ASSERT_GREATER_THAN(strlen(dstr->str), dstr->capacity); + + TEST_ASSERT_NULL(ft_dstrinsert(dstr, "abc", 8)); + + TEST_ASSERT_NOT_NULL(ft_dstrinsert(dstr, "{{{", 0)); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL_STRING("{{{bonjour", dstr->str); + TEST_ASSERT_EQUAL(strlen(dstr->str), dstr->length); + TEST_ASSERT_GREATER_THAN(strlen(dstr->str), dstr->capacity); + + TEST_ASSERT_NOT_NULL(ft_dstrinsert(dstr, "]]]", dstr->length)); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL_STRING("{{{bonjour]]]", dstr->str); + TEST_ASSERT_EQUAL(strlen(dstr->str), dstr->length); + TEST_ASSERT_GREATER_THAN(strlen(dstr->str), dstr->capacity); + + TEST_ASSERT_NOT_NULL(ft_dstrinsert(dstr, "<>", 6)); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL_STRING("{{{bon<>jour]]]", dstr->str); + TEST_ASSERT_EQUAL(strlen(dstr->str), dstr->length); + TEST_ASSERT_GREATER_THAN(strlen(dstr->str), dstr->capacity); +} diff --git a/test/src/dstr/test_ft_dstrnew.c b/test/src/dstr/test_ft_dstrnew.c new file mode 100644 index 0000000..33024e4 --- /dev/null +++ b/test/src/dstr/test_ft_dstrnew.c @@ -0,0 +1,60 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_dstrnew.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/01 19:41:59 by charles #+# #+# */ +/* Updated: 2020/04/04 21:03:25 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_test.h" + +TEST_GROUP(ft_dstrnew); + +TEST_SETUP(ft_dstrnew) +{} + +TEST_TEAR_DOWN(ft_dstrnew) +{} + +TEST(ft_dstrnew, basic) +{ + t_ftdstr *dstr; + + dstr = ft_dstrnew(""); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL_STRING("", dstr->str); + TEST_ASSERT_EQUAL(1, dstr->capacity); + TEST_ASSERT_EQUAL(0, dstr->length); + ft_dstrdestroy(dstr); + + dstr = ft_dstrnew("abc"); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL_STRING("abc", dstr->str); + TEST_ASSERT_EQUAL(strlen("abc") + 1, dstr->capacity); + TEST_ASSERT_EQUAL(strlen("abc"), dstr->length); + ft_dstrdestroy(dstr); + + dstr = ft_dstrnew("hidden\0text"); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL_STRING("hidden\0text", dstr->str); + TEST_ASSERT_EQUAL(strlen("hidden") + 1, dstr->capacity); + TEST_ASSERT_EQUAL(strlen("hidden"), dstr->length); + ft_dstrdestroy(dstr); + + char *long_string = "asdkfjasl;asdjiojxocijioajsdfopijasdofijasiodfjaospidj"\ + "fopiasjdfoijasdopifjaspoidjfopiasjdfpoiajsdfoijd"; + dstr = ft_dstrnew(long_string); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL_STRING(long_string, dstr->str); + TEST_ASSERT_EQUAL(strlen(long_string) + 1, dstr->capacity); + TEST_ASSERT_EQUAL(strlen(long_string), dstr->length); + ft_dstrdestroy(dstr); +} diff --git a/test/src/dstr/test_ft_dstrsubstitute.c b/test/src/dstr/test_ft_dstrsubstitute.c new file mode 100644 index 0000000..d81b944 --- /dev/null +++ b/test/src/dstr/test_ft_dstrsubstitute.c @@ -0,0 +1,64 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_dstrsubstitute.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/01 19:41:59 by charles #+# #+# */ +/* Updated: 2020/04/05 01:09:47 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_test.h" + +TEST_GROUP(ft_dstrsubstitute); + +TEST_SETUP(ft_dstrsubstitute) +{} + +TEST_TEAR_DOWN(ft_dstrsubstitute) +{} + +TEST(ft_dstrsubstitute, basic) +{ + t_ftdstr *dstr; + + dstr = ft_dstrnew("bonjour"); + TEST_ASSERT_NULL(ft_dstrsubstitute(dstr, "bonjour", 8, 1)); + + TEST_ASSERT_NOT_NULL(ft_dstrsubstitute(dstr, "{{{", 0, 0)); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL(10, dstr->length); + TEST_ASSERT_GREATER_OR_EQUAL(11, dstr->capacity); + TEST_ASSERT_EQUAL_STRING("{{{bonjour", dstr->str); + + TEST_ASSERT_NOT_NULL(ft_dstrsubstitute(dstr, "]]]", dstr->length, 0)); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL(13, dstr->length); + TEST_ASSERT_GREATER_OR_EQUAL(14, dstr->capacity); + TEST_ASSERT_EQUAL_STRING("{{{bonjour]]]", dstr->str); + + TEST_ASSERT_NOT_NULL(ft_dstrsubstitute(dstr, "aurevoir", 3, 7)); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL(14, dstr->length); + TEST_ASSERT_GREATER_OR_EQUAL(15, dstr->capacity); + TEST_ASSERT_EQUAL_STRING("{{{aurevoir]]]", dstr->str); + + TEST_ASSERT_NOT_NULL(ft_dstrsubstitute(dstr, "<>", 0, dstr->length)); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL(2, dstr->length); + TEST_ASSERT_GREATER_OR_EQUAL(3, dstr->capacity); + TEST_ASSERT_EQUAL_STRING("<>", dstr->str); + + TEST_ASSERT_NOT_NULL(ft_dstrsubstitute(dstr, "<>", 0, dstr->length)); + TEST_ASSERT_NOT_NULL(dstr); + TEST_ASSERT_NOT_NULL(dstr->str); + TEST_ASSERT_EQUAL(2, dstr->length); + TEST_ASSERT_GREATER_OR_EQUAL(3, dstr->capacity); + TEST_ASSERT_EQUAL_STRING("<>", dstr->str); +} diff --git a/test/src/dstr/test_ft_dstrunwrap.c b/test/src/dstr/test_ft_dstrunwrap.c new file mode 100644 index 0000000..dbc334a --- /dev/null +++ b/test/src/dstr/test_ft_dstrunwrap.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* test_ft_dstrunwrap.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/01 19:41:59 by charles #+# #+# */ +/* Updated: 2020/04/04 21:07:16 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_test.h" + +TEST_GROUP(ft_dstrunwrap); + +TEST_SETUP(ft_dstrunwrap) +{} + +TEST_TEAR_DOWN(ft_dstrunwrap) +{} + +TEST(ft_dstrunwrap, basic) +{ + t_ftdstr *dstr; + char *ret; + + dstr = ft_dstrnew("bonjour"); + ret = ft_dstrunwrap(dstr); + TEST_ASSERT_NOT_NULL(ret); + TEST_ASSERT_EQUAL_STRING("bonjour", ret); + + dstr = ft_dstrnew(""); + ret = ft_dstrunwrap(dstr); + TEST_ASSERT_NOT_NULL(ret); + TEST_ASSERT_EQUAL_STRING("", ret); + + dstr = ft_dstrnew("hidden\0text"); + ret = ft_dstrunwrap(dstr); + TEST_ASSERT_NOT_NULL(ret); + TEST_ASSERT_EQUAL_STRING("hidden", ret); +} diff --git a/test/src/ht/test_ft_htdelone.c b/test/src/ht/test_ft_htdelone.c index 3bc0922..a64b34e 100644 --- a/test/src/ht/test_ft_htdelone.c +++ b/test/src/ht/test_ft_htdelone.c @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/19 02:08:00 by cacharle #+# #+# */ -/* Updated: 2020/02/19 02:46:10 by cacharle ### ########.fr */ +/* Updated: 2020/04/03 07:08:38 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,23 +20,17 @@ TEST_SETUP(ft_htdelone) TEST_TEAR_DOWN(ft_htdelone) {} -static void st_del(t_ftht_content *v) -{ - free(v->key); - free(v); |
