code: def test_multiple_test_datasets(self):
      opt = Options()
      opt.dataset_name = os.path.join(os.getcwd(), "test")
      opt.dataroot = os.path.join(os.getcwd(), "test")
  
      class MultiTestDataset(BaseDataset):
          def __init__(self, dataset_opt):
              super(MultiTestDataset, self).__init__(dataset_opt)
  
              self.train_dataset = CustomMockDataset(10, 1, 3, 10)
              self.val_dataset = CustomMockDataset(10, 1, 3, 10)
              self.test_dataset = [
                  CustomMockDataset(10, 1, 3, 10),
                  CustomMockDataset(10, 1, 3, 20),
              ]
  
      dataset = MultiTestDataset(opt)
  
      model_config = MockModelConfig()
      model_config.conv_type = "dense"
      model = MockModel(model_config)
      dataset.create_dataloaders(model, 5, True, 0, False)
  
      loaders = dataset.test_dataloaders
      self.assertEqual(len(loaders), 2)
      self.assertEqual(len(loaders[0].dataset), 10)
      self.assertEqual(len(loaders[1].dataset), 20)
      self.assertEqual(dataset.num_classes, 3)
      self.assertEqual(dataset.is_hierarchical, False)
      self.assertEqual(dataset.has_val_loader, True)
      self.assertEqual(dataset.class_to_segments, None)
      self.assertEqual(dataset.feature_dimension, 1)
  
      batch = next(iter(loaders[0]))
      num_samples = BaseDataset.get_num_samples(batch, "dense")
      self.assertEqual(num_samples, 5)
  
      sample = BaseDataset.get_sample(batch, "pos", 1, "dense")
      self.assertEqual(sample.shape, (10, 3))
      sample = BaseDataset.get_sample(batch, "x", 1, "dense")
      self.assertEqual(sample.shape, (10, 1))
      self.assertEqual(
          dataset.num_batches,
          {"train": 2, "val": 2, "test_0": 2, "test_1": 4},
      )
  
imports: import unittest
  from omegaconf import DictConfig, OmegaConf
  import os
  import sys
  from glob import glob
  import torch
  import numpy
  from torch_geometric.data.data import Data
  import torch_geometric.transforms
  from test.mockdatasets import MockDataset, MockDatasetConfig
  from test.mock_models import MockModel, MockModelConfig
  from torch_points3d.datasets.base_dataset import BaseDataset
  from torch_points3d.models.model_factory import instantiate_model
  from torch_points3d.utils.model_building_utils.model_definition_resolver import resolve_model
  from torch_points3d.utils.enums import ConvolutionFormat
  import torch_points3d.core.data_transform
label_desc: Use image node_id 3 for calling the TestDataset obj's underlying member method code with example usage: obj.test_multiple_test_datasets() without return types