def test_add_multiple_edges(self): graph = Graph(directed=False, weighted=False) graph.add_multiple_edges(((1, 2), (2, 3), (3, 4))) assert len(graph) == 4 assert len(graph.edges) == 3 assert graph.adj == {1: {2}, 2: {1, 3}, 3: {2, 4}, 4: {3}} graph = Graph() graph.add_multiple_edges([(1, 2), (2, 3), (3, 4)]) assert graph.adj == {1: {2}, 2: {1, 3}, 3: {2, 4}, 4: {3}}
def test_is_connected_true(): graph = Graph(directed=False) graph.add_multiple_edges([(1, 2), (2, 3), (3, 4)]) assert is_connected(graph)
def test_is_connected_false(): graph = Graph(directed=False) graph.add_node(1) graph.add_multiple_edges([(2, 3), (3, 4)]) assert not is_connected(graph)
def test_connected_components_single(): graph = Graph(directed=False) graph.add_multiple_edges([(1, 2), (1, 3), (4, 2), (4, 5), (6, 4), (6, 7)]) components = list(connected_components(graph)) assert components == [{1, 2, 3, 4, 5, 6, 7}]
def test_bfs_shortest_path_undirected(): graph = Graph(directed=False) graph.add_multiple_edges([(1, 2), (2, 3), (3, 4), (4, 5), (4, 2)]) assert bfs_shortest_path(graph, 1, 4) == [1, 2, 4] assert bfs_shortest_path(graph, 1, 6) is None