def test_joint_degree_graph(ntimes=10): for _ in range(ntimes): seed = int(time.time()) n, m, p = 20, 10, 1 # generate random graph with model powerlaw_cluster and calculate # its joint degree g = powerlaw_cluster_graph(n, m, p, seed=seed) joint_degrees_g = degree_mixing_dict(g, normalized=False) # generate simple undirected graph with given joint degree # joint_degrees_g G = joint_degree_graph(joint_degrees_g) joint_degrees_G = degree_mixing_dict(G, normalized=False) # assert that the given joint degree is equal to the generated # graph's joint degree assert_true(joint_degrees_g == joint_degrees_G)
def test_joint_degree_graph(ntimes=10): for _ in range(ntimes): seed = int(time.time()) n, m, p = 20, 10, 1 # generate random graph with model powerlaw_cluster and calculate # its joint degree g = powerlaw_cluster_graph(n, m, p, seed=seed) joint_degrees_g = degree_mixing_dict(g, normalized=False) # generate simple undirected graph with given joint degree # joint_degrees_g G = joint_degree_graph(joint_degrees_g) joint_degrees_G = degree_mixing_dict(G, normalized=False) # assert that the given joint degree is equal to the generated # graph's joint degree assert_true(joint_degrees_g == joint_degrees_G)
def test_directed_joint_degree_graph(n=15, m=100, ntimes=1000): for _ in range(ntimes): # generate gnm random graph and calculate its joint degree. g = gnm_random_graph(n, m, None, directed=True) # in-degree seqeunce of g as a list of integers. in_degrees = list(dict(g.in_degree()).values()) # out-degree sequence of g as a list of integers. out_degrees = list(dict(g.out_degree()).values()) nkk = degree_mixing_dict(g) # generate simple directed graph with given degree sequence and joint # degree matrix. G = directed_joint_degree_graph(in_degrees, out_degrees, nkk) # assert degree sequence correctness. assert in_degrees == list(dict(G.in_degree()).values()) assert out_degrees == list(dict(G.out_degree()).values()) # assert joint degree matrix correctness. assert nkk == degree_mixing_dict(G)