Rejigging the DAG traversal so it is a bit more efficient
This commit is contained in:
@@ -5,14 +5,14 @@
|
||||
#include "catch.hpp"
|
||||
|
||||
TEST_CASE("DAG Construction Tests", "[dag]") {
|
||||
daggy::DAG<int> dag;
|
||||
daggy::DAG dag;
|
||||
|
||||
REQUIRE(dag.size() == 0);
|
||||
REQUIRE(dag.empty());
|
||||
|
||||
REQUIRE_NOTHROW(dag.addVertex(0));
|
||||
REQUIRE_NOTHROW(dag.addVertex());
|
||||
for (int i = 1; i < 10; ++i) {
|
||||
dag.addVertex(i);
|
||||
dag.addVertex();
|
||||
dag.addEdge(i-1, i);
|
||||
}
|
||||
|
||||
@@ -21,21 +21,14 @@ TEST_CASE("DAG Construction Tests", "[dag]") {
|
||||
|
||||
// Cannot add an edge that would result in a cycle
|
||||
REQUIRE_THROWS(dag.addEdge(9, 5));
|
||||
|
||||
SECTION("Visit State") {
|
||||
dag.setVisitState(daggy::VertexState::VISITING);
|
||||
for (const auto v : dag.getVertices()) {
|
||||
REQUIRE(dag.getVertexState(v) == daggy::VertexState::VISITING);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("DAG Traversal Tests", "[dag]") {
|
||||
daggy::DAG<int> dag;
|
||||
daggy::DAG dag;
|
||||
|
||||
const int N_VERTICES = 10;
|
||||
|
||||
for (int i = 0; i < N_VERTICES; ++i) { dag.addVertex(i); }
|
||||
for (int i = 0; i < N_VERTICES; ++i) { dag.addVertex(); }
|
||||
|
||||
/*
|
||||
0 ---------------------\
|
||||
@@ -61,7 +54,7 @@ TEST_CASE("DAG Traversal Tests", "[dag]") {
|
||||
}
|
||||
|
||||
SECTION("Baisc Traversal") {
|
||||
dag.setVisitState(daggy::VertexState::UNVISITED);
|
||||
dag.reset();
|
||||
std::vector<int> visitOrder(N_VERTICES);
|
||||
size_t i = 0;
|
||||
while (! dag.allVisited()) {
|
||||
|
||||
Reference in New Issue
Block a user