def test_largest_component():
    karate_club = karate_club_graph()
    new_club = karate_club.copy()
    # add a triangle, disconnected from the rest of the graph
    new_club.add_edges_from([(100, 101), (101, 102), (102, 100)])
    largest_component = keep_largest_component(new_club)
    assert is_isomorphic(largest_component, karate_club)
def test_largest_component():
    karate_club = karate_club_graph()
    new_club = karate_club.copy()
    # add a triangle, disconnected from the rest of the graph
    new_club.add_edges_from([(100, 101), (101, 102), (102, 100)])
    largest_component = keep_largest_component(new_club)
    assert is_isomorphic(largest_component, karate_club)
def test_transition_matrix_with_supernode():
    karate_club = karate_club_graph()
    karate_club = canonical_relabel_nodes(keep_largest_component(karate_club))
    karate_club_super = add_supernode(karate_club, query=[10, 20, 30])
    P = compute_transition_matrix(karate_club_super)
    for v in [10, 20, 30]:
        assert P[-1, v - 1] == 1 / 3
def test_transition_matrix_with_supernode():
    karate_club = karate_club_graph()
    karate_club = canonical_relabel_nodes(keep_largest_component(karate_club))
    karate_club_super = add_supernode(karate_club, query=[10, 20, 30])
    P = compute_transition_matrix(karate_club_super)
    for v in [10, 20, 30]:
        assert P[-1, v - 1] == 1 / 3