#include #include #include "numbers.h" int main() { printf("===== TEST NUMBERS =====\n"); unsigned int len = 20; unsigned int *arr = createNumbers(len); if (arr == NULL) { printf("FAIL: createNumbers returned NULL\n"); return 1; } // Check length: should contain len numbers printf("PASS: createNumbers != NULL\n"); // Count duplicates — exactly one number must appear twice int countDuplicate = 0; for (unsigned int i = 0; i < len; i++) { for (unsigned int j = i + 1; j < len; j++) { if (arr[i] == arr[j]) { countDuplicate++; } } } if (countDuplicate != 1) { printf("FAIL: Array must contain exactly one duplicate, found %d\n", countDuplicate); free(arr); return 1; } printf("PASS: exactly one duplicate\n"); unsigned int found = getDuplicate(arr, len); printf("Duplicate found by getDuplicate(): %u\n", found); if (found == 0) { printf("FAIL: getDuplicate returned 0\n"); free(arr); return 1; } printf("PASS: getDuplicate\n"); free(arr); printf("PASS: free array\n"); printf("ALL NUMBERS TESTS PASSED\n"); return 0; }