Make the heapsort test comparison work..
This commit is contained in:
+18
-5
@@ -37,6 +37,19 @@ void print_stuff(const struct Stuff *s, size_t len)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int cmp_stuff_array(const struct Stuff *a, const struct Stuff *b, size_t len)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
for (i = 0; i < len; i++) {
|
||||||
|
if (strcmp(a[i].text, b[i].text) != 0)
|
||||||
|
return -1;
|
||||||
|
if (a[i].order != b[i].order)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST (test_heapsort_odd)
|
START_TEST (test_heapsort_odd)
|
||||||
struct Stuff unordered[] = {
|
struct Stuff unordered[] = {
|
||||||
{"2", 2},
|
{"2", 2},
|
||||||
@@ -56,8 +69,8 @@ START_TEST (test_heapsort_odd)
|
|||||||
|
|
||||||
uc_heapsort(unordered, ARRAY_SIZE(unordered), sizeof(struct Stuff),
|
uc_heapsort(unordered, ARRAY_SIZE(unordered), sizeof(struct Stuff),
|
||||||
cmp_stuff, swap_stuff, NULL);
|
cmp_stuff, swap_stuff, NULL);
|
||||||
//print_stuff(unordered, ARRAY_SIZE(unordered));
|
print_stuff(unordered, ARRAY_SIZE(unordered));
|
||||||
fail_if(memcmp(unordered, ordered, sizeof unordered) != 0);
|
fail_if(cmp_stuff_array(unordered, ordered, ARRAY_SIZE(unordered)) != 0);
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
START_TEST (test_heapsort_even)
|
START_TEST (test_heapsort_even)
|
||||||
@@ -81,7 +94,7 @@ START_TEST (test_heapsort_even)
|
|||||||
|
|
||||||
uc_heapsort(unordered, ARRAY_SIZE(unordered), sizeof(struct Stuff),
|
uc_heapsort(unordered, ARRAY_SIZE(unordered), sizeof(struct Stuff),
|
||||||
cmp_stuff, swap_stuff, NULL);
|
cmp_stuff, swap_stuff, NULL);
|
||||||
fail_if(memcmp(unordered, ordered, sizeof unordered) != 0);
|
fail_if(cmp_stuff_array(unordered, ordered, ARRAY_SIZE(unordered)) != 0);
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
START_TEST (test_heapsort_zero)
|
START_TEST (test_heapsort_zero)
|
||||||
@@ -105,11 +118,11 @@ START_TEST (test_heapsort_zero)
|
|||||||
|
|
||||||
uc_heapsort(unordered, 0, sizeof(struct Stuff),
|
uc_heapsort(unordered, 0, sizeof(struct Stuff),
|
||||||
cmp_stuff, swap_stuff, NULL);
|
cmp_stuff, swap_stuff, NULL);
|
||||||
fail_if(memcmp(unordered, same, sizeof unordered) != 0);
|
fail_if(cmp_stuff_array(unordered, same, ARRAY_SIZE(unordered)) != 0);
|
||||||
|
|
||||||
uc_heapsort(unordered, ARRAY_SIZE(unordered), 0,
|
uc_heapsort(unordered, ARRAY_SIZE(unordered), 0,
|
||||||
cmp_stuff, swap_stuff, NULL);
|
cmp_stuff, swap_stuff, NULL);
|
||||||
fail_if(memcmp(unordered, same, sizeof unordered) != 0);
|
fail_if(cmp_stuff_array(unordered, same, ARRAY_SIZE(unordered)) != 0);
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
Suite *heapsort_suite(void)
|
Suite *heapsort_suite(void)
|
||||||
|
|||||||
Reference in New Issue
Block a user