103 lines
2.9 KiB
C
103 lines
2.9 KiB
C
#include "../include/types.h"
|
|
#include "../include/radix.h"
|
|
#include "../include/quicksort.h"
|
|
#include "include/samples.h"
|
|
#include <stdio.h>
|
|
|
|
#define sample_count 64*64*64*64
|
|
|
|
int test_array_append() {
|
|
printf("lsort_array_append()...\n");
|
|
|
|
int return_code = 0;
|
|
lsort_array* array = lsort_array_create();
|
|
|
|
lsort_array_append(array, lsort_item_create(25, NULL));
|
|
lsort_array_append(array, lsort_item_create(64, NULL));
|
|
lsort_array_append(array, lsort_item_create(34, NULL));
|
|
lsort_array_append(array, lsort_item_create(74, NULL));
|
|
lsort_array_append(array, lsort_item_create(99, NULL));
|
|
lsort_array_append(array, lsort_item_create(23, NULL));
|
|
|
|
|
|
if (array->items[5]->key != 23) return_code = 1;
|
|
|
|
lsort_array_destroy(array, 1);
|
|
return return_code;
|
|
}
|
|
|
|
int test_array_swap() {
|
|
printf("lsort_array_swap()...\n");
|
|
|
|
int return_code = 0;
|
|
lsort_array* array = lsort_array_create();
|
|
|
|
lsort_array_append(array, lsort_item_create(25, NULL));
|
|
lsort_array_append(array, lsort_item_create(64, NULL));
|
|
lsort_array_append(array, lsort_item_create(34, NULL));
|
|
lsort_array_append(array, lsort_item_create(74, NULL));
|
|
lsort_array_append(array, lsort_item_create(99, NULL));
|
|
lsort_array_append(array, lsort_item_create(23, NULL));
|
|
|
|
int index_0 = array->items[0]->key;
|
|
int index_1 = array->items[1]->key;
|
|
int index_2 = array->items[2]->key;
|
|
int index_3 = array->items[3]->key;
|
|
int index_4 = array->items[4]->key;
|
|
int index_5 = array->items[5]->key;
|
|
|
|
lsort_array_swap(array, 0, 5);
|
|
lsort_array_swap(array, 4, 2);
|
|
lsort_array_swap(array, 2, 3);
|
|
|
|
if (
|
|
array->items[0]->key != index_5 ||
|
|
array->items[5]->key != index_0 ||
|
|
array->items[4]->key != index_2 ||
|
|
array->items[3]->key != index_4 ||
|
|
array->items[2]->key != index_3 ||
|
|
array->items[1]->key != index_1
|
|
) return_code = 1;
|
|
|
|
lsort_array_destroy(array, 1);
|
|
|
|
return return_code;
|
|
}
|
|
|
|
int test_radix_sort() {
|
|
printf("lsort_radix()...\n");
|
|
|
|
lsort_array* array_radix = generate_samples(sample_count);
|
|
lsort_array* array_radix_return = lsort_array_create();
|
|
int return_code = lsort_radix(array_radix, array_radix_return);
|
|
|
|
lsort_array_destroy(array_radix, 1);
|
|
return return_code;
|
|
}
|
|
|
|
int test_compare_function(lsort_item* a, lsort_item* b) {
|
|
return a->key - b->key;
|
|
}
|
|
|
|
int test_quicksort() {
|
|
printf("lsort_quicksort()...\n");
|
|
|
|
lsort_array* array_quicksort = generate_samples(sample_count);
|
|
int return_code = lsort_quicksort(array_quicksort, test_compare_function);
|
|
|
|
lsort_array_destroy(array_quicksort, 1);
|
|
return return_code;
|
|
}
|
|
|
|
int main(void) {
|
|
if (
|
|
test_array_append() ||
|
|
test_array_swap() ||
|
|
test_radix_sort() ||
|
|
test_quicksort()
|
|
) return 1;
|
|
|
|
|
|
printf("\nTest completed successfully.\n");
|
|
return 0;
|
|
} |