(g)
| 400 | assert g.to_canonical_etype(etypes[i]) == canonical_etypes[i] |
| 401 | |
| 402 | def _test(g): |
| 403 | # number of nodes |
| 404 | assert [g.num_nodes(ntype) for ntype in ntypes] == [3, 2, 2] |
| 405 | |
| 406 | # number of edges |
| 407 | assert [g.num_edges(etype) for etype in etypes] == [2, 4, 2, 2] |
| 408 | |
| 409 | # has_nodes |
| 410 | for ntype in ntypes: |
| 411 | n = g.num_nodes(ntype) |
| 412 | for i in range(n): |
| 413 | assert g.has_nodes(i, ntype) |
| 414 | assert not g.has_nodes(n, ntype) |
| 415 | assert np.array_equal( |
| 416 | F.asnumpy(g.has_nodes([0, n], ntype)).astype("int32"), [1, 0] |
| 417 | ) |
| 418 | |
| 419 | assert not g.is_multigraph |
| 420 | |
| 421 | for etype in etypes: |
| 422 | srcs, dsts = edges[etype] |
| 423 | for src, dst in zip(srcs, dsts): |
| 424 | assert g.has_edges_between(src, dst, etype) |
| 425 | assert F.asnumpy(g.has_edges_between(srcs, dsts, etype)).all() |
| 426 | |
| 427 | srcs, dsts = negative_edges[etype] |
| 428 | for src, dst in zip(srcs, dsts): |
| 429 | assert not g.has_edges_between(src, dst, etype) |
| 430 | assert not F.asnumpy(g.has_edges_between(srcs, dsts, etype)).any() |
| 431 | |
| 432 | srcs, dsts = edges[etype] |
| 433 | n_edges = len(srcs) |
| 434 | |
| 435 | # predecessors & in_edges & in_degree |
| 436 | pred = [s for s, d in zip(srcs, dsts) if d == 0] |
| 437 | assert set(F.asnumpy(g.predecessors(0, etype)).tolist()) == set( |
| 438 | pred |
| 439 | ) |
| 440 | u, v = g.in_edges([0], etype=etype) |
| 441 | assert F.asnumpy(v).tolist() == [0] * len(pred) |
| 442 | assert set(F.asnumpy(u).tolist()) == set(pred) |
| 443 | assert g.in_degrees(0, etype) == len(pred) |
| 444 | |
| 445 | # successors & out_edges & out_degree |
| 446 | succ = [d for s, d in zip(srcs, dsts) if s == 0] |
| 447 | assert set(F.asnumpy(g.successors(0, etype)).tolist()) == set(succ) |
| 448 | u, v = g.out_edges([0], etype=etype) |
| 449 | assert F.asnumpy(u).tolist() == [0] * len(succ) |
| 450 | assert set(F.asnumpy(v).tolist()) == set(succ) |
| 451 | assert g.out_degrees(0, etype) == len(succ) |
| 452 | |
| 453 | # edge_ids |
| 454 | for i, (src, dst) in enumerate(zip(srcs, dsts)): |
| 455 | assert g.edge_ids(src, dst, etype=etype) == i |
| 456 | _, _, eid = g.edge_ids(src, dst, etype=etype, return_uv=True) |
| 457 | assert eid == i |
| 458 | assert F.asnumpy( |
| 459 | g.edge_ids(srcs, dsts, etype=etype) |
no test coverage detected