code: def test_voxelize_convert_atom_pair(self):
      N = 5
      M = 6
      coordinates1 = np.random.rand(N, 3)
      coordinates2 = np.random.rand(M, 3)
      coordinates = [coordinates1, coordinates2]
      box_width = 16
      voxel_width = 1
      voxels_per_edge = int(box_width / voxel_width)
      get_voxels = voxel_utils.convert_atom_pair_to_voxel
      hash_function = hash_utils.hash_ecfp_pair
      feature_dict = {(1, 2): ("C", "O"), (2, 3): ("CC", "OH")}
      nb_channel = 16
      features = voxel_utils.voxelize(
          get_voxels,
          coordinates,
          box_width,
          voxel_width,
          hash_function,
          feature_dict,
          nb_channel=nb_channel,
      )
      assert features.shape == (
          voxels_per_edge,
          voxels_per_edge,
          voxels_per_edge,
          nb_channel,
      )
  
file_path: deepchem/deepchem/utils/test/test_voxel_utils.py
imports: import numpy
  import unittest
  from deepchem.utils import voxel_utils
  from deepchem.utils import hash_utils
label_desc: Use image node_id 4 for calling the TestVoxelUtils obj's underlying member method code with example usage: obj.test_voxelize_convert_atom_pair() without return types