generated from freudenreichan/info2Praktikum-DobleSpiel
97 lines
2.3 KiB
C
97 lines
2.3 KiB
C
#include "stack.h"
|
|
#include "unity.h"
|
|
|
|
|
|
void test_firstNodeAddedCorrectly(void) {
|
|
printf("\nStarting first test...\n");
|
|
StackNode* modelStack = malloc(sizeof(StackNode));
|
|
int modelData = 5;
|
|
modelStack->below = NULL;
|
|
modelStack->stackData = &modelData;
|
|
|
|
StackNode* testStack = NULL;
|
|
int testData = 5;
|
|
testStack = push(testStack, &testData);
|
|
TEST_ASSERT_EQUAL_INT(*(int*)modelStack->stackData, *(int*)testStack->stackData);
|
|
TEST_ASSERT_NULL(testStack->below);
|
|
clearStack(modelStack);
|
|
clearStack(testStack);
|
|
}
|
|
|
|
void test_topReturnsCorrectValues(void) {
|
|
printf("Starting second test...\n");
|
|
StackNode* testStack = NULL;
|
|
int data1 = 1;
|
|
testStack = push(testStack, &data1);
|
|
int* returnData1 = (int*) top(testStack);
|
|
int data2 = 0;
|
|
testStack = push(testStack, &data2);
|
|
int* returnData2 = (int*) top(testStack);
|
|
int data3 = 3;
|
|
testStack = push(testStack, &data3);
|
|
int* returnData3 = (int*) top(testStack);
|
|
|
|
size_t counter = 0;
|
|
if(*returnData1 == 1)
|
|
counter++;
|
|
if(*returnData2 == 0)
|
|
counter++;
|
|
if(*returnData3 == 3)
|
|
counter++;
|
|
TEST_ASSERT_EQUAL_INT(3, counter);
|
|
clearStack(testStack);
|
|
}
|
|
|
|
void test_popRemovesCorrectly(void) {
|
|
printf("Starting third test...\n");
|
|
StackNode* testStack = NULL;
|
|
int data1 = 1;
|
|
testStack = push(testStack, &data1);
|
|
int data2 = 0;
|
|
testStack = push(testStack, &data2);
|
|
int data3 = 3;
|
|
testStack = push(testStack, &data3);
|
|
int data4 = 9;
|
|
testStack = push(testStack, &data4);
|
|
|
|
int* returnData1 = (int*) top(testStack);
|
|
testStack = pop(testStack);
|
|
int* returnData2 = (int*) top(testStack);
|
|
testStack = pop(testStack);
|
|
int* returnData3 = (int*) top(testStack);
|
|
testStack = pop(testStack);
|
|
int* returnData4 = (int*) top(testStack);
|
|
testStack = pop(testStack);
|
|
|
|
size_t counter = 0;
|
|
if(*returnData1 == 9)
|
|
counter++;
|
|
if(*returnData2 == 3)
|
|
counter++;
|
|
if(*returnData3 == 0)
|
|
counter++;
|
|
if(*returnData4 == 1)
|
|
counter++;
|
|
TEST_ASSERT_EQUAL_INT(4, counter);
|
|
clearStack(testStack);
|
|
}
|
|
|
|
void setUp(void) {
|
|
|
|
}
|
|
|
|
void tearDown(void) {
|
|
|
|
}
|
|
|
|
int main(void) {
|
|
|
|
UNITY_BEGIN();
|
|
|
|
printf("\n----------------------------Stack-Tests----------------------------\n");
|
|
RUN_TEST(test_firstNodeAddedCorrectly);
|
|
RUN_TEST(test_topReturnsCorrectValues);
|
|
RUN_TEST(test_popRemovesCorrectly);
|
|
|
|
return UNITY_END();
|
|
} |