예제 #1
0
    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"
예제 #2
0
    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)