#include #include #include #include "numbers.h" void test_create_numbers() { printf("Teste createNumbers...\n"); unsigned int len = 100; unsigned int *nums = createNumbers(len); assert(nums != NULL); // Prüfen, ob genau ein Duplikat vorhanden ist int duplicates = 0; for (unsigned int i = 0; i < len; i++) { for (unsigned int j = i + 1; j < len; j++) { if (nums[i] == nums[j]) { duplicates++; } } } // Es darf genau ein Paar geben, also duplicates == 1 if (duplicates != 1) { printf("FEHLER: Erwartet wurde genau 1 Duplikat, gefunden wurden %d.\n", duplicates); } assert(duplicates == 1); free(nums); printf("createNumbers erfolgreich.\n"); } void test_get_duplicate() { printf("Teste getDuplicate...\n"); // Testfall 1: 3 ist doppelt unsigned int arr[] = {1, 5, 8, 3, 9, 3, 2}; unsigned int len = sizeof(arr) / sizeof(arr[0]); unsigned int dup = getDuplicate(arr, len); if (dup != 3) { printf("FEHLER: Erwartet 3, erhalten %u\n", dup); } assert(dup == 3); // Testfall 2: 40 ist doppelt unsigned int arr2[] = {10, 20, 30, 40, 40}; unsigned int len2 = sizeof(arr2) / sizeof(arr2[0]); dup = getDuplicate(arr2, len2); if (dup != 40) { printf("FEHLER: Erwartet 40, erhalten %u\n", dup); } assert(dup == 40); printf("getDuplicate erfolgreich.\n"); } int main() { test_create_numbers(); test_get_duplicate(); return 0; }