diff options
Diffstat (limited to 'test/mppa/sort/insertion.c')
-rw-r--r-- | test/mppa/sort/insertion.c | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/test/mppa/sort/insertion.c b/test/mppa/sort/insertion.c index 2c6065e7..88093b64 100644 --- a/test/mppa/sort/insertion.c +++ b/test/mppa/sort/insertion.c @@ -1,25 +1,31 @@ #include "../lib/prng.h" #include "../lib/types.h" -void swap(uint64_t *a, uint64_t *b){ +#ifdef __UNIT_TEST_INSERTION__ +#define SIZE 100 +#else +#include "test.h" +#endif + +void swap_ins(uint64_t *a, uint64_t *b){ uint64_t tmp = *a; *a = *b; *b = tmp; } -int insert_sort(uint64_t *res, const uint64_t *T, int size){ - if (size <= 0) +int insert_sort(uint64_t *res, const uint64_t *T){ + if (SIZE <= 0) return -1; - for (int i = 0 ; i < size ; i++) + for (int i = 0 ; i < SIZE ; i++) res[i] = T[i]; - for (int i = 0 ; i < size-1 ; i++){ + for (int i = 0 ; i < SIZE-1 ; i++){ if (res[i] > res[i+1]){ - swap(&res[i], &res[i+1]); - for (int j = i ; j > 1 ; j--) + swap_ins(&res[i], &res[i+1]); + for (int j = i ; j > 0 ; j--) if (res[j-1] > res[j]) - swap(&res[j-1], &res[j]); + swap_ins(&res[j-1], &res[j]); } } @@ -27,8 +33,6 @@ int insert_sort(uint64_t *res, const uint64_t *T, int size){ } #ifdef __UNIT_TEST_INSERTION__ -#define SIZE 100 - int main(void){ uint64_t T[SIZE]; uint64_t res[SIZE]; @@ -38,7 +42,7 @@ int main(void){ T[i] = randlong(); /* Sorting the table */ - if (insert_sort(res, T, SIZE) < 0) return -1; + if (insert_sort(res, T) < 0) return -1; /* Computing max(T) */ uint64_t max = T[0]; |