code: def create_test_dir(
      test_id: int,
      input_files: List[str],
      test_base_dir: Path,
      test_ref_dir: Path,
  ) -> None:
      for f in input_files:
          file_to_copy = None
          search_paths = [test_ref_dir]
  
          for search_path in search_paths:
              search_path = search_path / f
              if search_path.exists() and not search_path.is_dir():
                  file_to_copy = search_path
                  break
  
          if file_to_copy is None:
              raise ValueError(
                  f"Input file '{f}' couldn't be found for test {test_id}. Searched in '{test_ref_dir}'"
              )
  
          test_dest_file = test_base_dir / f
          if file_to_copy == test_dest_file:
              continue
          test_dest_file.parent.mkdir(parents=True, exist_ok=True)
          # We always want to replace this file in case it is the output of another test
          if test_dest_file.exists():
              test_dest_file.unlink()
  
          shutil.copy(str(file_to_copy), str(test_dest_file))
  
file_path: vowpal_wabbit/test/run_tests_model_gen_and_load.py
imports: import argparse
  from genericpath import isdir, isfile
  from pathlib import Path
  import re
  import os
  import shutil
  import json
  from run_tests import convert_to_test_data, Color, NoColor, TestData
  import vowpalwabbit
  from typing import Any, Callable, Dict, List, Mapping, Optional, Set, Tuple, Type, Union, cast
label_desc: Use image node_id 1 for calling a global function with example usage: create_test_dir(test_id, input_files, test_base_dir, test_ref_dir) without return types