def test_remove_isolated_vertices(self) -> None: g = Graph([(1, 2), (2, 3), (5, 5)]) g.remove_edge(1, 2, remove_semi_isolated_vertices=False) g.add_vertex(4) assert set(g.vertices()) == {g[1], g[2], g[3], g[4], g[5]} g.remove_isolated_vertices(ignore_self_loops=False) assert set(g.vertices()) == { g[2], g[3], g[5], }, "isolated vertices 1 and 4 should have been removed" g.remove_isolated_vertices(ignore_self_loops=True) assert set(g.vertices()) == { g[2], g[3] }, "semi-isolated vertex 5 should have been removed"
def test_remove_edge(self) -> None: g = Graph([(1, 2), (2, 3), (3, 4)]) assert g.edge_count == 3, "graph should have 3 edges" g.remove_edge(1, 2) assert g.edge_count == 2, "after edge removal, graph should have 2 edges" assert g.has_vertex( 1), "isolated vertex 1 should not have been removed" g.remove_edge(2, 3, remove_semi_isolated_vertices=True) assert g.edge_count == 1, "after edge removal, graph should have 1 edge" assert not g.has_vertex( 2 ), "with `remove_semi_isolated_vertices` set to True, vertex 2 should have been removed" with pytest.raises(exception.EdgeNotFound): g.remove_edge(8, 9)