#include "c_QuickSortIterative.h" #include #include #define EXPECT_TRUE(cond, msg) \ do { \ if (!(cond)) { printf(" [X] Failed Assertion: %s\n", msg); return false; } \ } while(0) typedef struct { int uid; int priority; } ThreadTask; int compareTasks(const void* a, const void* b) { const ThreadTask* t1 = (const ThreadTask*)a; const ThreadTask* t2 = (const ThreadTask*)b; return (t1->priority - t2->priority); } int comparePlainInts(const void* a, const void* b) { return (*(int*)a - *(int*)b); } // Test 1: Sorting a highly unsorted, random layout sequence bool test_iterative_qsort_random(void) { int datasets[] = { 42, 12, 89, 23, 7, 56, 34, 91, 15, 68 }; c_size_t total = sizeof(datasets) / sizeof(datasets); c_QuickSortIterative(datasets, total, sizeof(int), comparePlainInts); for (c_size_t i = 0; i < total - 1; i++) { EXPECT_TRUE(datasets[i] <= datasets[i+1], "Iterative sorting sequence tracking error occurred"); } return true; } // Test 2: Multi-field structure priority scheduling validation bool test_iterative_qsort_struct(void) { ThreadTask tasks[] = { { 1001, 5 }, { 1002, 1 }, { 1003, 9 }, { 1004, 3 }, { 1005, 5 } }; c_size_t count = sizeof(tasks) / sizeof(tasks); c_QuickSortIterative(tasks, count, sizeof(ThreadTask), compareTasks); for (c_size_t i = 0; i < count - 1; i++) { EXPECT_TRUE(tasks[i].priority <= tasks[i+1].priority, "Struct elements misaligned during iterative stack operations"); } return true; } // Testing Execution Entry Driver int main(void) { printf("=== Starting Framework Unit Testing: Iterative Quicksort ===\n"); if (test_iterative_qsort_random()) printf(" [PASS] Test 1: Random Disordered Data Array Sorted Successfully\n"); if (test_iterative_qsort_struct()) printf(" [PASS] Test 2: Complex Struct Priority Segments Sorted Successfully\n"); printf("=== System Verification Sequence Completed ===\n"); return 0; }