code: def test_dist_graph_services(g):
      # in_degrees and out_degrees does not support heterograph
      if len(g.etypes) == 1:
          nids = F.arange(0, 128)
  
          # Test in_degrees
          orig_in_degrees = g.ndata["in_degrees"]
          local_in_degrees = g.in_degrees(nids)
          F.allclose(local_in_degrees, orig_in_degrees[nids])
  
          # Test out_degrees
          orig_out_degrees = g.ndata["out_degrees"]
          local_out_degrees = g.out_degrees(nids)
          F.allclose(local_out_degrees, orig_out_degrees[nids])
  
      num_nodes = {ntype: g.num_nodes(ntype) for ntype in g.ntypes}
  
      orig_nid_map = dict()
      dtype = g.edges[g.etypes[0]].data["edge_u"].dtype
      for ntype, _ in num_nodes.items():
          orig_nid = F.tensor(
              np.load(graph_path + f"/orig_nid_array_{ntype}.npy"),
              dtype,
          )
          orig_nid_map[ntype] = orig_nid
  
      etype_eids_uv_map = find_edges_test(g, orig_nid_map)
      edge_subgraph_test(g, etype_eids_uv_map)
      sample_neighbors_test(g)
  
imports: import json
  import os
  from itertools import product
  import dgl
  import dgl.backend
  import numpy
  from dgl.distributed import edge_split, load_partition_book, node_split
label_desc: Use image node_id 12 for calling a global function with example usage: test_dist_graph_services(g) without return types