info2Praktikum-DobleSpiel/test_numbers.c

60 lines
1.6 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include "numbers.h"
// Einfache Funktion, um zu zählen, wie oft eine Zahl im Array vorkommt
int countOccurrences(const unsigned int *arr, unsigned int len, unsigned int value) {
int count = 0;
for (unsigned int i = 0; i < len; i++) {
if (arr[i] == value) count++;
}
return count;
}
// Testfunktion für createNumbers und getDuplicate
void testNumbers(unsigned int len) {
printf("Teste mit Laenge %u:\n", len);
// Erstelle Zahlenarray
unsigned int *numbers = createNumbers(len);
if (numbers == NULL) {
printf("Fehler: Konnte Array nicht erstellen.\n");
return;
}
// Gib Array aus
printf("Generierte Zahlen: ");
for (unsigned int i = 0; i < len; i++) {
printf("%u ", numbers[i]);
}
printf("\n");
// Finde Duplikat
unsigned int duplicate = getDuplicate(numbers, len);
printf("Gefundenes Duplikat: %u\n", duplicate);
// Überprüfe, ob es genau zweimal vorkommt
int occ = countOccurrences(numbers, len, duplicate);
if (occ == 2) {
printf("Korrekte Überprüfung: %u kommt genau zweimal vor.\n", duplicate);
} else {
printf("Fehler: %u kommt %d mal vor (sollte 2 sein).\n", duplicate, occ);
}
// Speicher freigeben
free(numbers);
printf("\n");
}
int main() {
printf("Testprogramm für numbers.c\n");
printf("=========================\n\n");
// Teste mit verschiedenen Längen
testNumbers(5);
testNumbers(10);
testNumbers(20);
printf("Tests abgeschlossen.\n");
return 0;
}