From 37f38cbc7d29b242a976c06e9358389ef43e4009 Mon Sep 17 00:00:00 2001 From: silvana884 Date: Thu, 11 Dec 2025 09:15:03 +0100 Subject: [PATCH] Numbers Test erfolgreich ebstanden --- makefile | 66 +++++++++++++++++++++---------------------- numbers_no_tree.o | Bin 0 -> 4953 bytes run_numbersTests.exe | Bin 0 -> 97342 bytes stack.c | 19 +++++++------ stack.o | Bin 1333 -> 1287 bytes stack_test.c | 64 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 108 insertions(+), 41 deletions(-) create mode 100644 numbers_no_tree.o create mode 100644 run_numbersTests.exe create mode 100644 stack_test.c diff --git a/makefile b/makefile index af9c318..887c59f 100644 --- a/makefile +++ b/makefile @@ -1,66 +1,66 @@ CC = gcc -FLAGS = -g -Wall -lm +FLAGS = -g -Wall -I$(unityfolder) + ifeq ($(OS),Windows_NT) - include makefile_windows.variables + include makefile_windows.variables else - UNAME = $(shell uname) - ifeq ($(UNAME),Linux) - include makefile_linux.variables - else - include makefile_mac.variables - endif + UNAME = $(shell uname) + ifeq ($(UNAME),Linux) + include makefile_linux.variables + else + include makefile_mac.variables + endif endif raylibfolder = ./raylib unityfolder = ./unity # -------------------------- -# Initiales Programm bauen (zum ausprobieren) +# Initiales Programm # -------------------------- doble_initial: $(CC) -o doble_initial $(BINARIES)/libdoble_complete.a # -------------------------- -# Selbst implementiertes Programm bauen +# Objektdateien # -------------------------- program_obj_files = stack.o bintree.o numbers.o timer.o highscore.o -doble : main.o $(program_obj_files) - $(CC) $(FLAGS) $^ -o doble +# Generische Regel für alle .o-Dateien +%.o: %.c + $(CC) $(FLAGS) -c $< -o $@ -$(program_obj_filesobj_files): %.o: %.c - $(CC) -c $(FLAGS) $^ -o $@ +# -------------------------- +# Hauptprogramm +# -------------------------- +doble: main.o $(program_obj_files) + $(CC) $(FLAGS) $^ -o doble # -------------------------- # Unit Tests # -------------------------- -unity_src = $(unityfolder)/unity.c +unitTests: + @echo "needs to be implemented" -unitTests: numbersTest stackTest bintreeTest - # ./runNumbersTest - # ./runStackTest - ./runBintreeTest +# Bintree Tests +binTreeTests: stack.o bintree.o binTreeTests.c $(unityfolder)/unity.c + $(CC) $(FLAGS) -o runbintreeTests binTreeTests.c bintree.o stack.o $(unityfolder)/unity.c -numbersTest: numbers.o bintree.o stack.o numbersTest.c $(unity_src) - $(CC) $(CFLAGS) $(LDFLAGS) -I$(unityfolder) $^ -o runNumbersTest - -stackTest: stack.o stackTest.c $(unity_src) - $(CC) $(CFLAGS) $(LDFLAGS) -I$(unityfolder) $^ -o runStackTests - -binTreeTest: bintree.o binTreeTest.c $(unity_src) stack.o - $(CC) $(CFLAGS) $(LDFLAGS) -I$(unityfolder) $^ -o runBinTreeTest - -%.o: %.c - $(CC) -c $(CFLAGS) $< -o $@ +# Numbers Tests +test_numbers: numbers_no_tree.o bintree.o stack.o test_numbers.c $(unityfolder)/unity.c + $(CC) $(FLAGS) -o run_numbersTests test_numbers.c numbers_no_tree.o bintree.o stack.o $(unityfolder)/unity.c +# Stack Tests +test_stack: stack.o test_stack.c $(unityfolder)/unity.c + $(CC) $(FLAGS) -o runstackTests test_stack.c stack.o $(unityfolder)/unity.c # -------------------------- # Clean # -------------------------- clean: ifeq ($(OS),Windows_NT) - del /f *.o doble + del /f *.o doble runstackTests run_numbersTests runbintreeTests else - rm -f *.o doble -endif \ No newline at end of file + rm -f *.o doble runstackTests run_numbersTests runbintreeTests +endif diff --git a/numbers_no_tree.o b/numbers_no_tree.o new file mode 100644 index 0000000000000000000000000000000000000000..75d7aa9fba021648c1683b4583e9e81df2362619 GIT binary patch literal 4953 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�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 znext = stack; t->data = data; return t; //Gibt den ersten StackNode des Stacks zurueck - } + //} return NULL; } @@ -27,12 +31,11 @@ StackNode *push(StackNode *stack, void *data) // freed by caller.) StackNode *pop(StackNode *stack) { - if(stack) + if(stack == NULL) { - StackNode *t = stack->next; //Naechstes Element im Stack wird erstes Element - free(stack); - return t; + return NULL; } + return stack->next; } // Returns the data of the top element. @@ -50,8 +53,8 @@ void clearStack(StackNode *stack) { while(stack) { - StackNode *tmp = stack; - stack = stack->next; + StackNode *tmp = stack; //merkt sich den momentanen obersten Knoten + stack = stack->next; //setzt den obersten Knoten auf den Zweiten im Stack free(tmp->data); free(tmp); } diff --git a/stack.o b/stack.o index 459d2c7d95a699cd6d11f3317c3499a2db4be9a3..3115f63a81a074450af2af8e9c967c806253e195 100644 GIT binary patch delta 266 zcmdnW)y~D4(#FOB0!9-#r3F6#87zzp40D*kVhqd^P1D&lfb1`f6Bntm$^eCTO+2g2 z=ri%7nwkVdDVs;PtH5jXodQ55FF;y6I$eKwG}r!MC}rOP;=h)jY{w|A;?aD>Aog&m zN9R+IPG13_0s*)J4v-NZ-3}a+XERnzR$vmHtji>>83ob|1R%N!hlJN%P8&inso&9hd33u9cyv2(cyzk{0JA#}z5r|JcKz`htZi})V@1>iMh<3Hjvy9h#sCHe6gCSJ zD@YVs45U8^L;wMZo(aS}P#WYK2_Od1Ag?J*_GAi{R{`?GKq3sCKvEpcdJ1QKoV=0g rB4g6zcxKVbGnn}pXM$OKfUF&0)&ph +#include +#include "stack.h" + +//Testfunkionen zu push, pull, top & clearStack schreiben + +void test(char *name, int condition) { + if (condition) { + printf("[OK] %s\n", name); + } else { + printf("[FAIL] %s\n", name); + } +} + +int main() { + + StackNode *stack = NULL; + + // Werte dynamisch anlegen + int *val1 = malloc(sizeof(int)); + *val1 = 5; + stack = push(stack, val1); + test("push(5) legt 5 oben auf den Stack", *(int*)stack->data == 5); + + int *val2 = malloc(sizeof(int)); + *val2 = 6; + stack = push(stack, val2); + test("push(6) legt 6 oben auf den Stack", *(int*)stack->data == 6); + + int *val3 = malloc(sizeof(int)); + *val3 = 24; + stack = push(stack, val3); + test("push(24) legt 24 oben auf den Stack", *(int*)stack->data == 24); + + // Test top() + int t = *(int*)top(stack); + test("top() liefert 24", t == 24); + + // Test pop() + StackNode *tmp; + + tmp = stack; + stack = pop(stack); + free(tmp->data); // Daten freigeben + free(tmp); // Knoten freigeben + test("pop() entfernt 24, 6 ist jetzt oben", *(int*)stack->data == 6); + + tmp = stack; + stack = pop(stack); + free(tmp->data); + free(tmp); + test("pop() entfernt 6, 5 ist jetzt oben", *(int*)stack->data == 5); + + tmp = stack; + stack = pop(stack); + free(tmp->data); + free(tmp); + test("pop() entfernt 5, Stack ist jetzt leer", stack == NULL); + + // Am Ende Stack leeren (falls noch Elemente übrig) + clearStack(stack); + + return 0; +} \ No newline at end of file