code: def test_num_nodes_edges_homo(total_num_nodes, total_num_edges):
      csc_indptr, indices = gbt.random_homo_graph(
          total_num_nodes, total_num_edges
      )
      edge_attributes = {
          "A1": torch.randn(total_num_edges),
          "A2": torch.randn(total_num_edges),
      }
      graph = gb.fused_csc_sampling_graph(
          csc_indptr, indices, edge_attributes=edge_attributes
      )
  
      assert graph.num_nodes == total_num_nodes
      assert graph.num_edges == total_num_edges
  
imports: import os
  import pickle
  import re
  import tempfile
  import unittest
  import backend
  import dgl
  import dgl.graphbolt
  import pytest
  import torch
  import torch.multiprocessing
  from dgl.graphbolt.base import etype_str_to_tuple
  from scipy import sparse
  from ..None import gb_test_utils
label_desc: Use image node_id 7 for calling a global function with example usage: test_num_nodes_edges_homo(total_num_nodes, total_num_edges) without return types