diff --git a/alib2algo/src/graph/shortestpath/BellmanFord.cpp b/alib2algo/src/graph/shortestpath/BellmanFord.cpp index 8f16e2312253bedae0353f69e6e4eb3056a97cdc..85c3f35fc797ca656e78852f6b7382742aa7f1b3 100644 --- a/alib2algo/src/graph/shortestpath/BellmanFord.cpp +++ b/alib2algo/src/graph/shortestpath/BellmanFord.cpp @@ -104,8 +104,7 @@ static BellmanFord::Result bellmanford_impl(const UndirectedGraph &graph, const BellmanFord::Result BellmanFord::bellmanford(const Graph &graph, const Node &start) { - Data data; - data.start = start; + Data data = {start, BellmanFord::Result {}}; graph.getData().Accept(static_cast<void*>(&data), BELLMAN_FORD); return data.out; } diff --git a/alib2algo/src/graph/shortestpath/Dijkstra.cpp b/alib2algo/src/graph/shortestpath/Dijkstra.cpp index 098b5abfd7ef1f96ed68623e1157c4d64b77cbac..bb1ef7dc86737cb945b4a859186f8013f16fc25e 100644 --- a/alib2algo/src/graph/shortestpath/Dijkstra.cpp +++ b/alib2algo/src/graph/shortestpath/Dijkstra.cpp @@ -120,8 +120,7 @@ static Dijkstra::Result dijkstra_impl(const T &graph, const Node &start) Dijkstra::Result Dijkstra::dijkstra(const Graph &graph, const Node &start) { - Data data; - data.start = start; + Data data = {start, Dijkstra::Result {}}; graph.getData().Accept(static_cast<void*>(&data), DIJKSTRA); return data.out; } diff --git a/alib2algo/src/graph/spanningtree/JarnikPrim.cpp b/alib2algo/src/graph/spanningtree/JarnikPrim.cpp index 61835e6a75c6eea197cff1c62e22eefb35224f0f..28f55bfbbe5c6b13763ba5ea54762ef02b02df59 100644 --- a/alib2algo/src/graph/spanningtree/JarnikPrim.cpp +++ b/alib2algo/src/graph/spanningtree/JarnikPrim.cpp @@ -88,7 +88,10 @@ static UndirectedGraph jarnikprim_impl(const UndirectedGraph &graph, const Node int &dist = d[v]; if (q.find(Value(v, dist)) != q.end() && w[u][v] < dist) { q.erase(q.find(Value(v, dist))); - p[v] = u; + + if(p.find(v) == p.end()) p.insert(std::make_pair(v, u)); + else p.find(v)->second = u; + dist = w[u][v]; q.insert(Value(v, dist)); } diff --git a/alib2algo/src/graph/traverse/Bfs.cpp b/alib2algo/src/graph/traverse/Bfs.cpp index e951bd4d76474b575a845e1a7b5de646735125ff..19e60188d13ac79303fea67ff733351b2e0e6ec3 100644 --- a/alib2algo/src/graph/traverse/Bfs.cpp +++ b/alib2algo/src/graph/traverse/Bfs.cpp @@ -50,18 +50,19 @@ static void bfs2_impl(const T &graph, const Node &start, Bfs::FunctionExt func) q.push(start); distances[start] = 0; + predecessors.insert(std::make_pair(start, start)); while (!q.empty()) { Node n = q.front(); q.pop(); - if (!func(n, predecessors[n], distances[n])) { + if (!func(n, predecessors.find(n)->second, distances.find(n)->second)) { return; } for (const Node &e : graph.neighbors(n)) { if (distances.find(e) == distances.end()) { distances[e] = distances.at(n) + 1; - predecessors[e] = n; + predecessors.insert(std::make_pair(e, n)); q.push(e); } } diff --git a/alib2algo/src/graph/traverse/Dfs.cpp b/alib2algo/src/graph/traverse/Dfs.cpp index 1bef737f5c6fddcf1d87397beed76a1a28029127..2aa7fe3100ddcdc338b98495ffcefd10203ecce4 100644 --- a/alib2algo/src/graph/traverse/Dfs.cpp +++ b/alib2algo/src/graph/traverse/Dfs.cpp @@ -79,7 +79,7 @@ void Dfs::dfs(const DirectedGraph &graph, const Node &start, Dfs::FunctionExt fu { int time = 0; std::unordered_map<Node, bool> visited; - dfs2_impl(graph, start, Node(), visited, time, func); + dfs2_impl(graph, start, start, visited, time, func); } void Dfs::dfs(const UndirectedGraph &graph, const Node &start, Dfs::Function func) @@ -91,7 +91,7 @@ void Dfs::dfs(const UndirectedGraph &graph, const Node &start, Dfs::FunctionExt { int time = 0; std::unordered_map<Node, bool> visited; - dfs2_impl(graph, start, Node(), visited, time, func); + dfs2_impl(graph, start, start, visited, time, func); } void Dfs::Visit(void *data, const DirectedGraph &graph) const diff --git a/alib2algo/test-src/graph/spanningtree/JarnikPrimTest.cpp b/alib2algo/test-src/graph/spanningtree/JarnikPrimTest.cpp index e1378e27639b24749e0c2289d8b111927b304863..26120004d8ccc8048041871432140a114bed3fbe 100644 --- a/alib2algo/test-src/graph/spanningtree/JarnikPrimTest.cpp +++ b/alib2algo/test-src/graph/spanningtree/JarnikPrimTest.cpp @@ -38,6 +38,9 @@ void GraphJarnikPrimTest::testSpanningTree1() expected.addEdge(graph::UndirectedEdge(n4, n6), 4); expected.addEdge(graph::UndirectedEdge(n6, n3), 2); + std::cout << expected << std::endl; + std::cout << res << std::endl; + CPPUNIT_ASSERT(expected == res); } diff --git a/alib2algo/test-src/graph/traverse/BfsTest.cpp b/alib2algo/test-src/graph/traverse/BfsTest.cpp index a1388e07372e0af370055440d8d28ab801f1cb58..4594c57fad4e3d397747f00d3451ae5e5f367544 100644 --- a/alib2algo/test-src/graph/traverse/BfsTest.cpp +++ b/alib2algo/test-src/graph/traverse/BfsTest.cpp @@ -184,7 +184,7 @@ void GraphBfsTest::testBfs2() graph::traverse::Bfs::bfs(dg, n1, [&](const graph::Node &n, const graph::Node &p, int d) { distances[n] = d; - predecessors[n] = p; + predecessors.insert(std::make_pair(n, p)); return true; }); @@ -194,11 +194,11 @@ void GraphBfsTest::testBfs2() CPPUNIT_ASSERT_EQUAL(1, distances[n4]); CPPUNIT_ASSERT_EQUAL(2, distances[n5]); - CPPUNIT_ASSERT_EQUAL(graph::Node(), predecessors[n1]); - CPPUNIT_ASSERT_EQUAL(n1, predecessors[n2]); - CPPUNIT_ASSERT_EQUAL(n1, predecessors[n3]); - CPPUNIT_ASSERT_EQUAL(n1, predecessors[n4]); - CPPUNIT_ASSERT_EQUAL(n2, predecessors[n5]); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n1)->second); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n2)->second); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n3)->second); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n4)->second); + CPPUNIT_ASSERT_EQUAL(n2, predecessors.find(n5)->second); // Undirected graph::UndirectedGraph ug; @@ -212,7 +212,7 @@ void GraphBfsTest::testBfs2() graph::traverse::Bfs::bfs(ug, n1, [&](const graph::Node &n, const graph::Node &p, int d) { distances[n] = d; - predecessors[n] = p; + predecessors.insert(std::make_pair(n, p)); return true; }); @@ -222,9 +222,9 @@ void GraphBfsTest::testBfs2() CPPUNIT_ASSERT_EQUAL(1, distances[n4]); CPPUNIT_ASSERT_EQUAL(2, distances[n5]); - CPPUNIT_ASSERT_EQUAL(graph::Node(), predecessors[n1]); - CPPUNIT_ASSERT_EQUAL(n1, predecessors[n2]); - CPPUNIT_ASSERT_EQUAL(n1, predecessors[n3]); - CPPUNIT_ASSERT_EQUAL(n1, predecessors[n4]); - CPPUNIT_ASSERT_EQUAL(n2, predecessors[n5]); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n1)->second); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n2)->second); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n3)->second); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n4)->second); + CPPUNIT_ASSERT_EQUAL(n2, predecessors.find(n5)->second); } diff --git a/alib2algo/test-src/graph/traverse/DfsTest.cpp b/alib2algo/test-src/graph/traverse/DfsTest.cpp index ce5f5553e9c4d9f3f65a431a1c7fe27d9e93aa59..90db9b35d90efb47dfa80e585d7e804833d869bb 100644 --- a/alib2algo/test-src/graph/traverse/DfsTest.cpp +++ b/alib2algo/test-src/graph/traverse/DfsTest.cpp @@ -188,18 +188,18 @@ void GraphDfsTest::testDfs2() counter++; opened[n] = o; closed[n] = c; - predecessors[n] = p; + predecessors.insert(std::make_pair(n, p)); return true; }); CPPUNIT_ASSERT_EQUAL(5, counter); CPPUNIT_ASSERT_EQUAL(4, closed[n5]); - CPPUNIT_ASSERT_EQUAL(graph::Node(), predecessors[n1]); - CPPUNIT_ASSERT_EQUAL(n1, predecessors[n2]); - CPPUNIT_ASSERT_EQUAL(n1, predecessors[n3]); - CPPUNIT_ASSERT_EQUAL(n1, predecessors[n4]); - CPPUNIT_ASSERT_EQUAL(n2, predecessors[n5]); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n1)->second); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n2)->second); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n3)->second); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n4)->second); + CPPUNIT_ASSERT_EQUAL(n2, predecessors.find(n5)->second); // Undirected graph::UndirectedGraph ug; @@ -217,17 +217,17 @@ void GraphDfsTest::testDfs2() counter++; opened[n] = o; closed[n] = c; - predecessors[n] = p; + predecessors.insert(std::make_pair(n, p)); return true; }); CPPUNIT_ASSERT_EQUAL(5, counter); CPPUNIT_ASSERT_EQUAL(4, closed[n5]); - CPPUNIT_ASSERT_EQUAL(graph::Node(), predecessors[n1]); - CPPUNIT_ASSERT_EQUAL(n1, predecessors[n2]); - CPPUNIT_ASSERT_EQUAL(n1, predecessors[n3]); - CPPUNIT_ASSERT_EQUAL(n1, predecessors[n4]); - CPPUNIT_ASSERT_EQUAL(n2, predecessors[n5]); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n1)->second); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n2)->second); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n3)->second); + CPPUNIT_ASSERT_EQUAL(n1, predecessors.find(n4)->second); + CPPUNIT_ASSERT_EQUAL(n2, predecessors.find(n5)->second); } diff --git a/alib2data/src/graph/common/Node.cpp b/alib2data/src/graph/common/Node.cpp index 90efd477ec0e0b0e862d9d97da4030c23e7a1c6b..caae93e534472457a42dfbe14acb146dad4d24d5 100644 --- a/alib2data/src/graph/common/Node.cpp +++ b/alib2data/src/graph/common/Node.cpp @@ -12,17 +12,7 @@ namespace graph { -Node::Node() - : name(label::labelFrom(std::string())) -{ -} - -Node::Node(const label::Label &name) - : name(name) -{ -} - -Node::Node(label::Label &&name) +Node::Node(label::Label name) : name(std::move(name)) { } diff --git a/alib2data/src/graph/common/Node.h b/alib2data/src/graph/common/Node.h index c9a5ae748e59da6fd2485917c8de4ade2719e067..10621d68c934d5e0ab9de706b4ad0ce45b981ec1 100644 --- a/alib2data/src/graph/common/Node.h +++ b/alib2data/src/graph/common/Node.h @@ -9,9 +9,7 @@ namespace graph { class Node { public: - explicit Node(); - explicit Node(const label::Label &name); - explicit Node(label::Label &&name); + explicit Node(label::Label name); explicit Node(int number); explicit Node(char character); explicit Node(const std::string &name); diff --git a/alib2data/src/graph/directed/DirectedEdge.cpp b/alib2data/src/graph/directed/DirectedEdge.cpp index e80f06391c10f3bed0055cd40fbaacaa23619754..cfc57db294172bbded2ed09b960c7f7c1174e55b 100644 --- a/alib2data/src/graph/directed/DirectedEdge.cpp +++ b/alib2data/src/graph/directed/DirectedEdge.cpp @@ -6,83 +6,37 @@ */ #include "DirectedEdge.h" +#include "../../label/ObjectLabel.h" +#include "../../object/Void.h" #include <sstream> namespace graph { -DirectedEdge::DirectedEdge() - : name(label::labelFrom('d')) +DirectedEdge::DirectedEdge(Node from, Node to) + : DirectedEdge(std::move(from), std::move(to), label::labelFrom('d')) { } -DirectedEdge::DirectedEdge(const Node &from, const Node &to) - : from(from) - , to(to) - , name(label::labelFrom('d')) -{ -} - -DirectedEdge::DirectedEdge(Node &&from, Node &&to) - : from(std::move(from)) - , to(std::move(to)) - , name(label::labelFrom('d')) -{ -} - -DirectedEdge::DirectedEdge(const Node &from, const Node &to, const label::Label &name) - : from(from) - , to(to) - , name(name) -{ -} - -DirectedEdge::DirectedEdge(Node &&from, Node &&to, label::Label &&name) +DirectedEdge::DirectedEdge(Node from, Node to, label::Label name) : from(std::move(from)) , to(std::move(to)) , name(std::move(name)) { } -DirectedEdge::DirectedEdge(const Node &from, const Node &to, int number) - : from(from) - , to(to) - , name(label::labelFrom(number)) +DirectedEdge::DirectedEdge(Node from, Node to, int number) + : DirectedEdge(std::move(from), std::move(to), label::labelFrom(number)) { } -DirectedEdge::DirectedEdge(Node &&from, Node &&to, int number) - : from(std::move(from)) - , to(std::move(to)) - , name(label::labelFrom(number)) +DirectedEdge::DirectedEdge(Node from, Node to, char character) + : DirectedEdge(std::move(from), std::move(to), label::labelFrom(character)) { } -DirectedEdge::DirectedEdge(const Node &from, const Node &to, char character) - : from(from) - , to(to) - , name(label::labelFrom(character)) -{ -} - -DirectedEdge::DirectedEdge(Node &&from, Node &&to, char character) - : from(std::move(from)) - , to(std::move(to)) - , name(label::labelFrom(character)) -{ -} - -DirectedEdge::DirectedEdge(const Node &from, const Node &to, const std::string &name) - : from(from) - , to(to) - , name(label::labelFrom(name)) -{ -} - -DirectedEdge::DirectedEdge(Node &&from, Node &&to, const std::string &name) - : from(std::move(from)) - , to(std::move(to)) - , name(label::labelFrom(name)) +DirectedEdge::DirectedEdge(Node from, Node to, std::string name) + : DirectedEdge(std::move(from), std::move(to), label::labelFrom(name)) { } @@ -132,11 +86,6 @@ int DirectedEdge::compare(const DirectedEdge &other) const return to.compare(other.to); } -void DirectedEdge::operator>>(std::ostream &out) const -{ - dump(out); -} - DirectedEdge::operator std::string() const { std::stringstream ss; diff --git a/alib2data/src/graph/directed/DirectedEdge.h b/alib2data/src/graph/directed/DirectedEdge.h index 9276ad1a0b079830add2c94ad11948a8a30e4c02..b8680dbb3d8614c7498c6026a7adc29e13471cbc 100644 --- a/alib2data/src/graph/directed/DirectedEdge.h +++ b/alib2data/src/graph/directed/DirectedEdge.h @@ -15,17 +15,11 @@ namespace graph { class DirectedEdge { public: - explicit DirectedEdge(); - explicit DirectedEdge(const Node &from, const Node &to); - explicit DirectedEdge(Node &&from, Node &&to); - explicit DirectedEdge(const Node &from, const Node &to, const label::Label &name); - explicit DirectedEdge(Node &&from, Node &&to, label::Label &&name); - explicit DirectedEdge(const Node &from, const Node &to, int number); - explicit DirectedEdge(Node &&from, Node &&to, int number); - explicit DirectedEdge(const Node &from, const Node &to, char character); - explicit DirectedEdge(Node &&from, Node &&to, char character); - explicit DirectedEdge(const Node &from, const Node &to, const std::string &name); - explicit DirectedEdge(Node &&from, Node &&to, const std::string &name); + explicit DirectedEdge(Node from, Node to); + explicit DirectedEdge(Node from, Node to, label::Label name); + explicit DirectedEdge(Node from, Node to, int number); + explicit DirectedEdge(Node from, Node to, char character); + explicit DirectedEdge(Node from, Node to, std::string name); DirectedEdge *clone() const; DirectedEdge *plunder() &&; @@ -39,8 +33,6 @@ public: bool operator != (const DirectedEdge& other) const; int compare(const DirectedEdge &other) const; - void operator>>(std::ostream &out) const; - explicit operator std::string() const; friend std::ostream &operator<<(std::ostream &out, const DirectedEdge &node); diff --git a/alib2data/src/graph/undirected/UndirectedEdge.cpp b/alib2data/src/graph/undirected/UndirectedEdge.cpp index a0dc659196b0eeab20b03e0a0a99a2b8781146aa..c1d81e73bb2ab4e5ff90d29946d5b13d02bab840 100644 --- a/alib2data/src/graph/undirected/UndirectedEdge.cpp +++ b/alib2data/src/graph/undirected/UndirectedEdge.cpp @@ -6,83 +6,42 @@ */ #include "UndirectedEdge.h" +#include "../../label/ObjectLabel.h" +#include "../../object/Void.h" #include <sstream> namespace graph { -UndirectedEdge::UndirectedEdge() - : name(label::labelFrom('u')) +UndirectedEdge::UndirectedEdge(Node first, Node second) + : UndirectedEdge(std::move(first), std::move(second), label::labelFrom('u')) { } -UndirectedEdge::UndirectedEdge(const Node &first, const Node &second) - : first(first) - , second(second) - , name(label::labelFrom('u')) -{ -} - -UndirectedEdge::UndirectedEdge(Node &&first, Node &&second) - : first(std::move(first)) - , second(std::move(second)) - , name(label::labelFrom('u')) -{ -} - -UndirectedEdge::UndirectedEdge(const Node &first, const Node &second, const label::Label &name) - : first(first) - , second(second) - , name(name) -{ -} - -UndirectedEdge::UndirectedEdge(Node &&first, Node &&second, label::Label &&name) +UndirectedEdge::UndirectedEdge(Node first, Node second, label::Label name) : first(std::move(first)) , second(std::move(second)) , name(std::move(name)) { + if(this->second < this->first) { + Node tmp = std::move(this->second); + this->second = std::move(this->first); + this->first = std::move(tmp); + } } -UndirectedEdge::UndirectedEdge(const Node &first, const Node &second, int number) - : first(first) - , second(second) - , name(label::labelFrom(number)) -{ -} - -UndirectedEdge::UndirectedEdge(Node &&first, Node &&second, int number) - : first(std::move(first)) - , second(std::move(second)) - , name(label::labelFrom(number)) -{ -} - -UndirectedEdge::UndirectedEdge(const Node &first, const Node &second, char character) - : first(first) - , second(second) - , name(label::labelFrom(character)) +UndirectedEdge::UndirectedEdge(Node first, Node second, int number) + : UndirectedEdge(std::move(first), std::move(second), label::labelFrom(number)) { } -UndirectedEdge::UndirectedEdge(Node &&first, Node &&second, char character) - : first(std::move(first)) - , second(std::move(second)) - , name(label::labelFrom(character)) +UndirectedEdge::UndirectedEdge(Node first, Node second, char character) + : UndirectedEdge(std::move(first), std::move(second), label::labelFrom(character)) { } -UndirectedEdge::UndirectedEdge(const Node &first, const Node &second, const std::string &name) - : first(first) - , second(second) - , name(label::labelFrom(name)) -{ -} - -UndirectedEdge::UndirectedEdge(Node &&first, Node &&second, const std::string &name) - : first(std::move(first)) - , second(std::move(second)) - , name(label::labelFrom(name)) +UndirectedEdge::UndirectedEdge(Node first, Node second, std::string name) + : UndirectedEdge(std::move(first), std::move(second), label::labelFrom(name)) { } @@ -125,19 +84,11 @@ bool UndirectedEdge::operator != (const UndirectedEdge& other) const { int UndirectedEdge::compare(const UndirectedEdge &other) const { - auto a = sortedNodes(); - auto b = other.sortedNodes(); - int res = name.getData().compare(other.name.getData()); if (res != 0) return res; - res = a.first.compare(b.first); + res = first.compare(other.first); if (res != 0) return res; - return a.second.compare(b.second); -} - -void UndirectedEdge::operator>>(std::ostream &out) const -{ - dump(out); + return second.compare(other.second); } UndirectedEdge::operator std::string() const @@ -155,23 +106,7 @@ std::ostream &operator<<(std::ostream &out, const UndirectedEdge &node) void UndirectedEdge::dump(std::ostream &os) const { - auto nodes = sortedNodes(); - os << "(UndirectedEdge " << nodes.first << " -> ( " << name << " ) " << nodes.second << ")"; -} - -std::pair<Node, Node> UndirectedEdge::sortedNodes() const -{ - std::pair<Node, Node> out; - - if (first < second) { - out.first = first; - out.second = second; - } else { - out.first = second; - out.second = first; - } - - return out; + os << "(UndirectedEdge " << first << " -> ( " << name << " ) " << second << ")"; } } // namespace graph diff --git a/alib2data/src/graph/undirected/UndirectedEdge.h b/alib2data/src/graph/undirected/UndirectedEdge.h index c92aebf5592130ec9d29e05c3ad6af7c3dd85bdf..255f7b30ace1be7e5ebde1b941e4855ca2209e43 100644 --- a/alib2data/src/graph/undirected/UndirectedEdge.h +++ b/alib2data/src/graph/undirected/UndirectedEdge.h @@ -15,17 +15,11 @@ namespace graph { class UndirectedEdge { public: - explicit UndirectedEdge(); - explicit UndirectedEdge(const Node &first, const Node &second); - explicit UndirectedEdge(Node &&first, Node &&second); - explicit UndirectedEdge(const Node &first, const Node &second, const label::Label &name); - explicit UndirectedEdge(Node &&first, Node &&second, label::Label &&name); - explicit UndirectedEdge(const Node &first, const Node &second, int number); - explicit UndirectedEdge(Node &&first, Node &&second, int number); - explicit UndirectedEdge(const Node &first, const Node &second, char character); - explicit UndirectedEdge(Node &&first, Node &&second, char character); - explicit UndirectedEdge(const Node &first, const Node &second, const std::string &name); - explicit UndirectedEdge(Node &&first, Node &&second, const std::string &name); + explicit UndirectedEdge(Node first, Node second); + explicit UndirectedEdge(Node first, Node second, label::Label name); + explicit UndirectedEdge(Node first, Node second, int number); + explicit UndirectedEdge(Node first, Node second, char character); + explicit UndirectedEdge(Node first, Node second, std::string name); UndirectedEdge *clone() const; UndirectedEdge *plunder() &&; @@ -39,15 +33,12 @@ public: bool operator != (const UndirectedEdge& other) const; int compare(const UndirectedEdge &other) const; - void operator>>(std::ostream &out) const; - explicit operator std::string() const; friend std::ostream &operator<<(std::ostream &out, const UndirectedEdge &node); private: void dump(std::ostream &os) const; - std::pair<Node, Node> sortedNodes() const; Node first; Node second; diff --git a/alib2data/test-src/graph/GraphTest.cpp b/alib2data/test-src/graph/GraphTest.cpp index 792acf135ca9a9d6062f7a1ac5ec79612a3854e3..c31c8b96d7d431218a30b62857253c4b35610654 100644 --- a/alib2data/test-src/graph/GraphTest.cpp +++ b/alib2data/test-src/graph/GraphTest.cpp @@ -231,6 +231,9 @@ void GraphTest::testStringParser_impl(graph::REPRESENTATION representation) graph::Graph dg1(dg); std::string tmp = alib::StringDataFactory::toString(dg1); graph::Graph dg2 = alib::StringDataFactory::fromString<graph::Graph>(tmp); + std::string tmp2 = alib::StringDataFactory::toString(dg2); + std::cout << tmp << std::endl; + std::cout << tmp2 << std::endl; CPPUNIT_ASSERT(dg1 == dg2); dg.setEdgeValue(graph::DirectedEdge(n1, n2), 1);