def test_traversals(): g = create_graph(directed=False, allowing_self_loops=False, allowing_multiple_edges=False, weighted=True) for _ in range(0, 10): g.add_vertex() g.add_edge(0, 1) g.add_edge(0, 2) g.add_edge(0, 3) g.add_edge(0, 4) g.add_edge(0, 5) g.add_edge(0, 6) g.add_edge(0, 7) g.add_edge(0, 8) g.add_edge(0, 9) g.add_edge(1, 2) g.add_edge(2, 3) g.add_edge(3, 4) g.add_edge(4, 5) g.add_edge(5, 6) g.add_edge(6, 7) g.add_edge(7, 8) g.add_edge(8, 9) g.add_edge(9, 1) bfs = list(traversal.bfs_traversal(g)) assert bfs == [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] bfs_from_5 = list(traversal.bfs_traversal(g, 5)) assert bfs_from_5 == [5, 0, 4, 6, 1, 2, 3, 7, 8, 9] dfs = list(traversal.dfs_traversal(g)) assert dfs == [0, 9, 1, 2, 3, 4, 5, 6, 7, 8] dfs_from_5 = list(traversal.dfs_traversal(g, 5)) assert dfs_from_5 == [5, 6, 7, 8, 9, 1, 2, 3, 4, 0] lex_bfs = list(traversal.lexicographic_bfs_traversal(g)) assert lex_bfs == [0, 1, 2, 9, 3, 8, 4, 7, 5, 6] max_card = list(traversal.max_cardinality_traversal(g)) assert max_card == [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] degeneracy_ordering = list(traversal.degeneracy_ordering_traversal(g)) assert degeneracy_ordering == [1, 2, 3, 4, 5, 6, 0, 7, 8, 9] random_walk = list(traversal.random_walk_traversal(g, 0, False, 3, 17)) assert random_walk == [7, 0, 2] closest_first = list(traversal.closest_first_traversal(g, 0)) assert closest_first == [0, 1, 3, 5, 4, 9, 8, 2, 7, 6]
def test_property_graph_traversals(): g = create_graph( directed=False, allowing_self_loops=False, allowing_multiple_edges=False, weighted=True, any_hashable=True, ) for i in range(0, 9): g.add_vertex(str(i)) g.add_vertex("node9") g.add_edge("0", "1", edge="e01") g.add_edge("0", "2", edge="e02") g.add_edge("0", "3", edge="e03") g.add_edge("0", "4", edge="e04") g.add_edge("0", "5", edge="e05") g.add_edge("0", "6", edge="e06") g.add_edge("0", "7", edge="e07") g.add_edge("0", "8", edge="e08") g.add_edge("0", "node9", edge="e09") g.add_edge("1", "2", edge="e12") g.add_edge("2", "3", edge="e23") g.add_edge("3", "4", edge="e34") g.add_edge("4", "5", edge="e45") g.add_edge("5", "6", edge="e56") g.add_edge("6", "7", edge="e67") g.add_edge("7", "8", edge="e78") g.add_edge("8", "node9", edge="e79") g.add_edge("node9", "1", edge="e91") bfs_it = traversal.bfs_traversal(g) repr(bfs_it) bfs = list(bfs_it) assert bfs == ["0", "1", "2", "3", "4", "5", "6", "7", "8", "node9"] bfs_from_5 = list(traversal.bfs_traversal(g, "5")) assert bfs_from_5 == ["5", "0", "4", "6", "1", "2", "3", "7", "8", "node9"] dfs = list(traversal.dfs_traversal(g)) assert dfs == ["0", "node9", "1", "2", "3", "4", "5", "6", "7", "8"] dfs_from_5 = list(traversal.dfs_traversal(g, "5")) assert dfs_from_5 == ["5", "6", "7", "8", "node9", "1", "2", "3", "4", "0"] lex_bfs = list(traversal.lexicographic_bfs_traversal(g)) assert lex_bfs == ["0", "1", "2", "node9", "3", "8", "4", "7", "5", "6"] max_card = list(traversal.max_cardinality_traversal(g)) assert max_card == ['0', '1', '2', 'node9', '3', '8', '4', '7', '5', '6'] degeneracy_ordering = list(traversal.degeneracy_ordering_traversal(g)) assert degeneracy_ordering == [ "1", "2", "3", "4", "5", "6", "0", "7", "8", "node9" ] random_walk = list(traversal.random_walk_traversal(g, "0", False, 3, 17)) assert random_walk == ["0", "7", "0", "2"] closest_first = list(traversal.closest_first_traversal(g, "0")) assert closest_first == [ "0", "1", "3", "5", "4", "node9", "8", "2", "7", "6" ]