stack Testdatei und stack.h StackNode Änderung

This commit is contained in:
Ben Skuppin 2025-12-03 22:28:51 +01:00
parent ca6a21e6b9
commit 370c89d0f3
2 changed files with 64 additions and 2 deletions

View File

@ -8,10 +8,12 @@ The latest element is taken from the stack. */
#include <stdlib.h>
//TODO: passenden Datentyp als struct anlegen
typedef struct {
typedef struct StackNode StackNode;
typedef struct StackNode {
void* value;
StackNode* prev;
} StackNode;
}StackNode;
// Pushes data as pointer onto the stack.
StackNode *push(StackNode *stack, void *data);

60
stackTests.c Normal file
View File

@ -0,0 +1,60 @@
#include <stdio.h>
#include "unity/unity.h"
#include "stack.h"
void setUp(void){}
void tearDown(void){}
void TEST_CREATE_STACK(){
int value = 4;
int* ptr = &value;
StackNode* stack = push(NULL,ptr);
TEST_ASSERT_NOT_NULL(stack);
TEST_ASSERT_EQUAL_INT(value, *(int*)(stack->value));
}
void TEST_STACK_POP() {
int value1 = 4, value2 = 2;
int* ptr = &value1;
int* ptr2 = &value2;
StackNode* stack = push(NULL,ptr);
stack = push(stack,ptr2);
stack = pop(stack);
TEST_ASSERT_EQUAL_INT(value1, *(int*)(stack->value));
}
void TEST_STACK_PUSH() {
int value1 = 4, value2 = 2;
int* ptr = &value1;
int* ptr2 = &value2;
StackNode* stack = push(NULL,ptr);
stack = push(stack,ptr2);
TEST_ASSERT_EQUAL_INT(value2, *(int*)(stack->value));
}
int main(){
UNITY_BEGIN();
printf("\n============================\nstack tests\n============================\n");
RUN_TEST(TEST_CREATE_STACK);
RUN_TEST(TEST_STACK_POP);
RUN_TEST(TEST_STACK_PUSH);
return UNITY_END();
}
//Befehl zum Kompilieren: gcc stack.c stackTests.c unity/unity.c