code: def get_ntypes_and_etypes(num_nodes, num_ntypes, num_etypes):
      ntypes = {
          f"n{i}": num_nodes // num_ntypes for i in range(num_ntypes)
      }
      if num_nodes % num_ntypes != 0:
          ntypes["n0"] += num_nodes % num_ntypes
      etypes = []
      count = 0
      while count < num_etypes:
          for n1 in range(num_ntypes):
              for n2 in range(num_ntypes):
                  if count >= num_etypes:
                      break
                  etypes.append((f"n{n1}", f"e{count}", f"n{n2}"))
                  count += 1
      return ntypes, etypes
  
file_path: dgl/tests/python/pytorch/graphbolt/gb_test_utils.py
imports: import os
  import dgl
  import dgl.graphbolt
  import numpy
  import pandas
  import scipy.sparse
  import torch
label_desc: Use image node_id 4 for calling a global function with example usage: get_ntypes_and_etypes(num_nodes, num_ntypes, num_etypes) and returns: ntypes,  etypes