code: def test_hyperopt_hiplot_vis_api(
      hyperopt_results_multiple_parameters, tmpdir
  ):
      vis_dir = os.path.join(tmpdir, "visualizations")
  
      # Ensure visualizations directory is empty before creating plots
      if os.path.exists(vis_dir):
          for f in os.listdir(vis_dir):
              os.remove(os.path.join(vis_dir, f))
  
      visualize.hyperopt_hiplot(
          os.path.join(
              hyperopt_results_multiple_parameters,
              HYPEROPT_STATISTICS_FILE_NAME,
          ),
          output_directory=vis_dir,
      )
  
      # test for creation of output directory
      assert os.path.isdir(vis_dir)
  
      # test for generatated html page
      assert os.path.isfile(
          os.path.join(vis_dir, "hyperopt_hiplot.html")
      )
  
imports: import glob
  import logging
  import os
  from tempfile import TemporaryDirectory
  import numpy
  import pytest
  from ludwig import visualize
  from ludwig.api import LudwigModel, TrainingStats
  from ludwig.constants import BATCH_SIZE, ENCODER, NAME, PREDICTIONS, PROBABILITIES, PROBABILITY, TRAINER, TYPE
  from ludwig.data.split import get_splitter
  from ludwig.globals import HYPEROPT_STATISTICS_FILE_NAME
  from ludwig.utils.data_utils import read_csv
  from tests.integration_tests.utils import bag_feature, binary_feature, category_feature, generate_data, LocalTestBackend, number_feature, sequence_feature, set_feature, text_feature
label_desc: Use image node_id 29 for calling a global function with example usage: test_hyperopt_hiplot_vis_api(hyperopt_results_multiple_parameters, tmpdir) without return types