Info2-Pr-Doble-Spiel/bintree_tests.c
2025-12-11 18:09:10 +01:00

165 lines
4.0 KiB
C

#include "bintree.h"
#include "numbers.h"
#include <stdio.h>
void createTreeTest()
{
TreeNode* root = NULL;
int data1 = 1;
int data2 = 2;
int data3 = 3;
int data4 = 4;
int data5 = 5;
int dataDup = 4;
int isDuplicate = 0;
int passedTests = 0;
root = addToTree(root,&data3, sizeof(int),compareFct,&isDuplicate);
if(*(int*) root->data == data3 && isDuplicate == 0)
{ passedTests++;
printf("PASS1\n");}
root = addToTree(root,&data4, sizeof(int),compareFct,&isDuplicate);
root = addToTree(root,&data5, sizeof(int),compareFct,&isDuplicate);
root = addToTree(root,&data2, sizeof(int),compareFct,&isDuplicate);
root = addToTree(root,&data1, sizeof(int),compareFct,&isDuplicate);
if(*(int*) root->data == data3 && *(int*) root->left->left->data == data1 && *(int*)root->left->data == data2 && *(int*)root->right->right->data == data5 && *(int*)root->right->data == data4 && isDuplicate == 0)
{passedTests++;
printf("PASS2\n");
}
root = addToTree(root,&dataDup, sizeof(int),compareFct,&isDuplicate);
if(isDuplicate == 1)
{passedTests++;
printf("PASS3\n");}
if(passedTests == 3)
printf("PASS");
else
printf("FAIL");
printf("passedTests: %d\n", passedTests);
printf(" CreateBinTreeTest\n");
clearTree(root);
}
void binTreeSizeTest()
{
TreeNode* root = NULL;
int data1 = 1;
int data2 = 2;
int data3 = 3;
int data4 = 4;
int data5 = 5;
int isDuplicate = 0;
root = addToTree(root,&data3, sizeof(int),compareFct,&isDuplicate);
root = addToTree(root,&data4, sizeof(int),compareFct,&isDuplicate);
root = addToTree(root,&data5, sizeof(int),compareFct,&isDuplicate);
root = addToTree(root,&data2, sizeof(int),compareFct,&isDuplicate);
root = addToTree(root,&data1, sizeof(int),compareFct,&isDuplicate);
if(treeSize(root) == 5)
printf("PASS");
else
printf("FAIL");
printf(" CreateBinTreeSizeTest\n");
clearTree(root);
}
void nextTreeDataTest()
{
printf("Starte nextTreeDataTest \n");
TreeNode* root = NULL;
int data1 = 1;
int data2 = 2;
int data3 = 3;
int data4 = 4;
int isDuplicate = 0;
int data5 = 5;
// Baum aufbauen
root = addToTree(root, &data3, sizeof(int), compareFct, &isDuplicate);
root = addToTree(root, &data4, sizeof(int), compareFct, &isDuplicate);
root = addToTree(root, &data5, sizeof(int), compareFct, &isDuplicate);
root = addToTree(root, &data2, sizeof(int), compareFct, &isDuplicate);
root = addToTree(root, &data1, sizeof(int), compareFct, &isDuplicate);
void* receivedData;
int expectedValue;
int testPassed = 1; // Flag, um den Gesamtstatus zu verfolgen
// Test 1: Erster Aufruf mit root
expectedValue = 1;
receivedData = nextTreeData(root);
if (receivedData != NULL && *(int*)receivedData == expectedValue) {
} else {
testPassed = 0;
}
// Test 2: Zweiter Wert
expectedValue = 2;
receivedData = nextTreeData(NULL);
if (receivedData != NULL && *(int*)receivedData == expectedValue) {
} else {
testPassed = 0;
}
// Test 3: Dritter Wert
expectedValue = 3;
receivedData = nextTreeData(NULL);
if (receivedData != NULL && *(int*)receivedData == expectedValue) {
} else {
testPassed = 0;
}
// Test 4: Vierter Wert
expectedValue = 4;
receivedData = nextTreeData(NULL);
if (receivedData != NULL && *(int*)receivedData == expectedValue) {
} else {
testPassed = 0;
}
// Test 5: Fünfter Wert
expectedValue = 5;
receivedData = nextTreeData(NULL);
if (receivedData != NULL && *(int*)receivedData == expectedValue) {
} else {
testPassed = 0;
}
// Test 6: Kein weiterer Wert erwartet
receivedData = nextTreeData(NULL);
if (receivedData == NULL) {
} else {
testPassed = 0;
}
if (testPassed) {
printf("PASS");
} else {
printf("FAIL");
}
clearTree(root);
}
int main()
{
nextTreeDataTest();
createTreeTest();
binTreeSizeTest();
return 0;
}