[kgraphviewer-devel] [kgraphviewer/libkgraphviz] tests/kgraphviz: Add random tests
Kevin Funk
krf at electrostorm.net
Thu Jan 27 15:10:44 CET 2011
Git commit bd80f1f452eac7cd93c018886be0978755370e08 by Kevin Funk.
Pushed by kfunk into branch 'libkgraphviz'.
Add random tests
M +18 -5 tests/kgraphviz/dotgraphtests.cpp
M +2 -0 tests/kgraphviz/examples/CMakeLists.txt
A +5 -0 tests/kgraphviz/examples/directed-self-looped-graph.dot [License: UNKNOWN]
A +5 -0 tests/kgraphviz/examples/undirected-self-looped-graph.dot [License: UNKNOWN]
M +35 -21 tests/kgraphviz/graphiotests.cpp
http://commits.kde.org/9c7b74a4/bd80f1f452eac7cd93c018886be0978755370e08
diff --git a/tests/kgraphviz/dotgraphtests.cpp b/tests/kgraphviz/dotgraphtests.cpp
index 13b03fb..4b93865 100644
--- a/tests/kgraphviz/dotgraphtests.cpp
+++ b/tests/kgraphviz/dotgraphtests.cpp
@@ -26,18 +26,31 @@ class DotGraphTests : public QObject
Q_OBJECT
private Q_SLOTS:
- void testCreateGraph();
+ void testCreateEmptyGraph();
+ void testCreateSelfLoopedGraph();
};
using namespace KGraphViz;
-void DotGraphTests::testCreateGraph()
+void DotGraphTests::testCreateEmptyGraph()
{
DotGraph graph;
- QVERIFY(graph.nodes().size() == 0);
- QVERIFY(graph.edges().size() == 0);
- QVERIFY(graph.subgraphs().size() == 0);
+ QCOMPARE(graph.nodes().size(), 0);
+ QCOMPARE(graph.edges().size(), 0);
+ QCOMPARE(graph.subgraphs().size(), 0);
+}
+
+void DotGraphTests::testCreateSelfLoopedGraph()
+{
+ DotGraph graph;
+
+ graph.addNewNode("A");
+ graph.addNewEdge("A", "A");
+ QCOMPARE(graph.edges().size(), 1);
+
+ graph.addNewEdge("A", "A");
+ QCOMPARE(graph.edges().size(), 2);
}
QTEST_KDEMAIN_CORE(DotGraphTests)
diff --git a/tests/kgraphviz/examples/CMakeLists.txt b/tests/kgraphviz/examples/CMakeLists.txt
index 809d3bf..2707ccd 100644
--- a/tests/kgraphviz/examples/CMakeLists.txt
+++ b/tests/kgraphviz/examples/CMakeLists.txt
@@ -1,3 +1,5 @@
install( FILES directed-acyclic-graph.dot DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+install( FILES directed-self-looped-graph.dot DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
install( FILES subgraph.dot DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
install( FILES undirected-acyclic-graph.dot DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+install( FILES undirected-self-looped-graph.dot DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
diff --git a/tests/kgraphviz/examples/directed-self-looped-graph.dot b/tests/kgraphviz/examples/directed-self-looped-graph.dot
new file mode 100644
index 0000000..38e07c4
--- /dev/null
+++ b/tests/kgraphviz/examples/directed-self-looped-graph.dot
@@ -0,0 +1,5 @@
+digraph graphname {
+ a -> b -> c;
+ a -> a;
+ a -> a;
+}
diff --git a/tests/kgraphviz/examples/undirected-self-looped-graph.dot b/tests/kgraphviz/examples/undirected-self-looped-graph.dot
new file mode 100644
index 0000000..f7ef76d
--- /dev/null
+++ b/tests/kgraphviz/examples/undirected-self-looped-graph.dot
@@ -0,0 +1,5 @@
+graph graphname {
+ a -- b -- c;
+ a -- a;
+ a -- a;
+}
diff --git a/tests/kgraphviz/graphiotests.cpp b/tests/kgraphviz/graphiotests.cpp
index 34be266..a644a07 100644
--- a/tests/kgraphviz/graphiotests.cpp
+++ b/tests/kgraphviz/graphiotests.cpp
@@ -34,8 +34,10 @@ class GraphIOTests : public QObject
Q_OBJECT
private Q_SLOTS:
- void testImportGraph();
+ void testImportDirectedAcyclicGraph();
void testImportSubGraph();
+ void testImportDirectedSelfLoopedGraph();
+ void testImportUndirectedSelfLoopedGraph();
void testImportGraphFromInvalidFile();
@@ -46,13 +48,22 @@ private Q_SLOTS:
using namespace KGraphViz;
-void GraphIOTests::testImportGraph()
+static DotGraph* loadGraphFromFile(const QString& fileName)
{
GraphIO io;
- io.loadFromDotFile("examples/directed-acyclic-graph.dot");
- QVERIFY(QTest::kWaitForSignal(&io, SIGNAL(finished()), 3000) == true);
+ io.loadFromDotFile(fileName);
+ const bool ret = QTest::kWaitForSignal(&io, SIGNAL(finished()), 100);
+ if (!ret) {
+ qWarning() << "Loading failed";
+ return 0;
+ }
- DotGraph* graph = io.readData();
+ return io.readData();
+}
+
+void GraphIOTests::testImportDirectedAcyclicGraph()
+{
+ DotGraph* graph = loadGraphFromFile("examples/directed-acyclic-graph.dot");
QVERIFY(graph != 0);
QVERIFY(graph->nodes().size() == 4);
QVERIFY(graph->edges().size() == 3);
@@ -60,11 +71,7 @@ void GraphIOTests::testImportGraph()
void GraphIOTests::testImportSubGraph()
{
- GraphIO io;
- io.loadFromDotFile("examples/subgraph.dot");
- QVERIFY(QTest::kWaitForSignal(&io, SIGNAL(finished()), 3000) == true);
-
- DotGraph* graph = io.readData();
+ DotGraph* graph = loadGraphFromFile("examples/subgraph.dot");
QVERIFY(graph != 0);
// test root
@@ -83,13 +90,25 @@ void GraphIOTests::testImportSubGraph()
QCOMPARE(subgraph2->content().size(), 4);
}
-void GraphIOTests::testImportGraphFromInvalidFile()
+void GraphIOTests::testImportDirectedSelfLoopedGraph()
{
- GraphIO io;
- io.loadFromDotFile("examples/DOES_NOT_EXIST.abc");
- QVERIFY(QTest::kWaitForSignal(&io, SIGNAL(error(QString)), 3000) == true);
+ DotGraph* graph = loadGraphFromFile("examples/directed-self-looped-graph.dot");
+ QVERIFY(graph != 0);
+ QCOMPARE(graph->edges().size(), 4);
+ QCOMPARE(graph->nodes().size(), 3);
+}
+
+void GraphIOTests::testImportUndirectedSelfLoopedGraph()
+{
+ DotGraph* graph = loadGraphFromFile("examples/undirected-self-looped-graph.dot");
+ QVERIFY(graph != 0);
+ QCOMPARE(graph->edges().size(), 4);
+ QCOMPARE(graph->nodes().size(), 3);
+}
- DotGraph* graph = io.readData();
+void GraphIOTests::testImportGraphFromInvalidFile()
+{
+ DotGraph* graph = loadGraphFromFile("examples/DOES_NOT_EXIST.abc");
QVERIFY(graph == 0);
}
@@ -114,12 +133,7 @@ void GraphIOTests::testExportImportGraph()
// read graph from dot file and check attributes
{
- GraphIO io;
- io.loadFromDotFile(TEST_FILENAME);
- QSignalSpy spy(&io, SIGNAL(finished()));
- QVERIFY(QTest::kWaitForSignal(&io, SIGNAL(finished()), 3000) == true);
-
- DotGraph* graph = io.readData();
+ DotGraph* graph = loadGraphFromFile(TEST_FILENAME);
QVERIFY(graph != 0);
QVERIFY(graph->nodes().size() == 2);
QVERIFY(graph->edges().size() == 1);
More information about the kgraphviewer-devel
mailing list