def test_weighted_graph_label(self):

        g = nx.Graph()
        edges = [(1, 2), (2, 3), (3, 4), (4, 1)]
        g.add_edges_from(edges)
        g[1][2]["w"] = 1
        g[2][3]["w"] = 2
        g[3][4]["w"] = 3
        g[4][1]["w"] = 4

        g = StellarGraph(g, edge_weight_label="w")

        nodes = list(g.nodes())
        n = 1
        length = 1
        seed = None
        p = 1.0
        q = 1.0

        biasedrw = BiasedRandomWalk(g)

        assert (len(
            biasedrw.run(nodes=nodes,
                         n=n,
                         p=p,
                         q=q,
                         length=length,
                         seed=seed,
                         weighted=True)) == 4)

        g = nx.Graph()
        edges = [(1, 2), (2, 3), (3, 4), (4, 1)]
        g.add_edges_from(edges)
        g[1][2]["wt"] = 1
        g[2][3]["wt"] = 2
        g[3][4]["wt"] = 3
        g[4][1]["wt"] = 4

        # Deliberately use wrong name for edge weight!?
        g = StellarGraph(g, edge_weight_label="w")

        nodes = list(g.nodes())
        n = 1
        length = 1
        seed = None
        p = 1.0
        q = 1.0

        biasedrw = BiasedRandomWalk(g)
        with pytest.raises(ValueError):
            biasedrw.run(nodes=nodes,
                         n=n,
                         p=p,
                         q=q,
                         length=length,
                         seed=seed,
                         weighted=True)
예제 #2
0
def create_multi_test_graph():
    """
    Creates a multi graph for testing the SampledHeterogeneousBreadthFirstWalk class. The node ids are string or
    integers.

    :return: A multi graph with 8 nodes and 9 edges (with no self loops but 1 with only a self loop and 1 isolated node)
    in StellarGraph format.
    """

    g = StellarGraph()

    g.add_nodes_from([0, 1, "5", 4, 7], label="user")
    g.add_nodes_from([2, 3, 6], label="movie")

    g.add_edges_from([(1, 2), (1, 3), ("5", 6), ("5", 3), (4, 2)], label="rating")
    g.add_edges_from([("5", 4), (1, 4), (1, "5")], label="friend")
    g.add_edges_from([(1, 4)], label="colleague")

    return g