class_docstr: ETH old benchmark with only 4 scenes
docstr: TODO: download the datasets
code: def download(self):
      """
      TODO: download the datasets
      """
      folder = osp.join(self.raw_dir, "test")
      print(folder)
      if files_exist([folder]):  # pragma: no cover
          log.warning("already downloaded {}".format("test"))
          return
      else:
          makedirs(folder)
      log.info("Download elements in the file {}...".format(folder))
      req = requests.get(self.url)
      with open(osp.join(folder, self.name + ".zip"), "wb") as archive:
          archive.write(req.content)
      with ZipFile(
          osp.join(folder, self.name + ".zip"), "r"
      ) as zip_obj:
          log.info("extracting dataset {}".format(self.name))
          zip_obj.extractall(folder)
  
imports: import gdown
  import os
  import os.path
  import logging
  import requests
  import glob
  import re
  import sys
  import csv
  from zipfile import ZipFile
  from torch_points3d.datasets.registration.basetest import BasePCRBTest
  from torch_points3d.datasets.base_dataset import BaseDataset
  from torch_points3d.datasets.registration.base_siamese_dataset import BaseSiameseDataset
  from torch_points3d.datasets.registration.basetest import Base3DMatchTest
  from torch_points3d.datasets.registration.base_siamese_dataset import GeneralFragment
  from torch_points3d.metrics.registration_tracker import FragmentRegistrationTracker
  from torch_points3d.datasets.registration.utils import files_exist
  from torch_points3d.datasets.registration.utils import makedirs
label_desc: Use image node_id 6 for calling the TestPairETH2 obj's underlying member method code with example usage: obj.download() without return types