code: def test_batch_graph_data(self):
      num_nodes_list, num_edge_list = [3, 4, 5], [2, 4, 5]
      num_node_features, num_edge_features = 32, 32
      edge_index_list = [
          np.array([[0, 1], [1, 2]]),
          np.array([[0, 1, 2, 3], [1, 2, 0, 2]]),
          np.array([[0, 1, 2, 3, 4], [1, 2, 3, 4, 0]]),
      ]
  
      graph_list = [
          GraphData(
              node_features=np.random.random_sample(
                  (num_nodes_list[i], num_node_features)
              ),
              edge_index=edge_index_list[i],
              edge_features=np.random.random_sample(
                  (num_edge_list[i], num_edge_features)
              ),
              node_pos_features=None,
          )
          for i in range(len(num_edge_list))
      ]
      batch = BatchGraphData(graph_list)
  
      assert batch.num_nodes == sum(num_nodes_list)
      assert batch.num_node_features == num_node_features
      assert batch.num_edges == sum(num_edge_list)
      assert batch.num_edge_features == num_edge_features
      assert batch.graph_index.shape == (sum(num_nodes_list),)
      assert batch.edge_index.max() == sum(num_edge_list)
      assert batch.edge_index.shape == (2, sum(num_edge_list))
  
file_path: deepchem/deepchem/feat/tests/test_graph_data.py
imports: import unittest
  import numpy
  import pytest
  from deepchem.feat.graph_data import BatchGraphData, GraphData, shortest_path_length
label_desc: Use image node_id 3 for calling the TestGraph obj's underlying member method code with example usage: obj.test_batch_graph_data() without return types