DobleSpiel/test_numbers.c
2025-12-03 13:25:27 +01:00

62 lines
1.5 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#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;
}