generated from freudenreichan/info2Praktikum-DobleSpiel
122 lines
2.3 KiB
C
122 lines
2.3 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <math.h>
|
|
#include "unity.h"
|
|
#include "stack.h"
|
|
|
|
|
|
static void pushNeuerStack(){
|
|
int wert = 2;
|
|
StackNode *tester = push(NULL,&wert);
|
|
|
|
int gespeicherterWert = *(int*)(tester->data);
|
|
TEST_ASSERT_EQUAL_INT(*(int*)(tester->data),2);
|
|
TEST_ASSERT_TRUE(tester->dannach == NULL);
|
|
|
|
|
|
clearStack(tester);
|
|
}
|
|
|
|
static void pushVorhandenerStack(){
|
|
StackNode *stack = NULL;
|
|
|
|
int a = 1;
|
|
stack = push(stack, &a);
|
|
|
|
int b = 2;
|
|
stack = push(stack,&b);
|
|
|
|
int gespeicherterWert = *(int*)(stack->data);
|
|
TEST_ASSERT_EQUAL_INT(*(int*)(stack->data),2);
|
|
TEST_ASSERT_EQUAL_INT(*(int*)(stack->dannach->data),1);
|
|
|
|
|
|
clearStack(stack);
|
|
}
|
|
|
|
|
|
void testTop(){
|
|
StackNode *stack = NULL;
|
|
|
|
int a = 1;
|
|
int b = 2;
|
|
|
|
stack = push(stack, &a);
|
|
stack = push(stack, &b);
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(2, *(int *)top(stack)); // top sollte b sein
|
|
|
|
|
|
clearStack(stack);
|
|
}
|
|
|
|
void testPop(void) {
|
|
StackNode *stack = NULL;
|
|
|
|
int a = 1;
|
|
int b = 2;
|
|
|
|
stack = push(stack, &a);
|
|
stack = push(stack, &b);
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(2, *(int *)top(stack)); // top sollte b sein
|
|
|
|
stack = pop(stack);
|
|
TEST_ASSERT_NOT_NULL(stack);
|
|
TEST_ASSERT_EQUAL_INT(1, *(int *)top(stack)); // top sollte a sein
|
|
|
|
stack = pop(stack);
|
|
TEST_ASSERT_NULL(stack); // leerer Stack nach pop
|
|
|
|
|
|
clearStack(stack);
|
|
}
|
|
|
|
void testPopLeererStack(void) {
|
|
StackNode *stack = NULL;
|
|
stack = pop(stack);
|
|
TEST_ASSERT_NULL(stack);
|
|
}
|
|
|
|
void testClearStackAllesFrei(void) {
|
|
StackNode *stack = NULL;
|
|
|
|
int *a = malloc(sizeof(int));
|
|
int *b = malloc(sizeof(int));
|
|
*a = 10;
|
|
*b = 20;
|
|
|
|
stack = push(stack, a);
|
|
stack = push(stack, b);
|
|
|
|
clearStack(stack);
|
|
|
|
TEST_ASSERT_TRUE(1); // Wenn kein Crash und Speicher sauber, gilt als bestanden
|
|
}
|
|
|
|
void setUp(void){
|
|
|
|
}
|
|
|
|
void tearDown(void){
|
|
|
|
}
|
|
|
|
|
|
|
|
int main(){
|
|
UNITY_BEGIN();
|
|
printf("\n============================\nStack tests\n============================\n");
|
|
|
|
RUN_TEST(pushNeuerStack);
|
|
RUN_TEST(pushVorhandenerStack);
|
|
RUN_TEST(testTop);
|
|
RUN_TEST(testPop);
|
|
RUN_TEST(testPopLeererStack);
|
|
RUN_TEST(testClearStackAllesFrei);
|
|
|
|
return UNITY_END();
|
|
} |