#include "../include/types.h" #include "../include/radix.h" #include "../include/quicksort.h" #include "include/samples.h" #include #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; }