about summary refs log tree commit diff stats
path: root/test/core/graph.py
diff options
context:
space:
mode:
authorserpilliere <fabrice.desclaux@cea.fr>2015-01-18 22:59:04 +0100
committerserpilliere <fabrice.desclaux@cea.fr>2015-01-18 22:59:04 +0100
commit77d1c6ed762dab187dc6e0df1bc410488dfd99ea (patch)
tree38e8ca7bfee417e399135568d312f012c4b591f2 /test/core/graph.py
parent472ff71aa6c146193e4073f7544b85ec5f9b746b (diff)
downloadmiasm-77d1c6ed762dab187dc6e0df1bc410488dfd99ea.tar.gz
miasm-77d1c6ed762dab187dc6e0df1bc410488dfd99ea.zip
DiGraph: add dominators regression test
Diffstat (limited to 'test/core/graph.py')
-rw-r--r--test/core/graph.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/core/graph.py b/test/core/graph.py
index a419a686..eb896cfe 100644
--- a/test/core/graph.py
+++ b/test/core/graph.py
@@ -16,3 +16,26 @@ print [x for x in g.predecessors('a')]
 print [x for x in g.predecessors('b')]
 print [x for x in g.predecessors('c')]
 print [x for x in g.successors('c')]
+
+
+"""
+Test from: https://en.wikipedia.org/wiki/Dominator_(graph_theory)
+"""
+
+g1 = DiGraph()
+g1.add_edge(1, 2)
+g1.add_edge(2, 3)
+g1.add_edge(2, 4)
+g1.add_edge(3, 5)
+g1.add_edge(4, 5)
+g1.add_edge(5, 2)
+g1.add_edge(2, 6)
+
+
+dominators = g1.compute_dominators()
+assert(dominators[1] == set([1]))
+assert(dominators[2] == set([1, 2]))
+assert(dominators[3] == set([1, 2, 3]))
+assert(dominators[4] == set([1, 2, 4]))
+assert(dominators[5] == set([1, 2, 5]))
+assert(dominators[6] == set([1, 2, 6]))