diff --git a/tests/graph/graph.cc b/tests/graph/graph.cc index 0968148c..41564404 100644 --- a/tests/graph/graph.cc +++ b/tests/graph/graph.cc @@ -22,7 +22,7 @@ TEST_CASE("testing dfs in graph") { REQUIRE(v == dfs); } -TEST_CASE("testing bfs in graph") { +TEST_CASE("testing dfs in graph [2]") { graph g("directed"); g.add_edge(1, 4); g.add_edge(4, 5); @@ -242,7 +242,7 @@ TEST_CASE("Testing operator << for graph class") { CHECK_NOTHROW(std::cout << g2 << '\n'); } -TEST_CASE("Testing bfs function for graph class") { +TEST_CASE("Testing dfs function for graph class [3]") { graph g("directed"); g.add_edge(0, 1); g.add_edge(1, 2); @@ -252,3 +252,40 @@ TEST_CASE("Testing bfs function for graph class") { std::vector path = {0, 1, 2, 3, 4}; REQUIRE(dfs_path == path); } + +TEST_CASE("Testing bfs function for graph class [1]") { + graph g("directed"); + g.add_edge(0, 1); + g.add_edge(1, 2); + g.add_edge(2, 3); + g.add_edge(3, 4); + std::vector bfs_path = g.bfs(0); + std::vector path = {0, 1, 2, 3, 4}; + REQUIRE(bfs_path == path); +} + +TEST_CASE("Testing operator = for graph class") { + graph g("directed"); + g.add_edge(0, 1); + g.add_edge(1, 2); + g.add_edge(2, 3); + g.add_edge(3, 4); + + graph g2 = g; + std::vector dfs_path = g.dfs(0); + std::vector dfs_path_2 = g2.dfs(0); + REQUIRE(dfs_path == dfs_path_2); +} + + +TEST_CASE("Testing clear function for graph class") { + graph g("directed"); + g.add_edge(0, 1); + g.add_edge(1, 2); + g.add_edge(2, 3); + g.add_edge(3, 4); + + g.clear(); + std::vector bfs_path = g.bfs(0); + REQUIRE(bfs_path.size() == 0); +} diff --git a/tests/graph/weighted_graph.cc b/tests/graph/weighted_graph.cc index d915b96f..56948591 100644 --- a/tests/graph/weighted_graph.cc +++ b/tests/graph/weighted_graph.cc @@ -253,10 +253,10 @@ TEST_CASE("Testing visualization for weighted graph class") { g.add_edge(1, 2, 5); g.add_edge(2, 4, 5); g.add_edge(4, 1, 10); - g.visualize(); + CHECK_NOTHROW(g.visualize()); } -TEST_CASE("Testing bfs for weighted graph class") { +TEST_CASE("Testing dfs for weighted graph class") { weighted_graph g("undirected"); g.add_edge(1, 2, 5); g.add_edge(2, 4, 5); @@ -265,3 +265,32 @@ TEST_CASE("Testing bfs for weighted graph class") { REQUIRE(dfs_path.size() != 0); REQUIRE(dfs_path[0] == 1); } + +TEST_CASE("Testing visualization with std::string for weighted graph class") { + weighted_graph g2("directed"); + g2.add_edge('a', 'b', 10); + g2.add_edge('b', 'c', 10); + g2.add_edge('c', 'd', 25); + CHECK_NOTHROW(g2.visualize()); +} + +TEST_CASE("Testing bfs function for weighted graph class") { + weighted_graph g("directed"); + g.add_edge(0, 1, 10); + g.add_edge(1, 2, 5); + g.add_edge(2, 3, 6); + g.add_edge(3, 4, 11); + std::vector bfs_path = g.bfs(0); + std::vector path = {0, 1, 2, 3, 4}; + REQUIRE(bfs_path == path); +} + +TEST_CASE("Testing clear function for weighted graph class") { + weighted_graph g("directed"); + g.add_edge(0, 1, 10); + g.add_edge(1, 2, 5); + g.add_edge(2, 3, 6); + g.add_edge(3, 4, 11); + std::vector bfs_path = g.bfs(0); + REQUIRE(bfs_path.size() == 0); +}