diff options
Diffstat (limited to 'test/src')
| -rw-r--r-- | test/src/algo/test_ft_qsort.c | 42 | ||||
| -rw-r--r-- | test/src/runner/test_runner_algo.c | 3 |
2 files changed, 35 insertions, 10 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/runner/test_runner_algo.c b/test/src/runner/test_runner_algo.c index 8873797..f2afdb3 100644 --- a/test/src/runner/test_runner_algo.c +++ b/test/src/runner/test_runner_algo.c @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/13 21:25:52 by cacharle #+# #+# */ -/* Updated: 2020/02/13 21:37:15 by cacharle ### ########.fr */ +/* Updated: 2020/04/04 15:22:43 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -51,6 +51,7 @@ TEST_GROUP_RUNNER(ft_mergesort) TEST_GROUP_RUNNER(ft_qsort) { RUN_TEST_CASE(ft_qsort, basic); + RUN_TEST_CASE(ft_qsort, strings); } TEST_GROUP_RUNNER(ft_reverse) |
