@@ -87,12 +87,30 @@ def test_case_selection(self):
8787 pag = dag2pag (dag , islatent = [], isselection = [nodes [4 ]])
8888 print (pag )
8989
90+ def test_case_orient_rules (self ):
91+ nodes = []
92+ X = {}
93+ L = {}
94+ for i in range (7 ):
95+ node_name = f"X{ i + 1 } "
96+ if i + 1 == 2 :
97+ node_name = f"L{ i + 1 } "
98+ node = GraphNode (node_name )
99+ nodes .append (node )
100+ if i + 1 == 2 :
101+ L [2 ] = node
102+ else :
103+ X [i + 1 ] = node
104+ dag = Dag (nodes )
105+ dag .add_directed_edge (L [2 ], X [4 ])
106+ dag .add_directed_edge (L [2 ], X [5 ])
107+ dag .add_directed_edge (L [2 ], X [6 ])
90108
91-
92-
93- if __name__ == "__main__" :
94- test_model = TestDAG2PAG ()
95- test_model . test_case1 ( )
96- test_model . test_case2 ( )
97- test_model . test_case3 ( )
98- test_model . test_case_selection ( )
109+ dag . add_directed_edge ( X [ 5 ], X [ 7 ])
110+ dag . add_directed_edge ( X [ 1 ], X [ 4 ])
111+ dag . add_directed_edge ( X [ 1 ], X [ 7 ])
112+ dag . add_directed_edge ( X [ 3 ], X [ 7 ])
113+ pag = dag2pag ( dag , [ L [ 2 ]] )
114+ print ( pag )
115+ graphviz_pag = GraphUtils . to_pgv ( pag )
116+ graphviz_pag . draw ( "pag.png" , prog = 'dot' , format = 'png' )
0 commit comments