aboutsummaryrefslogtreecommitdiff
path: root/test/src/algo
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-08-02 11:05:33 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-08-02 11:05:33 +0200
commit5d2f925b20ceaea4122c59d2d2c4e7d4ae991fde (patch)
tree80911dc3c32e9f230750e7e1042d413dfb6efab2 /test/src/algo
parentee32953ea79616e72f5428cdf40c834714a891c9 (diff)
parentb96b82194ccad2cddbb46b77aa1962a57c47ff44 (diff)
downloadlibft-5d2f925b20ceaea4122c59d2d2c4e7d4ae991fde.tar.gz
libft-5d2f925b20ceaea4122c59d2d2c4e7d4ae991fde.tar.bz2
libft-5d2f925b20ceaea4122c59d2d2c4e7d4ae991fde.zip
Merge branch 'master' into ft_ssl
Diffstat (limited to 'test/src/algo')
-rw-r--r--test/src/algo/test_ft_qsort.c42
1 files changed, 33 insertions, 9 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*));
+}