search-algorithms/test/test.cpp

80 lines
3.6 KiB
C++

#include <unity/unity.h>
#include <unity/unity_internals.h>
#include "../src/algorithm.hpp"
void setUp() { ; }
void tearDown() { ; }
Graph testGraph;
void test_GraphReadsIn(void) {
testGraph = ReadInGraph("test/input/graphPosLittle");
TEST_ASSERT_EQUAL_INT(10, testGraph.nodeCount);
}
void test_AllVerticesAdded(void) {
for (int i = 0; i < 10; i++) {
TEST_ASSERT_EQUAL_INT(i, testGraph.vertices.at(i).nodeNumber);
}
}
void test_AllEdgesAdded(void) {
// Edges for vertex 1
TEST_ASSERT_EQUAL_INT(7, testGraph.vertices.at(0).edges.at(0).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(2, testGraph.vertices.at(0).edges.at(1).destination->nodeNumber + 1);
// Edges for vertex 2
TEST_ASSERT_EQUAL_INT(7, testGraph.vertices.at(1).edges.at(0).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(5, testGraph.vertices.at(1).edges.at(1).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(1, testGraph.vertices.at(1).edges.at(2).destination->nodeNumber + 1);
// Edges for vertex 3
TEST_ASSERT_EQUAL_INT(6, testGraph.vertices.at(2).edges.at(0).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(1, testGraph.vertices.at(2).edges.at(1).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(5, testGraph.vertices.at(2).edges.at(2).destination->nodeNumber + 1);
// Edges for vertex 4
TEST_ASSERT_EQUAL_INT(8, testGraph.vertices.at(3).edges.at(0).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(10, testGraph.vertices.at(3).edges.at(1).destination->nodeNumber + 1);
// Edges for vertex 5
TEST_ASSERT_EQUAL_INT(3, testGraph.vertices.at(4).edges.at(0).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(8, testGraph.vertices.at(4).edges.at(1).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(7, testGraph.vertices.at(4).edges.at(2).destination->nodeNumber + 1);
// Edges for vertex 6
TEST_ASSERT_EQUAL_INT(3, testGraph.vertices.at(5).edges.at(0).destination->nodeNumber + 1);
// Edges for vertex 7
TEST_ASSERT_EQUAL_INT(2, testGraph.vertices.at(6).edges.at(0).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(9, testGraph.vertices.at(6).edges.at(1).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(1, testGraph.vertices.at(6).edges.at(2).destination->nodeNumber + 1);
// Edges for vertex 8
TEST_ASSERT_EQUAL_INT(5, testGraph.vertices.at(7).edges.at(0).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(4, testGraph.vertices.at(7).edges.at(1).destination->nodeNumber + 1);
// Edges for vertex 9
TEST_ASSERT_EQUAL_INT(6, testGraph.vertices.at(8).edges.at(0).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(10, testGraph.vertices.at(8).edges.at(1).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(7, testGraph.vertices.at(8).edges.at(2).destination->nodeNumber + 1);
// Edges for vertex 10
TEST_ASSERT_EQUAL_INT(4, testGraph.vertices.at(9).edges.at(0).destination->nodeNumber + 1);
TEST_ASSERT_EQUAL_INT(9, testGraph.vertices.at(9).edges.at(1).destination->nodeNumber + 1);
}
void test_BFS(void) {
}
void test_DFS(void) {
testGraph = ReadInGraph("test/input/graphGenerated");
std::vector<Vertex*> solution = CleanSolution(DFS(testGraph, 0, 9));
TEST_ASSERT_EQUAL_INT(9, solution.at(4));
TEST_ASSERT_EQUAL_INT(7, solution.at(3));
TEST_ASSERT_EQUAL_INT(3, solution.at(2));
TEST_ASSERT_EQUAL_INT(1, solution.at(1));
TEST_ASSERT_EQUAL_INT(0, solution.at(0));
}
int main(void) {
UNITY_BEGIN();
RUN_TEST(test_GraphReadsIn);
RUN_TEST(test_AllVerticesAdded);
RUN_TEST(test_AllEdgesAdded);
RUN_TEST(test_DFS);
return UNITY_END();
}