def main(): g = Graph() r = Vertex(g) r._id = 'root' A = Vertex(g) A._id = 'A' B = Vertex(g) B._id = 'B' C = Vertex(g) C._id = 'C' D = Vertex(g) D._id = 'D' E = Vertex(g) E._id = 'E' F = Vertex(g) F._id = 'F' G = Vertex(g) G._id = 'G' end = Vertex(g) end._id = 'end' g.add_edge(r, A) g.add_edge(r, end) g.add_edge(A, B) g.add_edge(A, C) g.add_edge(B, C) g.add_edge(C, D) g.add_edge(C, E) g.add_edge(D, F) g.add_edge(E, F) g.add_edge(F, B) g.add_edge(F, G) g.add_edge(G, end) dt = DominatorTree(r) assert (r, end) in dt.e assert (r, A) in dt.e assert (A, B) in dt.e assert (A, C) in dt.e assert (A, C) in dt.e assert (C, D) in dt.e assert (C, E) in dt.e assert (C, F) in dt.e assert (F, G) in dt.e g.entry = r