From 2fb72c725c7f0b6c3e3590b516554ca5d8cd5c4d Mon Sep 17 00:00:00 2001 From: David Rosca <roscadav@fit.cvut.cz> Date: Mon, 2 Mar 2015 20:29:37 +0100 Subject: [PATCH] Graphs: Implement testEqual, testXmlParser and testStringParser --- alib2data/test-src/graph/GraphTest.cpp | 106 +++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/alib2data/test-src/graph/GraphTest.cpp b/alib2data/test-src/graph/GraphTest.cpp index 8eb68fe0fa..b0eb3c1f8b 100644 --- a/alib2data/test-src/graph/GraphTest.cpp +++ b/alib2data/test-src/graph/GraphTest.cpp @@ -57,13 +57,119 @@ void GraphTest::testCopyConstruct() void GraphTest::testEqual() { + // Common + graph::Node n1("n1"); + graph::Node n2("n2"); + graph::Node n3("n3"); + + // Directed + graph::DirectedGraph dg(graph::REPRESENTATION::ADJACENCY_LIST); + dg.addNode(n1); + dg.addNode(n2); + dg.addNode(n3); + dg.addEdge(graph::DirectedEdge(n1, n2)); + dg.addEdge(graph::DirectedEdge(n1, n3)); + + graph::DirectedGraph dg2(graph::REPRESENTATION::ADJACENCY_LIST); + dg2.addNode(n1); + dg2.addNode(n2); + dg2.addEdge(graph::DirectedEdge(n1, n2)); + + CPPUNIT_ASSERT(dg != dg2); + + dg2.addNode(n3); + CPPUNIT_ASSERT(dg != dg2); + + dg2.addEdge(graph::DirectedEdge(n1, n3)); + CPPUNIT_ASSERT(dg == dg2); + + // Undirected + graph::UndirectedGraph ug(graph::REPRESENTATION::ADJACENCY_LIST); + ug.addNode(n1); + ug.addNode(n2); + ug.addNode(n3); + ug.addEdge(graph::UndirectedEdge(n1, n2)); + ug.addEdge(graph::UndirectedEdge(n1, n3)); + + graph::UndirectedGraph ug2(graph::REPRESENTATION::ADJACENCY_LIST); + ug2.addNode(n1); + ug2.addNode(n2); + ug2.addEdge(graph::UndirectedEdge(n1, n2)); + + CPPUNIT_ASSERT(ug != ug2); + + ug2.addNode(n3); + CPPUNIT_ASSERT(ug != ug2); + + ug2.addEdge(graph::UndirectedEdge(n1, n3)); + CPPUNIT_ASSERT(ug == ug2); } void GraphTest::testXMLParser() { + // Common + graph::Node n1("n1"); + graph::Node n2("n2"); + graph::Node n3("n3"); + + // Directed + graph::DirectedGraph dg(graph::REPRESENTATION::ADJACENCY_LIST); + dg.addNode(n1); + dg.addNode(n2); + dg.addNode(n3); + dg.addEdge(graph::DirectedEdge(n1, n2)); + dg.addEdge(graph::DirectedEdge(n1, n3)); + + graph::Graph dg1(dg); + std::string tmp = alib::XmlDataFactory::toString(dg1); + graph::Graph dg2 = alib::XmlDataFactory::fromString<graph::Graph>(tmp); + CPPUNIT_ASSERT(dg1 == dg2); + + // Undirected + graph::UndirectedGraph ug(graph::REPRESENTATION::ADJACENCY_LIST); + ug.addNode(n1); + ug.addNode(n2); + ug.addNode(n3); + ug.addEdge(graph::UndirectedEdge(n1, n2)); + ug.addEdge(graph::UndirectedEdge(n1, n3)); + + graph::Graph ug1(ug); + tmp = alib::XmlDataFactory::toString(ug1); + graph::Graph ug2 = alib::XmlDataFactory::fromString<graph::Graph>(tmp); + CPPUNIT_ASSERT(ug1 == ug2); } void GraphTest::testStringParser() { + // Common + graph::Node n1("n1"); + graph::Node n2("n2"); + graph::Node n3("n3"); + + // Directed + graph::DirectedGraph dg(graph::REPRESENTATION::ADJACENCY_LIST); + dg.addNode(n1); + dg.addNode(n2); + dg.addNode(n3); + dg.addEdge(graph::DirectedEdge(n1, n2)); + dg.addEdge(graph::DirectedEdge(n1, n3)); + + graph::Graph dg1(dg); + std::string tmp = alib::StringDataFactory::toString(dg1); + graph::Graph dg2 = alib::StringDataFactory::fromString<graph::Graph>(tmp); + CPPUNIT_ASSERT(dg1 == dg2); + + // Undirected + graph::UndirectedGraph ug(graph::REPRESENTATION::ADJACENCY_LIST); + ug.addNode(n1); + ug.addNode(n2); + ug.addNode(n3); + ug.addEdge(graph::UndirectedEdge(n1, n2)); + ug.addEdge(graph::UndirectedEdge(n1, n3)); + + graph::Graph ug1(ug); + tmp = alib::StringDataFactory::toString(ug1); + graph::Graph ug2 = alib::StringDataFactory::fromString<graph::Graph>(tmp); + CPPUNIT_ASSERT(ug1 == ug2); } -- GitLab