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
def test_order_is_consistent():
    karate_club = karate_club_graph()
    G = canonical_relabel_nodes(karate_club)
    for i, v in enumerate(G):
        assert i == v - 1, 'Order of nodes changed after canonicalization.'
def test_is_canonical():
    karate_club = karate_club_graph()
    G = canonical_relabel_nodes(karate_club)
    assert is_canonical(G)
    assert not is_canonical(karate_club)
def test_label_is_permutation():
    karate_club = karate_club_graph()
    G = canonical_relabel_nodes(karate_club)
    assert set(G.nodes()) == set(range(1, len(G) + 1))
    assert set(G.graph['canonical_map']) == set(karate_club.nodes())
def test_order_is_consistent():
    karate_club = karate_club_graph()
    G = canonical_relabel_nodes(karate_club)
    for i, v in enumerate(G):
        assert i == v - 1, 'Order of nodes changed after canonicalization.'
def test_is_canonical():
    karate_club = karate_club_graph()
    G = canonical_relabel_nodes(karate_club)
    assert is_canonical(G)
    assert not is_canonical(karate_club)
def test_label_is_permutation():
    karate_club = karate_club_graph()
    G = canonical_relabel_nodes(karate_club)
    assert set(G.nodes()) == set(range(1, len(G) + 1))
    assert set(G.graph['canonical_map']) ==  set(karate_club.nodes())