code: def test_fake_graph_dataset():
      n_graphs = 10
      n_node_features = 5
      n_edge_features = 3
      n_classes = 2
      z_shape = 5
  
      # graph-level labels
      fgg = FakeGraphGenerator(
          min_nodes=3,
          max_nodes=10,
          n_node_features=n_node_features,
          avg_degree=4,
          n_edge_features=n_edge_features,
          n_classes=n_classes,
          task="graph",
          z=z_shape,
      )
      graphs = fgg.sample(n_graphs=n_graphs)
  
      assert len(graphs) == n_graphs
      assert np.unique(graphs.y).shape == (n_classes,)
  
      graph = graphs.X[0]
      assert graph.node_features.shape[1] == n_node_features
      assert graph.edge_features.shape[1] == n_edge_features
      assert graph.z.shape == (1, z_shape)
  
      # node-level labels
      fgg = FakeGraphGenerator(
          min_nodes=3,
          max_nodes=10,
          n_node_features=n_node_features,
          avg_degree=4,
          n_edge_features=n_edge_features,
          n_classes=n_classes,
          task="node",
          z=z_shape,
      )
      graphs = fgg.sample(n_graphs=n_graphs)
  
      assert len(graphs) == n_graphs
  
      graph = graphs.X[0]
      # graph.y contains node-labels and graph.node_features.shape[0]
      # holds number of nodes in that graph
      assert graph.y.shape[0] == graph.node_features.shape[0]
      assert graph.node_features.shape[1] == n_node_features
      assert graph.edge_features.shape[1] == n_edge_features
      assert graph.z.shape == (1, z_shape)
  
imports: import numpy
  from deepchem.utils.fake_data_generator import FakeGraphGenerator, generate_edge_index, remove_self_loops
label_desc: Use image node_id 1 for calling a global function with example usage: test_fake_graph_dataset() without return types