From 3240c5187687fcf67b95bff8909c79981e86bb0e Mon Sep 17 00:00:00 2001 From: "dietrichsi98865@th-nuernberg.de" Date: Thu, 11 Dec 2025 09:20:29 +0100 Subject: [PATCH] =?UTF-8?q?Unittest=20f=C3=BCr=20numbers=20geschrieben=20u?= =?UTF-8?q?nd=20bestanden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- makefile | 6 +++++ numberstest.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 numberstest.c diff --git a/makefile b/makefile index 674e6ea..8f56f03 100644 --- a/makefile +++ b/makefile @@ -41,9 +41,15 @@ unitTests: stacktest test_stack: stacktest.o stack.o $(CC) $(FLAGS) $^ -o stacktest +test_numbers: numberstest.o numbers.o + $(CC) $(FLAGS) $^ -o numberstest + test_stack.o: stacktest.c $(CC) -c $(FLAGS) $< -o $@ +test_numbers.o: numberstest.c + $(CC) -c $(FLAGS) $< -o $@ + # -------------------------- # Clean # -------------------------- diff --git a/numberstest.c b/numberstest.c new file mode 100644 index 0000000..458a51b --- /dev/null +++ b/numberstest.c @@ -0,0 +1,61 @@ +#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; +} \ No newline at end of file