Unverified Commit 5b409bf7 authored by Hongzhi (Steve), Chen's avatar Hongzhi (Steve), Chen Committed by GitHub
Browse files

Rename_test (#5487)


Co-authored-by: default avatarUbuntu <ubuntu@ip-172-31-28-63.ap-northeast-1.compute.internal>
parent 0dd4f767
......@@ -15,8 +15,8 @@ def test_to_cugraph_conversion():
g = dgl.graph((F.tensor([0, 1, 2, 3]), F.tensor([1, 0, 3, 2]))).to("cuda")
cugraph_g = g.to_cugraph()
assert cugraph_g.number_of_nodes() == g.number_of_nodes()
assert cugraph_g.number_of_edges() == g.number_of_edges()
assert cugraph_g.number_of_nodes() == g.num_nodes()
assert cugraph_g.number_of_edges() == g.num_edges()
assert cugraph_g.has_edge(0, 1)
assert cugraph_g.has_edge(1, 0)
......@@ -36,8 +36,8 @@ def test_from_cugraph_conversion():
g = dgl.from_cugraph(cugraph_g)
assert g.device.type == "cuda"
assert g.number_of_nodes() == cugraph_g.number_of_nodes()
assert g.number_of_edges() == cugraph_g.number_of_edges()
assert g.num_nodes() == cugraph_g.number_of_nodes()
assert g.num_edges() == cugraph_g.number_of_edges()
# assert reverse edges are not present
assert g.has_edges_between(0, 1)
......@@ -55,7 +55,7 @@ def test_from_cugraph_conversion():
g = dgl.from_cugraph(cugraph_g)
assert g.device.type == "cuda"
assert g.number_of_nodes() == cugraph_g.number_of_nodes()
assert g.num_nodes() == cugraph_g.number_of_nodes()
# assert reverse edges are present
assert g.has_edges_between(0, 1)
assert g.has_edges_between(1, 0)
......
......@@ -72,7 +72,7 @@ def node_split_test(g, force_even, ntype="_N"):
gpb = g.get_partition_book()
selected_nodes_dist_tensor = dgl.distributed.DistTensor(
[g.number_of_nodes(ntype)], F.uint8, init_func=rand_init
[g.num_nodes(ntype)], F.uint8, init_func=rand_init
)
nodes = node_split(
......@@ -86,9 +86,7 @@ def node_split_test(g, force_even, ntype="_N"):
g.barrier()
if g.rank() == 0:
batched_assert_zero(
selected_nodes_dist_tensor, g.number_of_nodes(ntype)
)
batched_assert_zero(selected_nodes_dist_tensor, g.num_nodes(ntype))
g.barrier()
......@@ -97,7 +95,7 @@ def edge_split_test(g, force_even, etype="_E"):
gpb = g.get_partition_book()
selected_edges_dist_tensor = dgl.distributed.DistTensor(
[g.number_of_edges(etype)], F.uint8, init_func=rand_init
[g.num_edges(etype)], F.uint8, init_func=rand_init
)
edges = edge_split(
......@@ -111,9 +109,7 @@ def edge_split_test(g, force_even, etype="_E"):
g.barrier()
if g.rank() == 0:
batched_assert_zero(
selected_edges_dist_tensor, g.number_of_edges(etype)
)
batched_assert_zero(selected_edges_dist_tensor, g.num_edges(etype))
g.barrier()
......@@ -127,19 +123,19 @@ def test_dist_graph(g):
num_nodes = part_metadata["num_nodes"]
num_edges = part_metadata["num_edges"]
assert g.number_of_nodes() == num_nodes
assert g.number_of_edges() == num_edges
assert g.num_nodes() == num_nodes
assert g.num_edges() == num_edges
num_nodes = {ntype: g.num_nodes(ntype) for ntype in g.ntypes}
num_edges = {etype: g.num_edges(etype) for etype in g.etypes}
for key, n_nodes in num_nodes.items():
assert g.number_of_nodes(key) == n_nodes
assert g.num_nodes(key) == n_nodes
node_split_test(g, force_even=False, ntype=key)
node_split_test(g, force_even=True, ntype=key)
for key, n_edges in num_edges.items():
assert g.number_of_edges(key) == n_edges
assert g.num_edges(key) == n_edges
edge_split_test(g, force_even=False, etype=key)
edge_split_test(g, force_even=True, etype=key)
......@@ -156,7 +152,7 @@ def find_edges_test(g, orig_nid_map):
for u_type, etype, v_type in etypes:
orig_u = g.edges[etype].data["edge_u"]
orig_v = g.edges[etype].data["edge_v"]
eids = F.tensor(np.random.randint(g.number_of_edges(etype), size=100))
eids = F.tensor(np.random.randint(g.num_edges(etype), size=100))
u, v = g.find_edges(eids, etype=etype)
assert F.allclose(orig_nid_map[u_type][u], orig_u[eids])
assert F.allclose(orig_nid_map[v_type][v], orig_v[eids])
......@@ -172,7 +168,7 @@ def edge_subgraph_test(g, etype_eids_uv_map):
sg = g.edge_subgraph(all_eids)
for t in etypes:
assert sg.number_of_edges(t[1]) == len(all_eids[t])
assert sg.num_edges(t[1]) == len(all_eids[t])
assert F.allclose(sg.edges[t].data[dgl.EID], all_eids[t])
for u_type, etype, v_type in etypes:
......@@ -197,7 +193,7 @@ def sample_neighbors_with_args(g, size, fanout):
)
for ntype, n in num_nodes.items():
assert sampled_graph.number_of_nodes(ntype) == n
assert sampled_graph.num_nodes(ntype) == n
for t in etypes:
src, dst = sampled_graph.edges(etype=t)
eids = sampled_graph.edges[t].data[dgl.EID]
......@@ -305,7 +301,7 @@ def dist_tensor_test_persistent(data_shape):
def test_dist_tensor(g):
first_type = g.ntypes[0]
data_shape = (g.number_of_nodes(first_type), 2)
data_shape = (g.num_nodes(first_type), 2)
dist_tensor_test_sanity(data_shape)
dist_tensor_test_sanity(data_shape, name="DistTensorSanity")
dist_tensor_test_destroy_recreate(data_shape, name="DistTensorRecreate")
......@@ -365,7 +361,7 @@ def dist_embedding_check_existing(num_nodes):
def test_dist_embedding(g):
num_nodes = g.number_of_nodes(g.ntypes[0])
num_nodes = g.num_nodes(g.ntypes[0])
dist_embedding_check_sanity(num_nodes, dgl.distributed.optim.SparseAdagrad)
dist_embedding_check_sanity(
num_nodes, dgl.distributed.optim.SparseAdagrad, name="SomeEmbedding"
......@@ -383,7 +379,7 @@ def test_dist_embedding(g):
def dist_optimizer_check_store(g):
num_nodes = g.number_of_nodes(g.ntypes[0])
num_nodes = g.num_nodes(g.ntypes[0])
rank = g.rank()
try:
emb = dgl.distributed.DistEmbedding(
......
......@@ -23,14 +23,14 @@ shared_workspace = os.environ.get(
def create_graph(num_part, dist_graph_path, hetero):
if not hetero:
g = dgl.rand_graph(10000, 42000)
g.ndata["feat"] = F.unsqueeze(F.arange(0, g.number_of_nodes()), 1)
g.edata["feat"] = F.unsqueeze(F.arange(0, g.number_of_edges()), 1)
g.ndata["feat"] = F.unsqueeze(F.arange(0, g.num_nodes()), 1)
g.edata["feat"] = F.unsqueeze(F.arange(0, g.num_edges()), 1)
g.ndata["in_degrees"] = g.in_degrees()
g.ndata["out_degrees"] = g.out_degrees()
etype = g.etypes[0]
ntype = g.ntypes[0]
edge_u, edge_v = g.find_edges(F.arange(0, g.number_of_edges(etype)))
edge_u, edge_v = g.find_edges(F.arange(0, g.num_edges(etype)))
g.edges[etype].data["edge_u"] = edge_u
g.edges[etype].data["edge_v"] = edge_v
......@@ -66,15 +66,15 @@ def create_graph(num_part, dist_graph_path, hetero):
g = dgl.heterograph(edges, num_nodes)
g.nodes["n1"].data["feat"] = F.unsqueeze(
F.arange(0, g.number_of_nodes("n1")), 1
F.arange(0, g.num_nodes("n1")), 1
)
g.edges["r1"].data["feat"] = F.unsqueeze(
F.arange(0, g.number_of_edges("r1")), 1
F.arange(0, g.num_edges("r1")), 1
)
for _, etype, _ in etypes:
edge_u, edge_v = g.find_edges(
F.arange(0, g.number_of_edges(etype)), etype=etype
F.arange(0, g.num_edges(etype)), etype=etype
)
g.edges[etype].data["edge_u"] = edge_u
g.edges[etype].data["edge_v"] = edge_v
......
......@@ -81,13 +81,13 @@ def rand_init(shape, dtype):
def check_dist_graph_empty(g, num_clients, num_nodes, num_edges):
# Test API
assert g.number_of_nodes() == num_nodes
assert g.number_of_edges() == num_edges
assert g.num_nodes() == num_nodes
assert g.num_edges() == num_edges
# Test init node data
new_shape = (g.number_of_nodes(), 2)
new_shape = (g.num_nodes(), 2)
g.ndata["test1"] = dgl.distributed.DistTensor(new_shape, F.int32)
nids = F.arange(0, int(g.number_of_nodes() / 2))
nids = F.arange(0, int(g.num_nodes() / 2))
feats = g.ndata["test1"][nids]
assert np.all(F.asnumpy(feats) == 0)
......@@ -96,9 +96,7 @@ def check_dist_graph_empty(g, num_clients, num_nodes, num_edges):
new_shape, F.float32, "test3", init_func=rand_init
)
del test3
test3 = dgl.distributed.DistTensor(
(g.number_of_nodes(), 3), F.float32, "test3"
)
test3 = dgl.distributed.DistTensor((g.num_nodes(), 3), F.float32, "test3")
del test3
# Test write data
......@@ -156,8 +154,8 @@ def check_server_client_empty(shared_mem, num_servers, num_clients):
0,
num_servers,
num_clients,
g.number_of_nodes(),
g.number_of_edges(),
g.num_nodes(),
g.num_edges(),
),
)
p.start()
......@@ -301,8 +299,8 @@ def run_client_hierarchy(
def check_dist_emb(g, num_clients, num_nodes, num_edges):
# Test sparse emb
try:
emb = DistEmbedding(g.number_of_nodes(), 1, "emb1", emb_init)
nids = F.arange(0, int(g.number_of_nodes()))
emb = DistEmbedding(g.num_nodes(), 1, "emb1", emb_init)
nids = F.arange(0, int(g.num_nodes()))
lr = 0.001
optimizer = SparseAdagrad([emb], lr=lr)
with F.record_grad():
......@@ -314,13 +312,13 @@ def check_dist_emb(g, num_clients, num_nodes, num_edges):
feats = emb(nids)
if num_clients == 1:
assert_almost_equal(F.asnumpy(feats), np.ones((len(nids), 1)) * -lr)
rest = np.setdiff1d(np.arange(g.number_of_nodes()), F.asnumpy(nids))
rest = np.setdiff1d(np.arange(g.num_nodes()), F.asnumpy(nids))
feats1 = emb(rest)
assert np.all(F.asnumpy(feats1) == np.zeros((len(rest), 1)))
policy = dgl.distributed.PartitionPolicy("node", g.get_partition_book())
grad_sum = dgl.distributed.DistTensor(
(g.number_of_nodes(), 1), F.float32, "emb1_sum", policy
(g.num_nodes(), 1), F.float32, "emb1_sum", policy
)
if num_clients == 1:
assert np.all(
......@@ -329,7 +327,7 @@ def check_dist_emb(g, num_clients, num_nodes, num_edges):
)
assert np.all(F.asnumpy(grad_sum[rest]) == np.zeros((len(rest), 1)))
emb = DistEmbedding(g.number_of_nodes(), 1, "emb2", emb_init)
emb = DistEmbedding(g.num_nodes(), 1, "emb2", emb_init)
with F.no_grad():
feats1 = emb(nids)
assert np.all(F.asnumpy(feats1) == 0)
......@@ -349,7 +347,7 @@ def check_dist_emb(g, num_clients, num_nodes, num_edges):
assert_almost_equal(
F.asnumpy(feats), np.ones((len(nids), 1)) * 1 * -lr
)
rest = np.setdiff1d(np.arange(g.number_of_nodes()), F.asnumpy(nids))
rest = np.setdiff1d(np.arange(g.num_nodes()), F.asnumpy(nids))
feats1 = emb(rest)
assert np.all(F.asnumpy(feats1) == np.zeros((len(rest), 1)))
except NotImplementedError as e:
......@@ -361,17 +359,17 @@ def check_dist_emb(g, num_clients, num_nodes, num_edges):
def check_dist_graph(g, num_clients, num_nodes, num_edges):
# Test API
assert g.number_of_nodes() == num_nodes
assert g.number_of_edges() == num_edges
assert g.num_nodes() == num_nodes
assert g.num_edges() == num_edges
# Test reading node data
nids = F.arange(0, int(g.number_of_nodes() / 2))
nids = F.arange(0, int(g.num_nodes() / 2))
feats1 = g.ndata["features"][nids]
feats = F.squeeze(feats1, 1)
assert np.all(F.asnumpy(feats == nids))
# Test reading edge data
eids = F.arange(0, int(g.number_of_edges() / 2))
eids = F.arange(0, int(g.num_edges() / 2))
feats1 = g.edata["features"][eids]
feats = F.squeeze(feats1, 1)
assert np.all(F.asnumpy(feats == eids))
......@@ -382,7 +380,7 @@ def check_dist_graph(g, num_clients, num_nodes, num_edges):
assert F.array_equal(sg.edata[dgl.EID], eids)
# Test init node data
new_shape = (g.number_of_nodes(), 2)
new_shape = (g.num_nodes(), 2)
test1 = dgl.distributed.DistTensor(new_shape, F.int32)
g.ndata["test1"] = test1
feats = g.ndata["test1"][nids]
......@@ -406,9 +404,7 @@ def check_dist_graph(g, num_clients, num_nodes, num_edges):
del test3
assert test3_name not in g._client.data_name_list()
assert test3_name not in g._client.gdata_name_list()
test3 = dgl.distributed.DistTensor(
(g.number_of_nodes(), 3), F.float32, "test3"
)
test3 = dgl.distributed.DistTensor((g.num_nodes(), 3), F.float32, "test3")
del test3
# add tests for anonymous distributed tensor.
......@@ -432,7 +428,7 @@ def check_dist_graph(g, num_clients, num_nodes, num_edges):
del test4
try:
test4 = dgl.distributed.DistTensor(
(g.number_of_nodes(), 3), F.float32, "test4"
(g.num_nodes(), 3), F.float32, "test4"
)
raise Exception("")
except:
......@@ -445,19 +441,19 @@ def check_dist_graph(g, num_clients, num_nodes, num_edges):
assert np.all(F.asnumpy(feats) == 1)
# Test metadata operations.
assert len(g.ndata["features"]) == g.number_of_nodes()
assert g.ndata["features"].shape == (g.number_of_nodes(), 1)
assert len(g.ndata["features"]) == g.num_nodes()
assert g.ndata["features"].shape == (g.num_nodes(), 1)
assert g.ndata["features"].dtype == F.int64
assert g.node_attr_schemes()["features"].dtype == F.int64
assert g.node_attr_schemes()["test1"].dtype == F.int32
assert g.node_attr_schemes()["features"].shape == (1,)
selected_nodes = np.random.randint(0, 100, size=g.number_of_nodes()) > 30
selected_nodes = np.random.randint(0, 100, size=g.num_nodes()) > 30
# Test node split
nodes = node_split(selected_nodes, g.get_partition_book())
nodes = F.asnumpy(nodes)
# We only have one partition, so the local nodes are basically all nodes in the graph.
local_nids = np.arange(g.number_of_nodes())
local_nids = np.arange(g.num_nodes())
for n in nodes:
assert n in local_nids
......@@ -475,8 +471,8 @@ def check_dist_emb_server_client(
graph_name = (
f"check_dist_emb_{shared_mem}_{num_servers}_{num_clients}_{num_groups}"
)
g.ndata["features"] = F.unsqueeze(F.arange(0, g.number_of_nodes()), 1)
g.edata["features"] = F.unsqueeze(F.arange(0, g.number_of_edges()), 1)
g.ndata["features"] = F.unsqueeze(F.arange(0, g.num_nodes()), 1)
g.edata["features"] = F.unsqueeze(F.arange(0, g.num_edges()), 1)
partition_graph(g, graph_name, num_parts, "/tmp/dist_graph")
# let's just test on one partition for now.
......@@ -510,8 +506,8 @@ def check_dist_emb_server_client(
0,
num_servers,
num_clients,
g.number_of_nodes(),
g.number_of_edges(),
g.num_nodes(),
g.num_edges(),
group_id,
),
)
......@@ -542,8 +538,8 @@ def check_server_client(shared_mem, num_servers, num_clients, num_groups=1):
# Partition the graph
num_parts = 1
graph_name = f"check_server_client_{shared_mem}_{num_servers}_{num_clients}_{num_groups}"
g.ndata["features"] = F.unsqueeze(F.arange(0, g.number_of_nodes()), 1)
g.edata["features"] = F.unsqueeze(F.arange(0, g.number_of_edges()), 1)
g.ndata["features"] = F.unsqueeze(F.arange(0, g.num_nodes()), 1)
g.edata["features"] = F.unsqueeze(F.arange(0, g.num_edges()), 1)
partition_graph(g, graph_name, num_parts, "/tmp/dist_graph")
# let's just test on one partition for now.
......@@ -578,8 +574,8 @@ def check_server_client(shared_mem, num_servers, num_clients, num_groups=1):
0,
num_servers,
num_clients,
g.number_of_nodes(),
g.number_of_edges(),
g.num_nodes(),
g.num_edges(),
group_id,
),
)
......@@ -609,8 +605,8 @@ def check_server_client_hierarchy(shared_mem, num_servers, num_clients):
# Partition the graph
num_parts = 1
graph_name = "dist_graph_test_2"
g.ndata["features"] = F.unsqueeze(F.arange(0, g.number_of_nodes()), 1)
g.edata["features"] = F.unsqueeze(F.arange(0, g.number_of_edges()), 1)
g.ndata["features"] = F.unsqueeze(F.arange(0, g.num_nodes()), 1)
g.edata["features"] = F.unsqueeze(F.arange(0, g.num_edges()), 1)
partition_graph(
g,
graph_name,
......@@ -634,14 +630,10 @@ def check_server_client_hierarchy(shared_mem, num_servers, num_clients):
cli_ps = []
manager = mp.Manager()
return_dict = manager.dict()
node_mask = np.zeros((g.number_of_nodes(),), np.int32)
edge_mask = np.zeros((g.number_of_edges(),), np.int32)
nodes = np.random.choice(
g.number_of_nodes(), g.number_of_nodes() // 10, replace=False
)
edges = np.random.choice(
g.number_of_edges(), g.number_of_edges() // 10, replace=False
)
node_mask = np.zeros((g.num_nodes(),), np.int32)
edge_mask = np.zeros((g.num_edges(),), np.int32)
nodes = np.random.choice(g.num_nodes(), g.num_nodes() // 10, replace=False)
edges = np.random.choice(g.num_edges(), g.num_edges() // 10, replace=False)
node_mask[nodes] = 1
edge_mask[edges] = 1
nodes = np.sort(nodes)
......@@ -729,17 +721,17 @@ def check_dist_graph_hetero(g, num_clients, num_nodes, num_edges):
# Test API
for ntype in num_nodes:
assert ntype in g.ntypes
assert num_nodes[ntype] == g.number_of_nodes(ntype)
assert num_nodes[ntype] == g.num_nodes(ntype)
for etype in num_edges:
assert etype in g.etypes
assert num_edges[etype] == g.number_of_edges(etype)
assert num_edges[etype] == g.num_edges(etype)
etypes = [("n1", "r1", "n2"), ("n1", "r2", "n3"), ("n2", "r3", "n3")]
for i, etype in enumerate(g.canonical_etypes):
assert etype[0] == etypes[i][0]
assert etype[1] == etypes[i][1]
assert etype[2] == etypes[i][2]
assert g.number_of_nodes() == sum([num_nodes[ntype] for ntype in num_nodes])
assert g.number_of_edges() == sum([num_edges[etype] for etype in num_edges])
assert g.num_nodes() == sum([num_nodes[ntype] for ntype in num_nodes])
assert g.num_edges() == sum([num_edges[etype] for etype in num_edges])
# Test reading node data
ntype = "n1"
......@@ -786,7 +778,7 @@ def check_dist_graph_hetero(g, num_clients, num_nodes, num_edges):
assert F.array_equal(sg.edata[dgl.EID], eids)
# Test init node data
new_shape = (g.number_of_nodes("n1"), 2)
new_shape = (g.num_nodes("n1"), 2)
g.nodes["n1"].data["test1"] = dgl.distributed.DistTensor(new_shape, F.int32)
feats = g.nodes["n1"].data["test1"][nids]
assert np.all(F.asnumpy(feats) == 0)
......@@ -797,7 +789,7 @@ def check_dist_graph_hetero(g, num_clients, num_nodes, num_edges):
)
del test3
test3 = dgl.distributed.DistTensor(
(g.number_of_nodes("n1"), 3), F.float32, "test3"
(g.num_nodes("n1"), 3), F.float32, "test3"
)
del test3
......@@ -822,7 +814,7 @@ def check_dist_graph_hetero(g, num_clients, num_nodes, num_edges):
del test4
try:
test4 = dgl.distributed.DistTensor(
(g.number_of_nodes("n1"), 3), F.float32, "test4"
(g.num_nodes("n1"), 3), F.float32, "test4"
)
raise Exception("")
except:
......@@ -835,18 +827,16 @@ def check_dist_graph_hetero(g, num_clients, num_nodes, num_edges):
assert np.all(F.asnumpy(feats) == 1)
# Test metadata operations.
assert len(g.nodes["n1"].data["feat"]) == g.number_of_nodes("n1")
assert g.nodes["n1"].data["feat"].shape == (g.number_of_nodes("n1"), 1)
assert len(g.nodes["n1"].data["feat"]) == g.num_nodes("n1")
assert g.nodes["n1"].data["feat"].shape == (g.num_nodes("n1"), 1)
assert g.nodes["n1"].data["feat"].dtype == F.int64
selected_nodes = (
np.random.randint(0, 100, size=g.number_of_nodes("n1")) > 30
)
selected_nodes = np.random.randint(0, 100, size=g.num_nodes("n1")) > 30
# Test node split
nodes = node_split(selected_nodes, g.get_partition_book(), ntype="n1")
nodes = F.asnumpy(nodes)
# We only have one partition, so the local nodes are basically all nodes in the graph.
local_nids = np.arange(g.number_of_nodes("n1"))
local_nids = np.arange(g.num_nodes("n1"))
for n in nodes:
assert n in local_nids
......@@ -875,8 +865,8 @@ def check_server_client_hetero(shared_mem, num_servers, num_clients):
p.start()
cli_ps = []
num_nodes = {ntype: g.number_of_nodes(ntype) for ntype in g.ntypes}
num_edges = {etype: g.number_of_edges(etype) for etype in g.etypes}
num_nodes = {ntype: g.num_nodes(ntype) for ntype in g.ntypes}
num_edges = {etype: g.num_edges(etype) for etype in g.etypes}
for cli_id in range(num_clients):
print("start client", cli_id)
p = ctx.Process(
......@@ -981,8 +971,8 @@ def check_dist_optim_server_client(
# Partition the graph
num_parts = 1
g.ndata["features"] = F.unsqueeze(F.arange(0, g.number_of_nodes()), 1)
g.edata["features"] = F.unsqueeze(F.arange(0, g.number_of_edges()), 1)
g.ndata["features"] = F.unsqueeze(F.arange(0, g.num_nodes()), 1)
g.edata["features"] = F.unsqueeze(F.arange(0, g.num_edges()), 1)
partition_graph(g, graph_name, num_parts, "/tmp/dist_graph")
# let's just test on one partition for now.
......@@ -1048,15 +1038,15 @@ def test_standalone():
# Partition the graph
num_parts = 1
graph_name = "dist_graph_test_3"
g.ndata["features"] = F.unsqueeze(F.arange(0, g.number_of_nodes()), 1)
g.edata["features"] = F.unsqueeze(F.arange(0, g.number_of_edges()), 1)
g.ndata["features"] = F.unsqueeze(F.arange(0, g.num_nodes()), 1)
g.edata["features"] = F.unsqueeze(F.arange(0, g.num_edges()), 1)
partition_graph(g, graph_name, num_parts, "/tmp/dist_graph")
dgl.distributed.initialize("kv_ip_config.txt")
dist_g = DistGraph(
graph_name, part_config="/tmp/dist_graph/{}.json".format(graph_name)
)
check_dist_graph(dist_g, 1, g.number_of_nodes(), g.number_of_edges())
check_dist_graph(dist_g, 1, g.num_nodes(), g.num_edges())
dgl.distributed.exit_client() # this is needed since there's two test here in one process
......@@ -1076,15 +1066,15 @@ def test_standalone_node_emb():
# Partition the graph
num_parts = 1
graph_name = "dist_graph_test_3"
g.ndata["features"] = F.unsqueeze(F.arange(0, g.number_of_nodes()), 1)
g.edata["features"] = F.unsqueeze(F.arange(0, g.number_of_edges()), 1)
g.ndata["features"] = F.unsqueeze(F.arange(0, g.num_nodes()), 1)
g.edata["features"] = F.unsqueeze(F.arange(0, g.num_edges()), 1)
partition_graph(g, graph_name, num_parts, "/tmp/dist_graph")
dgl.distributed.initialize("kv_ip_config.txt")
dist_g = DistGraph(
graph_name, part_config="/tmp/dist_graph/{}.json".format(graph_name)
)
check_dist_emb(dist_g, 1, g.number_of_nodes(), g.number_of_edges())
check_dist_emb(dist_g, 1, g.num_nodes(), g.num_edges())
dgl.distributed.exit_client() # this is needed since there's two test here in one process
......@@ -1110,8 +1100,8 @@ def test_split(hetero):
part_method="metis",
)
node_mask = np.random.randint(0, 100, size=g.number_of_nodes(ntype)) > 30
edge_mask = np.random.randint(0, 100, size=g.number_of_edges(etype)) > 30
node_mask = np.random.randint(0, 100, size=g.num_nodes(ntype)) > 30
edge_mask = np.random.randint(0, 100, size=g.num_edges(etype)) > 30
selected_nodes = np.nonzero(node_mask)[0]
selected_edges = np.nonzero(edge_mask)[0]
......@@ -1196,8 +1186,8 @@ def test_split_even():
part_method="metis",
)
node_mask = np.random.randint(0, 100, size=g.number_of_nodes()) > 30
edge_mask = np.random.randint(0, 100, size=g.number_of_edges()) > 30
node_mask = np.random.randint(0, 100, size=g.num_nodes()) > 30
edge_mask = np.random.randint(0, 100, size=g.num_edges()) > 30
selected_nodes = np.nonzero(node_mask)[0]
selected_edges = np.nonzero(edge_mask)[0]
all_nodes1 = []
......
......@@ -32,12 +32,8 @@ def setup_module():
# Partition the graph.
num_parts = 1
graph_name = "dist_graph_test_3"
dist_g.ndata["features"] = F.unsqueeze(
F.arange(0, dist_g.number_of_nodes()), 1
)
dist_g.edata["features"] = F.unsqueeze(
F.arange(0, dist_g.number_of_edges()), 1
)
dist_g.ndata["features"] = F.unsqueeze(F.arange(0, dist_g.num_nodes()), 1)
dist_g.edata["features"] = F.unsqueeze(F.arange(0, dist_g.num_edges()), 1)
dgl.distributed.partition_graph(
dist_g, graph_name, num_parts, "/tmp/dist_graph"
)
......
......@@ -88,7 +88,7 @@ def start_sample_client_shuffle(
src, dst = sampled_graph.edges()
src = orig_nid[src]
dst = orig_nid[dst]
assert sampled_graph.number_of_nodes() == g.number_of_nodes()
assert sampled_graph.num_nodes() == g.num_nodes()
assert np.all(F.asnumpy(g.has_edges_between(src, dst)))
eids = g.edge_ids(src, dst)
eids1 = orig_eid[sampled_graph.edata[dgl.EID]]
......@@ -167,7 +167,7 @@ def check_rpc_sampling(tmpdir, num_server):
assert p.exitcode == 0
src, dst = sampled_graph.edges()
assert sampled_graph.number_of_nodes() == g.number_of_nodes()
assert sampled_graph.num_nodes() == g.num_nodes()
assert np.all(F.asnumpy(g.has_edges_between(src, dst)))
eids = g.edge_ids(src, dst)
assert np.array_equal(
......@@ -202,7 +202,7 @@ def check_rpc_find_edges_shuffle(tmpdir, num_server):
time.sleep(1)
pserver_list.append(p)
eids = F.tensor(np.random.randint(g.number_of_edges(), size=100))
eids = F.tensor(np.random.randint(g.num_edges(), size=100))
u, v = g.find_edges(orig_eid[eids])
du, dv = start_find_edges_client(0, tmpdir, num_server > 1, eids)
du = orig_nid[du]
......@@ -232,7 +232,7 @@ def create_random_hetero(dense=False, empty=False):
edges[etype] = (arr.row, arr.col)
g = dgl.heterograph(edges, num_nodes)
g.nodes["n1"].data["feat"] = F.ones(
(g.number_of_nodes("n1"), 10), F.float32, F.cpu()
(g.num_nodes("n1"), 10), F.float32, F.cpu()
)
return g
......@@ -332,7 +332,7 @@ def check_rpc_get_degree_shuffle(tmpdir, num_server):
time.sleep(1)
pserver_list.append(p)
nids = F.tensor(np.random.randint(g.number_of_nodes(), size=100))
nids = F.tensor(np.random.randint(g.num_nodes(), size=100))
in_degs, out_degs, all_in_degs, all_out_degs = start_get_degrees_client(
0, tmpdir, num_server > 1, nids
)
......@@ -619,7 +619,7 @@ def check_rpc_hetero_sampling_empty_shuffle(tmpdir, num_server):
p.join()
assert p.exitcode == 0
assert block.number_of_edges() == 0
assert block.num_edges() == 0
assert len(block.etypes) == len(g.etypes)
......@@ -733,7 +733,7 @@ def check_rpc_hetero_etype_sampling_empty_shuffle(tmpdir, num_server):
p.join()
assert p.exitcode == 0
assert block.number_of_edges() == 0
assert block.num_edges() == 0
assert len(block.etypes) == len(g.etypes)
......@@ -841,7 +841,7 @@ def check_rpc_bipartite_sampling_empty(tmpdir, num_server):
p.join()
assert p.exitcode == 0
assert block.number_of_edges() == 0
assert block.num_edges() == 0
assert len(block.etypes) == len(g.etypes)
......@@ -943,7 +943,7 @@ def check_rpc_bipartite_etype_sampling_empty(tmpdir, num_server):
assert p.exitcode == 0
assert block is not None
assert block.number_of_edges() == 0
assert block.num_edges() == 0
assert len(block.etypes) == len(g.etypes)
......@@ -1071,7 +1071,7 @@ def check_standalone_sampling(tmpdir):
sampled_graph = sample_neighbors(dist_graph, [0, 10, 99, 66, 1024, 2008], 3)
src, dst = sampled_graph.edges()
assert sampled_graph.number_of_nodes() == g.number_of_nodes()
assert sampled_graph.num_nodes() == g.num_nodes()
assert np.all(F.asnumpy(g.has_edges_between(src, dst)))
eids = g.edge_ids(src, dst)
assert np.array_equal(
......@@ -1117,7 +1117,7 @@ def check_standalone_etype_sampling(tmpdir):
sampled_graph = sample_etype_neighbors(dist_graph, [0, 10, 99, 66, 1023], 3)
src, dst = sampled_graph.edges()
assert sampled_graph.number_of_nodes() == hg.number_of_nodes()
assert sampled_graph.num_nodes() == hg.num_nodes()
assert np.all(F.asnumpy(hg.has_edges_between(src, dst)))
eids = hg.edge_ids(src, dst)
assert np.array_equal(
......@@ -1148,7 +1148,7 @@ def check_standalone_etype_sampling_heterograph(tmpdir):
("paper", "cite", "paper"): (src, dst),
("paper", "cite-by", "paper"): (dst, src),
},
{"paper": hg.number_of_nodes()},
{"paper": hg.num_nodes()},
)
partition_graph(
new_hg,
......@@ -1170,7 +1170,7 @@ def check_standalone_etype_sampling_heterograph(tmpdir):
assert len(src) == 10
src, dst = sampled_graph.edges(etype=("paper", "cite-by", "paper"))
assert len(src) == 10
assert sampled_graph.number_of_nodes() == new_hg.number_of_nodes()
assert sampled_graph.num_nodes() == new_hg.num_nodes()
dgl.distributed.exit_client()
......@@ -1241,7 +1241,7 @@ def check_rpc_in_subgraph_shuffle(tmpdir, num_server):
src, dst = sampled_graph.edges()
src = orig_nid[src]
dst = orig_nid[dst]
assert sampled_graph.number_of_nodes() == g.number_of_nodes()
assert sampled_graph.num_nodes() == g.num_nodes()
assert np.all(F.asnumpy(g.has_edges_between(src, dst)))
subg1 = dgl.in_subgraph(g, orig_nid[nodes])
......
......@@ -637,12 +637,8 @@ def create_random_hetero():
)
edges[etype] = (arr.row, arr.col)
g = dgl.heterograph(edges, num_nodes)
g.nodes["n1"].data["feat"] = F.unsqueeze(
F.arange(0, g.number_of_nodes("n1")), 1
)
g.edges["r1"].data["feat"] = F.unsqueeze(
F.arange(0, g.number_of_edges("r1")), 1
)
g.nodes["n1"].data["feat"] = F.unsqueeze(F.arange(0, g.num_nodes("n1")), 1)
g.edges["r1"].data["feat"] = F.unsqueeze(F.arange(0, g.num_edges("r1")), 1)
return g
......
......@@ -98,18 +98,18 @@ def verify_hetero_graph(g, parts):
for ntype in g.ntypes:
print(
"node {}: {}, {}".format(
ntype, g.number_of_nodes(ntype), num_nodes[ntype]
ntype, g.num_nodes(ntype), num_nodes[ntype]
)
)
assert g.number_of_nodes(ntype) == num_nodes[ntype]
assert g.num_nodes(ntype) == num_nodes[ntype]
# Verify the number of edges are correct.
for etype in g.canonical_etypes:
print(
"edge {}: {}, {}".format(
etype, g.number_of_edges(etype), num_edges[etype]
etype, g.num_edges(etype), num_edges[etype]
)
)
assert g.number_of_edges(etype) == num_edges[etype]
assert g.num_edges(etype) == num_edges[etype]
nids = {ntype: [] for ntype in g.ntypes}
eids = {etype: [] for etype in g.canonical_etypes}
......@@ -149,11 +149,11 @@ def verify_hetero_graph(g, parts):
nids_type = F.cat(nids[ntype], 0)
uniq_ids = F.unique(nids_type)
# We should get all nodes.
assert len(uniq_ids) == g.number_of_nodes(ntype)
assert len(uniq_ids) == g.num_nodes(ntype)
for etype in eids:
eids_type = F.cat(eids[etype], 0)
uniq_ids = F.unique(eids_type)
assert len(uniq_ids) == g.number_of_edges(etype)
assert len(uniq_ids) == g.num_edges(etype)
# TODO(zhengda) this doesn't check 'part_id'
......@@ -235,9 +235,9 @@ def check_hetero_partition(
assert len(orig_nids) == len(hg.ntypes)
assert len(orig_eids) == len(hg.canonical_etypes)
for ntype in hg.ntypes:
assert len(orig_nids[ntype]) == hg.number_of_nodes(ntype)
assert len(orig_nids[ntype]) == hg.num_nodes(ntype)
for etype in hg.canonical_etypes:
assert len(orig_eids[etype]) == hg.number_of_edges(etype)
assert len(orig_eids[etype]) == hg.num_edges(etype)
parts = []
shuffled_labels = []
shuffled_elabels = []
......@@ -334,13 +334,9 @@ def check_partition(
load_feats=True,
graph_formats=None,
):
g.ndata["labels"] = F.arange(0, g.number_of_nodes())
g.ndata["feats"] = F.tensor(
np.random.randn(g.number_of_nodes(), 10), F.float32
)
g.edata["feats"] = F.tensor(
np.random.randn(g.number_of_edges(), 10), F.float32
)
g.ndata["labels"] = F.arange(0, g.num_nodes())
g.ndata["feats"] = F.tensor(np.random.randn(g.num_nodes(), 10), F.float32)
g.edata["feats"] = F.tensor(np.random.randn(g.num_edges(), 10), F.float32)
g.update_all(fn.copy_u("feats", "msg"), fn.sum("msg", "h"))
g.update_all(fn.copy_e("feats", "msg"), fn.sum("msg", "eh"))
num_hops = 2
......@@ -389,8 +385,8 @@ def check_partition(
assert np.all(F.asnumpy(part_ids) == i)
# Check the metadata
assert gpb._num_nodes() == g.number_of_nodes()
assert gpb._num_edges() == g.number_of_edges()
assert gpb._num_nodes() == g.num_nodes()
assert gpb._num_edges() == g.num_edges()
assert gpb.num_partitions() == num_parts
gpb_meta = gpb.metadata()
......
......@@ -30,9 +30,9 @@ def construct_graph(n, is_hetero):
g_list = []
for i in range(n):
g = generate_rand_graph(30, is_hetero)
g.edata["e1"] = F.randn((g.number_of_edges(), 32))
g.edata["e2"] = F.ones((g.number_of_edges(), 32))
g.ndata["n1"] = F.randn((g.number_of_nodes(), 64))
g.edata["e1"] = F.randn((g.num_edges(), 32))
g.edata["e2"] = F.ones((g.num_edges(), 32))
g.ndata["n1"] = F.randn((g.num_nodes(), 64))
g_list.append(g)
return g_list
......
......@@ -250,8 +250,8 @@ def _test_nx_conversion():
# use id feature to test non-tensor copy
g = dgl.from_networkx(nxg, node_attrs=["n1"], edge_attrs=["e1", "id"])
# check graph size
assert g.number_of_nodes() == 5
assert g.number_of_edges() == 4
assert g.num_nodes() == 5
assert g.num_edges() == 4
# check number of features
# test with existing dglgraph (so existing features should be cleared)
assert len(g.ndata) == 1
......@@ -286,8 +286,8 @@ def _test_nx_conversion():
# test with a new graph
g = dgl.from_networkx(nxg, node_attrs=["n1"], edge_attrs=["e1"])
# check graph size
assert g.number_of_nodes() == 7
assert g.number_of_edges() == 7
assert g.num_nodes() == 7
assert g.num_edges() == 7
# check number of features
assert len(g.ndata) == 1
assert len(g.edata) == 1
......@@ -310,8 +310,8 @@ def _test_nx_conversion():
d["h"] = F.tensor([u, v])
g = dgl.from_networkx(nxg, node_attrs=["h"], edge_attrs=["h"])
assert g.number_of_nodes() == 3
assert g.number_of_edges() == 4
assert g.num_nodes() == 3
assert g.num_edges() == 4
assert g.has_edge_between(0, 1)
assert g.has_edge_between(1, 2)
assert F.allclose(g.ndata["h"], F.tensor([[1.0], [2.0], [3.0]]))
......@@ -511,18 +511,18 @@ def test_repr(idtype):
@parametrize_idtype
def test_local_var(idtype):
g = dgl.graph(([0, 1, 2, 3], [1, 2, 3, 4]), idtype=idtype, device=F.ctx())
g.ndata["h"] = F.zeros((g.number_of_nodes(), 3))
g.edata["w"] = F.zeros((g.number_of_edges(), 4))
g.ndata["h"] = F.zeros((g.num_nodes(), 3))
g.edata["w"] = F.zeros((g.num_edges(), 4))
# test override
def foo(g):
g = g.local_var()
g.ndata["h"] = F.ones((g.number_of_nodes(), 3))
g.edata["w"] = F.ones((g.number_of_edges(), 4))
g.ndata["h"] = F.ones((g.num_nodes(), 3))
g.edata["w"] = F.ones((g.num_edges(), 4))
foo(g)
assert F.allclose(g.ndata["h"], F.zeros((g.number_of_nodes(), 3)))
assert F.allclose(g.edata["w"], F.zeros((g.number_of_edges(), 4)))
assert F.allclose(g.ndata["h"], F.zeros((g.num_nodes(), 3)))
assert F.allclose(g.edata["w"], F.zeros((g.num_edges(), 4)))
# test out-place update
def foo(g):
......@@ -531,8 +531,8 @@ def test_local_var(idtype):
g.edges[[2, 3]].data["w"] = F.ones((2, 4))
foo(g)
assert F.allclose(g.ndata["h"], F.zeros((g.number_of_nodes(), 3)))
assert F.allclose(g.edata["w"], F.zeros((g.number_of_edges(), 4)))
assert F.allclose(g.ndata["h"], F.zeros((g.num_nodes(), 3)))
assert F.allclose(g.edata["w"], F.zeros((g.num_edges(), 4)))
# test out-place update 2
def foo(g):
......@@ -541,14 +541,14 @@ def test_local_var(idtype):
g.apply_edges(lambda edges: {"w": edges.data["w"] + 10}, [2, 3])
foo(g)
assert F.allclose(g.ndata["h"], F.zeros((g.number_of_nodes(), 3)))
assert F.allclose(g.edata["w"], F.zeros((g.number_of_edges(), 4)))
assert F.allclose(g.ndata["h"], F.zeros((g.num_nodes(), 3)))
assert F.allclose(g.edata["w"], F.zeros((g.num_edges(), 4)))
# test auto-pop
def foo(g):
g = g.local_var()
g.ndata["hh"] = F.ones((g.number_of_nodes(), 3))
g.edata["ww"] = F.ones((g.number_of_edges(), 4))
g.ndata["hh"] = F.ones((g.num_nodes(), 3))
g.edata["ww"] = F.ones((g.num_edges(), 4))
foo(g)
assert "hh" not in g.ndata
......@@ -584,18 +584,18 @@ def test_local_var(idtype):
@parametrize_idtype
def test_local_scope(idtype):
g = dgl.graph(([0, 1, 2, 3], [1, 2, 3, 4]), idtype=idtype, device=F.ctx())
g.ndata["h"] = F.zeros((g.number_of_nodes(), 3))
g.edata["w"] = F.zeros((g.number_of_edges(), 4))
g.ndata["h"] = F.zeros((g.num_nodes(), 3))
g.edata["w"] = F.zeros((g.num_edges(), 4))
# test override
def foo(g):
with g.local_scope():
g.ndata["h"] = F.ones((g.number_of_nodes(), 3))
g.edata["w"] = F.ones((g.number_of_edges(), 4))
g.ndata["h"] = F.ones((g.num_nodes(), 3))
g.edata["w"] = F.ones((g.num_edges(), 4))
foo(g)
assert F.allclose(g.ndata["h"], F.zeros((g.number_of_nodes(), 3)))
assert F.allclose(g.edata["w"], F.zeros((g.number_of_edges(), 4)))
assert F.allclose(g.ndata["h"], F.zeros((g.num_nodes(), 3)))
assert F.allclose(g.edata["w"], F.zeros((g.num_edges(), 4)))
# test out-place update
def foo(g):
......@@ -604,8 +604,8 @@ def test_local_scope(idtype):
g.edges[[2, 3]].data["w"] = F.ones((2, 4))
foo(g)
assert F.allclose(g.ndata["h"], F.zeros((g.number_of_nodes(), 3)))
assert F.allclose(g.edata["w"], F.zeros((g.number_of_edges(), 4)))
assert F.allclose(g.ndata["h"], F.zeros((g.num_nodes(), 3)))
assert F.allclose(g.edata["w"], F.zeros((g.num_edges(), 4)))
# test out-place update 2
def foo(g):
......@@ -614,14 +614,14 @@ def test_local_scope(idtype):
g.apply_edges(lambda edges: {"w": edges.data["w"] + 10}, [2, 3])
foo(g)
assert F.allclose(g.ndata["h"], F.zeros((g.number_of_nodes(), 3)))
assert F.allclose(g.edata["w"], F.zeros((g.number_of_edges(), 4)))
assert F.allclose(g.ndata["h"], F.zeros((g.num_nodes(), 3)))
assert F.allclose(g.edata["w"], F.zeros((g.num_edges(), 4)))
# test auto-pop
def foo(g):
with g.local_scope():
g.ndata["hh"] = F.ones((g.number_of_nodes(), 3))
g.edata["ww"] = F.ones((g.number_of_edges(), 4))
g.ndata["hh"] = F.ones((g.num_nodes(), 3))
g.edata["ww"] = F.ones((g.num_edges(), 4))
foo(g)
assert "hh" not in g.ndata
......@@ -630,11 +630,11 @@ def test_local_scope(idtype):
# test nested scope
def foo(g):
with g.local_scope():
g.ndata["hh"] = F.ones((g.number_of_nodes(), 3))
g.edata["ww"] = F.ones((g.number_of_edges(), 4))
g.ndata["hh"] = F.ones((g.num_nodes(), 3))
g.edata["ww"] = F.ones((g.num_edges(), 4))
with g.local_scope():
g.ndata["hhh"] = F.ones((g.number_of_nodes(), 3))
g.edata["www"] = F.ones((g.number_of_edges(), 4))
g.ndata["hhh"] = F.ones((g.num_nodes(), 3))
g.edata["www"] = F.ones((g.num_edges(), 4))
assert "hhh" not in g.ndata
assert "www" not in g.edata
......@@ -672,7 +672,7 @@ def test_local_scope(idtype):
@parametrize_idtype
def test_isolated_nodes(idtype):
g = dgl.graph(([0, 1], [1, 2]), num_nodes=5, idtype=idtype, device=F.ctx())
assert g.number_of_nodes() == 5
assert g.num_nodes() == 5
g = dgl.heterograph(
{("user", "plays", "game"): ([0, 0, 1], [2, 3, 2])},
......@@ -681,8 +681,8 @@ def test_isolated_nodes(idtype):
device=F.ctx(),
)
assert g.idtype == idtype
assert g.number_of_nodes("user") == 5
assert g.number_of_nodes("game") == 7
assert g.num_nodes("user") == 5
assert g.num_nodes("game") == 7
# Test backward compatibility
g = dgl.heterograph(
......@@ -692,8 +692,8 @@ def test_isolated_nodes(idtype):
device=F.ctx(),
)
assert g.idtype == idtype
assert g.number_of_nodes("user") == 5
assert g.number_of_nodes("game") == 7
assert g.num_nodes("user") == 5
assert g.num_nodes("game") == 7
@parametrize_idtype
......
......@@ -28,7 +28,7 @@ feat_size = 2
@parametrize_idtype
def test_edge_softmax(g, norm_by, shp, idtype):
g = g.astype(idtype).to(F.ctx())
edata = F.tensor(np.random.rand(g.number_of_edges(), *shp))
edata = F.tensor(np.random.rand(g.num_edges(), *shp))
e1 = F.attach_grad(F.clone(edata))
with F.record_grad():
......
......@@ -117,7 +117,7 @@ def test_spmm(idtype, g, shp, msg, reducer):
print(g.idtype)
hu = F.tensor(np.random.rand(*((g.number_of_src_nodes(),) + shp[0])) + 1)
he = F.tensor(np.random.rand(*((g.number_of_edges(),) + shp[1])) + 1)
he = F.tensor(np.random.rand(*((g.num_edges(),) + shp[1])) + 1)
print("u shape: {}, e shape: {}".format(F.shape(hu), F.shape(he)))
g.srcdata["x"] = F.attach_grad(F.clone(hu))
......@@ -130,7 +130,7 @@ def test_spmm(idtype, g, shp, msg, reducer):
v = gspmm(g, msg, reducer, u, e)
if reducer in ["max", "min"]:
v = F.replace_inf_with_zero(v)
if g.number_of_edges() > 0:
if g.num_edges() > 0:
F.backward(F.reduce_sum(v))
if msg != "copy_rhs":
grad_u = F.grad(u)
......@@ -139,7 +139,7 @@ def test_spmm(idtype, g, shp, msg, reducer):
with F.record_grad():
g.update_all(udf_msg[msg], udf_reduce[reducer])
if g.number_of_edges() > 0:
if g.num_edges() > 0:
v1 = g.dstdata["v"]
assert F.allclose(v, v1)
print("forward passed")
......@@ -224,7 +224,7 @@ def test_sddmm(g, shp, lhs_target, rhs_target, msg, idtype):
if lhs_target == rhs_target:
return
g = g.astype(idtype).to(F.ctx())
if dgl.backend.backend_name == "mxnet" and g.number_of_edges() == 0:
if dgl.backend.backend_name == "mxnet" and g.num_edges() == 0:
pytest.skip() # mxnet do not support zero shape tensor
print(g)
print(g.idtype)
......@@ -232,14 +232,14 @@ def test_sddmm(g, shp, lhs_target, rhs_target, msg, idtype):
len_lhs = select(
lhs_target,
g.number_of_src_nodes(),
g.number_of_edges(),
g.num_edges(),
g.number_of_dst_nodes(),
)
lhs_shp = (len_lhs,) + shp[0]
len_rhs = select(
rhs_target,
g.number_of_src_nodes(),
g.number_of_edges(),
g.num_edges(),
g.number_of_dst_nodes(),
)
rhs_shp = (len_rhs,) + shp[1]
......@@ -270,7 +270,7 @@ def test_sddmm(g, shp, lhs_target, rhs_target, msg, idtype):
with F.record_grad():
g.apply_edges(udf_apply_edges[msg_func])
if g.number_of_edges() > 0:
if g.num_edges() > 0:
e1 = g.edata["m"]
assert F.allclose(e, e1)
print("forward passed")
......
......@@ -562,7 +562,7 @@ def _test_sample_neighbors(hypersparse, prob):
subg = dgl.sampling.sample_neighbors(
g, [0, 1], -1, prob=p, replace=replace
)
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.num_nodes() == g.num_nodes()
u, v = subg.edges()
u_ans, v_ans, e_ans = g.in_edges([0, 1], form="all")
if p is not None:
......@@ -579,8 +579,8 @@ def _test_sample_neighbors(hypersparse, prob):
subg = dgl.sampling.sample_neighbors(
g, [0, 1], 2, prob=p, replace=replace
)
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.number_of_edges() == 4
assert subg.num_nodes() == g.num_nodes()
assert subg.num_edges() == 4
u, v = subg.edges()
assert set(F.asnumpy(F.unique(v))) == {0, 1}
assert F.array_equal(
......@@ -603,7 +603,7 @@ def _test_sample_neighbors(hypersparse, prob):
subg = dgl.sampling.sample_neighbors(
g, [0, 2], -1, prob=p, replace=replace
)
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.num_nodes() == g.num_nodes()
u, v = subg.edges()
u_ans, v_ans, e_ans = g.in_edges([0, 2], form="all")
if p is not None:
......@@ -620,9 +620,9 @@ def _test_sample_neighbors(hypersparse, prob):
subg = dgl.sampling.sample_neighbors(
g, [0, 2], 2, prob=p, replace=replace
)
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.num_nodes() == g.num_nodes()
num_edges = 4 if replace else 3
assert subg.number_of_edges() == num_edges
assert subg.num_edges() == num_edges
u, v = subg.edges()
assert set(F.asnumpy(F.unique(v))) == {0, 2}
assert F.array_equal(
......@@ -646,10 +646,10 @@ def _test_sample_neighbors(hypersparse, prob):
)
assert len(subg.ntypes) == 3
assert len(subg.etypes) == 4
assert subg["follow"].number_of_edges() == 6 if p is None else 4
assert subg["play"].number_of_edges() == 1
assert subg["liked-by"].number_of_edges() == 4
assert subg["flips"].number_of_edges() == 0
assert subg["follow"].num_edges() == 6 if p is None else 4
assert subg["play"].num_edges() == 1
assert subg["liked-by"].num_edges() == 4
assert subg["flips"].num_edges() == 0
for i in range(10):
subg = dgl.sampling.sample_neighbors(
......@@ -657,10 +657,10 @@ def _test_sample_neighbors(hypersparse, prob):
)
assert len(subg.ntypes) == 3
assert len(subg.etypes) == 4
assert subg["follow"].number_of_edges() == 4
assert subg["play"].number_of_edges() == 2 if replace else 1
assert subg["liked-by"].number_of_edges() == 4 if replace else 3
assert subg["flips"].number_of_edges() == 0
assert subg["follow"].num_edges() == 4
assert subg["play"].num_edges() == 2 if replace else 1
assert subg["liked-by"].num_edges() == 4 if replace else 3
assert subg["flips"].num_edges() == 0
_test3(prob, True) # w/ replacement, uniform
_test3(prob, False) # w/o replacement, uniform
......@@ -675,10 +675,10 @@ def _test_sample_neighbors(hypersparse, prob):
)
assert len(subg.ntypes) == 3
assert len(subg.etypes) == 4
assert subg["follow"].number_of_edges() == 2
assert subg["play"].number_of_edges() == 2
assert subg["liked-by"].number_of_edges() == 0
assert subg["flips"].number_of_edges() == 4
assert subg["follow"].num_edges() == 2
assert subg["play"].num_edges() == 2
assert subg["liked-by"].num_edges() == 0
assert subg["flips"].num_edges() == 4
def _test_sample_neighbors_outedge(hypersparse):
......@@ -688,7 +688,7 @@ def _test_sample_neighbors_outedge(hypersparse):
subg = dgl.sampling.sample_neighbors(
g, [0, 1], -1, prob=p, replace=replace, edge_dir="out"
)
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.num_nodes() == g.num_nodes()
u, v = subg.edges()
u_ans, v_ans, e_ans = g.out_edges([0, 1], form="all")
if p is not None:
......@@ -705,8 +705,8 @@ def _test_sample_neighbors_outedge(hypersparse):
subg = dgl.sampling.sample_neighbors(
g, [0, 1], 2, prob=p, replace=replace, edge_dir="out"
)
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.number_of_edges() == 4
assert subg.num_nodes() == g.num_nodes()
assert subg.num_edges() == 4
u, v = subg.edges()
assert set(F.asnumpy(F.unique(u))) == {0, 1}
assert F.array_equal(
......@@ -731,7 +731,7 @@ def _test_sample_neighbors_outedge(hypersparse):
subg = dgl.sampling.sample_neighbors(
g, [0, 2], -1, prob=p, replace=replace, edge_dir="out"
)
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.num_nodes() == g.num_nodes()
u, v = subg.edges()
u_ans, v_ans, e_ans = g.out_edges([0, 2], form="all")
if p is not None:
......@@ -748,9 +748,9 @@ def _test_sample_neighbors_outedge(hypersparse):
subg = dgl.sampling.sample_neighbors(
g, [0, 2], 2, prob=p, replace=replace, edge_dir="out"
)
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.num_nodes() == g.num_nodes()
num_edges = 4 if replace else 3
assert subg.number_of_edges() == num_edges
assert subg.num_edges() == num_edges
u, v = subg.edges()
assert set(F.asnumpy(F.unique(u))) == {0, 2}
assert F.array_equal(
......@@ -781,10 +781,10 @@ def _test_sample_neighbors_outedge(hypersparse):
)
assert len(subg.ntypes) == 3
assert len(subg.etypes) == 4
assert subg["follow"].number_of_edges() == 6 if p is None else 4
assert subg["play"].number_of_edges() == 1
assert subg["liked-by"].number_of_edges() == 4
assert subg["flips"].number_of_edges() == 0
assert subg["follow"].num_edges() == 6 if p is None else 4
assert subg["play"].num_edges() == 1
assert subg["liked-by"].num_edges() == 4
assert subg["flips"].num_edges() == 0
for i in range(10):
subg = dgl.sampling.sample_neighbors(
......@@ -797,10 +797,10 @@ def _test_sample_neighbors_outedge(hypersparse):
)
assert len(subg.ntypes) == 3
assert len(subg.etypes) == 4
assert subg["follow"].number_of_edges() == 4
assert subg["play"].number_of_edges() == 2 if replace else 1
assert subg["liked-by"].number_of_edges() == 4 if replace else 3
assert subg["flips"].number_of_edges() == 0
assert subg["follow"].num_edges() == 4
assert subg["play"].num_edges() == 2 if replace else 1
assert subg["liked-by"].num_edges() == 4 if replace else 3
assert subg["flips"].num_edges() == 0
_test3(None, True) # w/ replacement, uniform
_test3(None, False) # w/o replacement, uniform
......@@ -813,7 +813,7 @@ def _test_sample_neighbors_topk(hypersparse):
def _test1():
subg = dgl.sampling.select_topk(g, -1, "weight", [0, 1])
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.num_nodes() == g.num_nodes()
u, v = subg.edges()
u_ans, v_ans = subg.in_edges([0, 1])
uv = set(zip(F.asnumpy(u), F.asnumpy(v)))
......@@ -821,8 +821,8 @@ def _test_sample_neighbors_topk(hypersparse):
assert uv == uv_ans
subg = dgl.sampling.select_topk(g, 2, "weight", [0, 1])
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.number_of_edges() == 4
assert subg.num_nodes() == g.num_nodes()
assert subg.num_edges() == 4
u, v = subg.edges()
edge_set = set(zip(list(F.asnumpy(u)), list(F.asnumpy(v))))
assert F.array_equal(g.edge_ids(u, v), subg.edata[dgl.EID])
......@@ -832,7 +832,7 @@ def _test_sample_neighbors_topk(hypersparse):
def _test2(): # k > #neighbors
subg = dgl.sampling.select_topk(g, -1, "weight", [0, 2])
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.num_nodes() == g.num_nodes()
u, v = subg.edges()
u_ans, v_ans = subg.in_edges([0, 2])
uv = set(zip(F.asnumpy(u), F.asnumpy(v)))
......@@ -840,8 +840,8 @@ def _test_sample_neighbors_topk(hypersparse):
assert uv == uv_ans
subg = dgl.sampling.select_topk(g, 2, "weight", [0, 2])
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.number_of_edges() == 3
assert subg.num_nodes() == g.num_nodes()
assert subg.num_edges() == 3
u, v = subg.edges()
assert F.array_equal(g.edge_ids(u, v), subg.edata[dgl.EID])
edge_set = set(zip(list(F.asnumpy(u)), list(F.asnumpy(v))))
......@@ -873,7 +873,7 @@ def _test_sample_neighbors_topk(hypersparse):
hg["liked-by"].edge_ids(u, v), subg["liked-by"].edata[dgl.EID]
)
assert edge_set == {(2, 0), (2, 1), (1, 0)}
assert subg["flips"].number_of_edges() == 0
assert subg["flips"].num_edges() == 0
_test3()
......@@ -886,10 +886,10 @@ def _test_sample_neighbors_topk(hypersparse):
)
assert len(subg.ntypes) == 3
assert len(subg.etypes) == 4
assert subg["follow"].number_of_edges() == 2
assert subg["play"].number_of_edges() == 1
assert subg["liked-by"].number_of_edges() == 0
assert subg["flips"].number_of_edges() == 4
assert subg["follow"].num_edges() == 2
assert subg["play"].num_edges() == 1
assert subg["liked-by"].num_edges() == 0
assert subg["flips"].num_edges() == 4
def _test_sample_neighbors_topk_outedge(hypersparse):
......@@ -897,7 +897,7 @@ def _test_sample_neighbors_topk_outedge(hypersparse):
def _test1():
subg = dgl.sampling.select_topk(g, -1, "weight", [0, 1], edge_dir="out")
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.num_nodes() == g.num_nodes()
u, v = subg.edges()
u_ans, v_ans = subg.out_edges([0, 1])
uv = set(zip(F.asnumpy(u), F.asnumpy(v)))
......@@ -905,8 +905,8 @@ def _test_sample_neighbors_topk_outedge(hypersparse):
assert uv == uv_ans
subg = dgl.sampling.select_topk(g, 2, "weight", [0, 1], edge_dir="out")
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.number_of_edges() == 4
assert subg.num_nodes() == g.num_nodes()
assert subg.num_edges() == 4
u, v = subg.edges()
edge_set = set(zip(list(F.asnumpy(u)), list(F.asnumpy(v))))
assert F.array_equal(g.edge_ids(u, v), subg.edata[dgl.EID])
......@@ -916,7 +916,7 @@ def _test_sample_neighbors_topk_outedge(hypersparse):
def _test2(): # k > #neighbors
subg = dgl.sampling.select_topk(g, -1, "weight", [0, 2], edge_dir="out")
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.num_nodes() == g.num_nodes()
u, v = subg.edges()
u_ans, v_ans = subg.out_edges([0, 2])
uv = set(zip(F.asnumpy(u), F.asnumpy(v)))
......@@ -924,8 +924,8 @@ def _test_sample_neighbors_topk_outedge(hypersparse):
assert uv == uv_ans
subg = dgl.sampling.select_topk(g, 2, "weight", [0, 2], edge_dir="out")
assert subg.number_of_nodes() == g.number_of_nodes()
assert subg.number_of_edges() == 3
assert subg.num_nodes() == g.num_nodes()
assert subg.num_edges() == 3
u, v = subg.edges()
edge_set = set(zip(list(F.asnumpy(u)), list(F.asnumpy(v))))
assert F.array_equal(g.edge_ids(u, v), subg.edata[dgl.EID])
......@@ -957,7 +957,7 @@ def _test_sample_neighbors_topk_outedge(hypersparse):
hg["liked-by"].edge_ids(u, v), subg["liked-by"].edata[dgl.EID]
)
assert edge_set == {(0, 2), (1, 2), (0, 1)}
assert subg["flips"].number_of_edges() == 0
assert subg["flips"].num_edges() == 0
_test3()
......@@ -1011,19 +1011,19 @@ def test_sample_neighbors_with_0deg():
sg = dgl.sampling.sample_neighbors(
g, F.tensor([1, 2], dtype=F.int64), 2, edge_dir="in", replace=False
)
assert sg.number_of_edges() == 0
assert sg.num_edges() == 0
sg = dgl.sampling.sample_neighbors(
g, F.tensor([1, 2], dtype=F.int64), 2, edge_dir="in", replace=True
)
assert sg.number_of_edges() == 0
assert sg.num_edges() == 0
sg = dgl.sampling.sample_neighbors(
g, F.tensor([1, 2], dtype=F.int64), 2, edge_dir="out", replace=False
)
assert sg.number_of_edges() == 0
assert sg.num_edges() == 0
sg = dgl.sampling.sample_neighbors(
g, F.tensor([1, 2], dtype=F.int64), 2, edge_dir="out", replace=True
)
assert sg.number_of_edges() == 0
assert sg.num_edges() == 0
def create_test_graph(num_nodes, num_edges_per_node, bipartite=False):
......@@ -1118,7 +1118,7 @@ def test_sample_neighbors_biased_homogeneous():
check_num(subg.edges()[0], tag)
u, v = subg.edges()
edge_set = set(zip(list(F.asnumpy(u)), list(F.asnumpy(v))))
assert len(edge_set) == subg.number_of_edges()
assert len(edge_set) == subg.num_edges()
# inedge / with replacement
for _ in range(5):
......@@ -1136,7 +1136,7 @@ def test_sample_neighbors_biased_homogeneous():
check_num(subg.edges()[1], tag)
u, v = subg.edges()
edge_set = set(zip(list(F.asnumpy(u)), list(F.asnumpy(v))))
assert len(edge_set) == subg.number_of_edges()
assert len(edge_set) == subg.num_edges()
# outedge / with replacement
for _ in range(5):
......@@ -1175,7 +1175,7 @@ def test_sample_neighbors_biased_bipartite():
check_num(subg.edges()[0], tag)
u, v = subg.edges()
edge_set = set(zip(list(F.asnumpy(u)), list(F.asnumpy(v))))
assert len(edge_set) == subg.number_of_edges()
assert len(edge_set) == subg.num_edges()
# inedge / with replacement
for _ in range(5):
......@@ -1194,7 +1194,7 @@ def test_sample_neighbors_biased_bipartite():
check_num(subg.edges()[1], tag)
u, v = subg.edges()
edge_set = set(zip(list(F.asnumpy(u)), list(F.asnumpy(v))))
assert len(edge_set) == subg.number_of_edges()
assert len(edge_set) == subg.num_edges()
# outedge / with replacement
for _ in range(5):
......
......@@ -53,8 +53,8 @@ def test_batch_unbatch(idtype):
t2 = tree2(idtype)
bg = dgl.batch([t1, t2])
assert bg.number_of_nodes() == 10
assert bg.number_of_edges() == 8
assert bg.num_nodes() == 10
assert bg.num_edges() == 8
assert bg.batch_size == 2
assert F.allclose(bg.batch_num_nodes(), F.tensor([5, 5]))
assert F.allclose(bg.batch_num_edges(), F.tensor([4, 4]))
......@@ -72,8 +72,8 @@ def test_batch_unbatch1(idtype):
t2 = tree2(idtype)
b1 = dgl.batch([t1, t2])
b2 = dgl.batch([t2, b1])
assert b2.number_of_nodes() == 15
assert b2.number_of_edges() == 12
assert b2.num_nodes() == 15
assert b2.num_edges() == 12
assert b2.batch_size == 3
assert F.allclose(b2.batch_num_nodes(), F.tensor([5, 5, 5]))
assert F.allclose(b2.batch_num_edges(), F.tensor([4, 4, 4]))
......@@ -98,10 +98,10 @@ def test_batch_unbatch_frame(idtype):
"""
t1 = tree1(idtype)
t2 = tree2(idtype)
N1 = t1.number_of_nodes()
E1 = t1.number_of_edges()
N2 = t2.number_of_nodes()
E2 = t2.number_of_edges()
N1 = t1.num_nodes()
E1 = t1.num_edges()
N2 = t2.num_nodes()
E2 = t2.num_edges()
D = 10
t1.ndata["h"] = F.randn((N1, D))
t1.edata["h"] = F.randn((E1, D))
......
......@@ -16,14 +16,14 @@ def check_equivalence_between_heterographs(
assert g1.canonical_etypes == g2.canonical_etypes
for nty in g1.ntypes:
assert g1.number_of_nodes(nty) == g2.number_of_nodes(nty)
assert g1.num_nodes(nty) == g2.num_nodes(nty)
for ety in g1.etypes:
if len(g1._etype2canonical[ety]) > 0:
assert g1.number_of_edges(ety) == g2.number_of_edges(ety)
assert g1.num_edges(ety) == g2.num_edges(ety)
for ety in g1.canonical_etypes:
assert g1.number_of_edges(ety) == g2.number_of_edges(ety)
assert g1.num_edges(ety) == g2.num_edges(ety)
src1, dst1, eid1 = g1.edges(etype=ety, form="all")
src2, dst2, eid2 = g2.edges(etype=ety, form="all")
assert F.allclose(src1, src2)
......@@ -32,7 +32,7 @@ def check_equivalence_between_heterographs(
if node_attrs is not None:
for nty in node_attrs.keys():
if g1.number_of_nodes(nty) == 0:
if g1.num_nodes(nty) == 0:
continue
for feat_name in node_attrs[nty]:
assert F.allclose(
......@@ -41,7 +41,7 @@ def check_equivalence_between_heterographs(
if edge_attrs is not None:
for ety in edge_attrs.keys():
if g1.number_of_edges(ety) == 0:
if g1.num_edges(ety) == 0:
continue
for feat_name in edge_attrs[ety]:
assert F.allclose(
......@@ -69,27 +69,27 @@ def test_topology(gs, idtype):
for ntype in bg.ntypes:
print(ntype)
assert F.asnumpy(bg.batch_num_nodes(ntype)).tolist() == [
g1.number_of_nodes(ntype),
g2.number_of_nodes(ntype),
g1.num_nodes(ntype),
g2.num_nodes(ntype),
]
assert bg.number_of_nodes(ntype) == (
g1.number_of_nodes(ntype) + g2.number_of_nodes(ntype)
assert bg.num_nodes(ntype) == (
g1.num_nodes(ntype) + g2.num_nodes(ntype)
)
# Test number of edges
for etype in bg.canonical_etypes:
assert F.asnumpy(bg.batch_num_edges(etype)).tolist() == [
g1.number_of_edges(etype),
g2.number_of_edges(etype),
g1.num_edges(etype),
g2.num_edges(etype),
]
assert bg.number_of_edges(etype) == (
g1.number_of_edges(etype) + g2.number_of_edges(etype)
assert bg.num_edges(etype) == (
g1.num_edges(etype) + g2.num_edges(etype)
)
# Test relabeled nodes
for ntype in bg.ntypes:
assert list(F.asnumpy(bg.nodes(ntype))) == list(
range(bg.number_of_nodes(ntype))
range(bg.num_nodes(ntype))
)
# Test relabeled edges
......@@ -160,33 +160,29 @@ def test_batching_batched(idtype):
# Test number of nodes
for ntype in bg2.ntypes:
assert F.asnumpy(bg2.batch_num_nodes(ntype)).tolist() == [
g1.number_of_nodes(ntype),
g2.number_of_nodes(ntype),
g3.number_of_nodes(ntype),
g1.num_nodes(ntype),
g2.num_nodes(ntype),
g3.num_nodes(ntype),
]
assert bg2.number_of_nodes(ntype) == (
g1.number_of_nodes(ntype)
+ g2.number_of_nodes(ntype)
+ g3.number_of_nodes(ntype)
assert bg2.num_nodes(ntype) == (
g1.num_nodes(ntype) + g2.num_nodes(ntype) + g3.num_nodes(ntype)
)
# Test number of edges
for etype in bg2.canonical_etypes:
assert F.asnumpy(bg2.batch_num_edges(etype)).tolist() == [
g1.number_of_edges(etype),
g2.number_of_edges(etype),
g3.number_of_edges(etype),
g1.num_edges(etype),
g2.num_edges(etype),
g3.num_edges(etype),
]
assert bg2.number_of_edges(etype) == (
g1.number_of_edges(etype)
+ g2.number_of_edges(etype)
+ g3.number_of_edges(etype)
assert bg2.num_edges(etype) == (
g1.num_edges(etype) + g2.num_edges(etype) + g3.num_edges(etype)
)
# Test relabeled nodes
for ntype in bg2.ntypes:
assert list(F.asnumpy(bg2.nodes(ntype))) == list(
range(bg2.number_of_nodes(ntype))
range(bg2.num_nodes(ntype))
)
# Test relabeled edges
......@@ -374,15 +370,15 @@ def test_empty_relation(idtype):
# Test number of nodes
for ntype in bg.ntypes:
assert F.asnumpy(bg.batch_num_nodes(ntype)).tolist() == [
g1.number_of_nodes(ntype),
g2.number_of_nodes(ntype),
g1.num_nodes(ntype),
g2.num_nodes(ntype),
]
# Test number of edges
for etype in bg.canonical_etypes:
assert F.asnumpy(bg.batch_num_edges(etype)).tolist() == [
g1.number_of_edges(etype),
g2.number_of_edges(etype),
g1.num_edges(etype),
g2.num_edges(etype),
]
# Test features
......
......@@ -11,8 +11,8 @@ import numpy as np
)
def test_rand_graph():
g = dgl.rand_graph(10000, 100000)
assert g.number_of_nodes() == 10000
assert g.number_of_edges() == 100000
assert g.num_nodes() == 10000
assert g.num_edges() == 100000
# test random seed
dgl.random.seed(42)
g1 = dgl.rand_graph(100, 30)
......
......@@ -44,8 +44,8 @@ def generate_feature(g, broadcast="none", binary_op="none"):
'e', 'v', 'none'
"""
np.random.seed(31)
nv = g.number_of_nodes()
ne = g.number_of_edges()
nv = g.num_nodes()
ne = g.num_edges()
if binary_op == "dot":
if broadcast == "e":
u = F.tensor(np.random.uniform(-1, 1, (nv, D1, D2, D3, D4)))
......@@ -401,7 +401,7 @@ def test_all_binary_builtins():
@pytest.mark.parametrize("g", get_cases(["homo-zero-degree"]))
def test_mean_zero_degree(g, idtype):
g = g.astype(idtype).to(F.ctx())
g.ndata["h"] = F.ones((g.number_of_nodes(), 3))
g.ndata["h"] = F.ones((g.num_nodes(), 3))
g.update_all(fn.copy_u("h", "m"), fn.mean("m", "x"))
deg = F.asnumpy(g.in_degrees())
v = F.tensor(np.where(deg == 0)[0])
......
......@@ -67,8 +67,8 @@ def gen_from_data(data, readonly, sort):
def test_query():
def _test_one(g):
assert g.number_of_nodes() == 10
assert g.number_of_edges() == 20
assert g.num_nodes() == 10
assert g.num_edges() == 20
for i in range(10):
assert g.has_nodes(i)
......@@ -158,8 +158,8 @@ def test_query():
_test_one(g)
def _test_csr_one(g):
assert g.number_of_nodes() == 10
assert g.number_of_edges() == 20
assert g.num_nodes() == 10
assert g.num_edges() == 20
for i in range(10):
assert g.has_nodes(i)
......
......@@ -21,7 +21,7 @@ from utils import (
def _assert_is_identical_nodeflow(nf1, nf2):
assert nf1.number_of_nodes() == nf2.number_of_nodes()
assert nf1.num_nodes() == nf2.num_nodes()
src, dst = nf1.all_edges()
src2, dst2 = nf2.all_edges()
assert F.array_equal(src, src2)
......@@ -96,7 +96,7 @@ def test_pickling_graph_index():
gi2 = _reconstruct_pickle(gi)
assert gi2.number_of_nodes() == gi.number_of_nodes()
assert gi2.num_nodes() == gi.num_nodes()
src_idx2, dst_idx2, _ = gi2.edges()
assert F.array_equal(src_idx.tousertensor(), src_idx2.tousertensor())
assert F.array_equal(dst_idx.tousertensor(), dst_idx2.tousertensor())
......
......@@ -11,26 +11,26 @@ def test_node_removal(idtype):
g = g.astype(idtype).to(F.ctx())
g.add_nodes(10)
g.add_edges(0, 0)
assert g.number_of_nodes() == 10
assert g.num_nodes() == 10
g.ndata["id"] = F.arange(0, 10)
# remove nodes
g.remove_nodes(range(4, 7))
assert g.number_of_nodes() == 7
assert g.num_nodes() == 7
assert F.array_equal(g.ndata["id"], F.tensor([0, 1, 2, 3, 7, 8, 9]))
assert dgl.NID not in g.ndata
assert dgl.EID not in g.edata
# add nodes
g.add_nodes(3)
assert g.number_of_nodes() == 10
assert g.num_nodes() == 10
assert F.array_equal(
g.ndata["id"], F.tensor([0, 1, 2, 3, 7, 8, 9, 0, 0, 0])
)
# remove nodes
g.remove_nodes(range(1, 4), store_ids=True)
assert g.number_of_nodes() == 7
assert g.num_nodes() == 7
assert F.array_equal(g.ndata["id"], F.tensor([0, 7, 8, 9, 0, 0, 0]))
assert dgl.NID in g.ndata
assert dgl.EID in g.edata
......@@ -44,25 +44,25 @@ def test_multigraph_node_removal(idtype):
for i in range(5):
g.add_edges(i, i)
g.add_edges(i, i)
assert g.number_of_nodes() == 5
assert g.number_of_edges() == 10
assert g.num_nodes() == 5
assert g.num_edges() == 10
# remove nodes
g.remove_nodes([2, 3])
assert g.number_of_nodes() == 3
assert g.number_of_edges() == 6
assert g.num_nodes() == 3
assert g.num_edges() == 6
# add nodes
g.add_nodes(1)
g.add_edges(1, 1)
g.add_edges(1, 1)
assert g.number_of_nodes() == 4
assert g.number_of_edges() == 8
assert g.num_nodes() == 4
assert g.num_edges() == 8
# remove nodes
g.remove_nodes([0])
assert g.number_of_nodes() == 3
assert g.number_of_edges() == 6
assert g.num_nodes() == 3
assert g.num_edges() == 6
@parametrize_idtype
......@@ -73,24 +73,24 @@ def test_multigraph_edge_removal(idtype):
for i in range(5):
g.add_edges(i, i)
g.add_edges(i, i)
assert g.number_of_nodes() == 5
assert g.number_of_edges() == 10
assert g.num_nodes() == 5
assert g.num_edges() == 10
# remove edges
g.remove_edges([2, 3])
assert g.number_of_nodes() == 5
assert g.number_of_edges() == 8
assert g.num_nodes() == 5
assert g.num_edges() == 8
# add edges
g.add_edges(1, 1)
g.add_edges(1, 1)
assert g.number_of_nodes() == 5
assert g.number_of_edges() == 10
assert g.num_nodes() == 5
assert g.num_edges() == 10
# remove edges
g.remove_edges([0, 1])
assert g.number_of_nodes() == 5
assert g.number_of_edges() == 8
assert g.num_nodes() == 5
assert g.num_edges() == 8
@parametrize_idtype
......@@ -105,8 +105,8 @@ def test_edge_removal(idtype):
# remove edges
g.remove_edges(range(13, 20))
assert g.number_of_nodes() == 5
assert g.number_of_edges() == 18
assert g.num_nodes() == 5
assert g.num_edges() == 18
assert F.array_equal(
g.edata["id"], F.tensor(list(range(13)) + list(range(20, 25)))
)
......@@ -115,16 +115,16 @@ def test_edge_removal(idtype):
# add edges
g.add_edges(3, 3)
assert g.number_of_nodes() == 5
assert g.number_of_edges() == 19
assert g.num_nodes() == 5
assert g.num_edges() == 19
assert F.array_equal(
g.edata["id"], F.tensor(list(range(13)) + list(range(20, 25)) + [0])
)
# remove edges
g.remove_edges(range(2, 10), store_ids=True)
assert g.number_of_nodes() == 5
assert g.number_of_edges() == 11
assert g.num_nodes() == 5
assert g.num_edges() == 11
assert F.array_equal(
g.edata["id"], F.tensor([0, 1, 10, 11, 12, 20, 21, 22, 23, 24, 0])
)
......@@ -140,35 +140,35 @@ def test_node_and_edge_removal(idtype):
for j in range(10):
g.add_edges(i, j)
g.edata["id"] = F.arange(0, 100)
assert g.number_of_nodes() == 10
assert g.number_of_edges() == 100
assert g.num_nodes() == 10
assert g.num_edges() == 100
# remove nodes
g.remove_nodes([2, 4])
assert g.number_of_nodes() == 8
assert g.number_of_edges() == 64
assert g.num_nodes() == 8
assert g.num_edges() == 64
# remove edges
g.remove_edges(range(10, 20))
assert g.number_of_nodes() == 8
assert g.number_of_edges() == 54
assert g.num_nodes() == 8
assert g.num_edges() == 54
# add nodes
g.add_nodes(2)
assert g.number_of_nodes() == 10
assert g.number_of_edges() == 54
assert g.num_nodes() == 10
assert g.num_edges() == 54
# add edges
for i in range(8, 10):
for j in range(8, 10):
g.add_edges(i, j)
assert g.number_of_nodes() == 10
assert g.number_of_edges() == 58
assert g.num_nodes() == 10
assert g.num_edges() == 58
# remove edges
g.remove_edges(range(10, 20))
assert g.number_of_nodes() == 10
assert g.number_of_edges() == 48
assert g.num_nodes() == 10
assert g.num_edges() == 48
@parametrize_idtype
......@@ -209,8 +209,8 @@ def test_issue1287(idtype):
g.add_nodes(5)
g.add_edges([0, 2, 3, 1, 1], [1, 0, 3, 1, 0])
g.remove_nodes([0, 1])
g.ndata["h"] = F.randn((g.number_of_nodes(), 3))
g.edata["h"] = F.randn((g.number_of_edges(), 2))
g.ndata["h"] = F.randn((g.num_nodes(), 3))
g.edata["h"] = F.randn((g.num_edges(), 2))
# remove edges
g = dgl.DGLGraph()
......@@ -219,8 +219,8 @@ def test_issue1287(idtype):
g.add_edges([0, 2, 3, 1, 1], [1, 0, 3, 1, 0])
g.remove_edges([0, 1])
g = g.to(F.ctx())
g.ndata["h"] = F.randn((g.number_of_nodes(), 3))
g.edata["h"] = F.randn((g.number_of_edges(), 2))
g.ndata["h"] = F.randn((g.num_nodes(), 3))
g.edata["h"] = F.randn((g.num_edges(), 2))
if __name__ == "__main__":
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment