#include "c_NonrecursiveDirectedDFS.h" #include "c_Test.h" #include #include TEST_CASE(test_nonrecursive_dfs) { c_Digraph_t g; c_Digraph_Init(&g, 5, NULL); /* Construct a graph topology: 0 -> 1 -> 2 0 -> 3 4 (Isolated node) */ c_Digraph_AddEdge(&g, 0, 1); c_Digraph_AddEdge(&g, 1, 2); c_Digraph_AddEdge(&g, 0, 3); c_NonrecursiveDirectedDFS_t dfs; c_err_t err = c_NonrecursiveDirectedDFS_Init(&dfs, &g, 0, NULL); ASSERT_INT_EQ(C_SUCCESS, err); /* Assert paths */ ASSERT_TRUE(c_NonrecursiveDirectedDFS_HasPathTo(&dfs, 2, g.V)); ASSERT_TRUE(c_NonrecursiveDirectedDFS_HasPathTo(&dfs, 3, g.V)); ASSERT_FALSE(c_NonrecursiveDirectedDFS_HasPathTo(&dfs, 4, g.V)); ASSERT_INT_EQ(4, c_NonrecursiveDirectedDFS_GetCount(&dfs)); c_NonrecursiveDirectedDFS_Destroy(&dfs); c_Digraph_Destroy(&g); } int main(int argc, char** argv){ TEST_START(c_NonrecursiveDFS Component Tests); // Execution list configurations RUN_TEST(test_nonrecursive_dfs); TEST_REPORT(); RETURN_TEST_STATUS; }