def test_is_topological_sort(): G = Graph() G.add_path((G.SOURCE, 10, 20, 30, 40, G.SINK)) G.add_path((G.SOURCE, 10, 30, 40, G.SINK)) G.add_path((G.SOURCE, 10, G.SINK)) G.add_path((G.SOURCE, 20, G.SINK)) toposort = (G.SOURCE, 10, 30, 20, 40, G.SINK) order = (G.node_id_map[x] for x in toposort) assert not G.is_topological_sort(order) toposort = (G.SOURCE, 20, 10, 30, 40, G.SINK) order = (G.node_id_map[x] for x in toposort) assert not G.is_topological_sort(order) toposort = (G.SOURCE, 10, 20, 30, 40, G.SINK) order = (G.node_id_map[x] for x in toposort) assert G.is_topological_sort(order) G = Graph() G.add_path((G.SOURCE, 10, 30, 40, G.SINK)) G.add_path((G.SOURCE, 10, 20, 40, G.SINK)) toposort = (G.SOURCE, 10, 20, 30, 40, G.SINK) order = (G.node_id_map[x] for x in toposort) assert G.is_topological_sort(order) toposort = (G.SOURCE, 10, 30, 20, 40, G.SINK) order = (G.node_id_map[x] for x in toposort) assert G.is_topological_sort(order)
def test_topological_sort(): G = Graph() G.add_path((G.SOURCE, 10, 20, 30, 40, G.SINK)) G.add_path((G.SOURCE, 10, 30, 40, G.SINK)) G.add_path((G.SOURCE, 10, G.SINK)) G.add_path((G.SOURCE, 20, G.SINK)) assert G.is_topological_sort(G.topological_sort()) t_dict, locus = read_single_locus('noc2l_locus.gtf') for sgraph in locus.create_splice_graphs(): pgf = PathGraphFactory(sgraph) G = pgf.create(k=1) assert G.is_topological_sort(G.topological_sort()) assert G.is_topological_sort(G.topological_sort_dfs())