#include #include #include "numbers.h" //Funktion, um nachzuprüfen, ob Test bestanden wurde void check(char *msg, int expected, int actual){ printf("%s: ", msg); printf("Erwartet: %d, Tatsächlich: %d\n", expected, actual); if(expected == actual){ printf("Test bestanden\n"); }else{ printf("Test nicht bestanden\n"); } } int main(){ //prüfen, ob len < 2 NULL zurückgibt unsigned int *numbers = createNumbers(1); check("createNumbers mit len < 2", 1, numbers == NULL); if(numbers != NULL){ free(numbers); } //prüfen, ob len = 10 ein Array zurückgibt int len = 10; numbers = createNumbers(len); check("createNumbers mit len = 10", 1, numbers != NULL); //prüfen, ob alle Zahlen zwischen 1 und 2*len liegen int OK = 1; for(int i = 0; i < len; i++){ if(numbers[i] < 1 || numbers[i] > 2*len){ OK = 0; break; } } check("Zahlenbereich bei createNumbers", 1, OK); //prüfen, ob genau eine Zahl doppelt vorkommt int duplikat = 0; for(int i = 0; i < len; i++){ for(int j = i+1; j < len; j++){ if(numbers[i] == numbers[j]){ duplikat++; } } } check("Genau ein Duplikat bei createNumbers", 1, duplikat == 1); free(numbers); //Tests getDuplicate int testArray1[] = {1,2,3,4,5,5,6,7,8,9}; int result = getDuplicate(testArray1, 10); check("getDuplicate Test 1", 5, result); int testArray2[] = {10,20,30,40,50,60,70,80,90,90}; result = getDuplicate(testArray2, 10); check("getDuplicate Test 2", 90, result); //prüfen bei ungültiger länge result = getDuplicate(testArray2, 1); check("getDuplicate mit len < 2", 0, result); return 0; }