def test_add_edges_from(self) -> None: g = DiGraph() g.add_edges_from([ (1, 2, 4.5, { "color": "blue", "mass": 42 }), (4, 3, 9.5), (5, 6, { "color": "red", "mass": 99 }), (8, 7), (7, 8), ]) assert g.edge_count == 5, "digraph should have 5 edges" assert g.get_edge( 1, 2).weight == 4.5, "edge (1, 2) should have weight 4.5" assert g.get_edge( 1, 2 )["color"] == "blue", "edge (1, 2) should have 'color' set to 'blue'" assert g.get_edge( 1, 2)["mass"] == 42, "edge (1, 2) should have 'mass' set to 42" assert not g.get_edge(4, 3).has_attributes_dict( ), "edge (3, 4) should not have attributes dict" assert (g.get_edge(5, 6).weight == edge_module.DEFAULT_WEIGHT ), "edge should have default weight" assert g.get_edge(7, 8) != g.get_edge( 8, 7), "order of vertices should specify different edges"
def test_vertices_topological_order(self) -> None: g = DiGraph([("s", "t"), ("t", "u"), ("u", "v")]) results: SearchResults[DiVertex, DiEdge] = dfs(g) topo_sorted = results.vertices_topological_order() assert topo_sorted[0] == "s", "first element of path graph topo sort should be s" assert topo_sorted[1] == "t", "second element of path graph topo sort should be t" assert topo_sorted[2] == "u", "third element of path graph topo sort should be u" assert topo_sorted[3] == "v", "fourth element of path graph topo sort should be v" g = DiGraph() g.add_edges_from([("s", "v"), ("s", "w"), ("v", "t"), ("w", "t")]) results: SearchResults[DiVertex, DiEdge] = dfs(g) topo_sorted = results.vertices_topological_order() assert topo_sorted[0] == "s", "first element of topo sort should be s" assert topo_sorted[1] == "v" or topo_sorted[1] == "w", ( "second element of topo sort " "should be v or w" ) assert topo_sorted[3] == "t", "fourth element topo sort should be t"