165 lines
4.0 KiB
C
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;
|
|
}
|