code: def test_save_inputs(
      params: Tuple[Dict, Dict],
      tmp_path: Path,
  ) -> None:
      opts = get_config()
      setattr(opts, "video_augmentation.save_inputs.enable", True)
      setattr(
          opts, "video_augmentation.save_inputs.save_dir", str(tmp_path)
      )
      for key, value in params["opts"].items():
          setattr(opts, key, value)
  
      data = {
          "samples": PyAVReader(opts).dummy_audio_video_clips(
              clips_per_video=2,
              num_frames_to_sample=3,
              height=24,
              width=24,
          )
      }
      if params["video_only"]:
          del data["samples"]["audio"]
      SaveInputs(opts, **params["init_kwargs"])(data)
      output_video_paths = list(tmp_path.glob("*/*.mp4"))
      assert (
          len(output_video_paths) == params["expected_output_count"]
      ), f"Expected {params['expected_output_count']} videos, but got: {output_video_paths}."
      for output_video_path in output_video_paths:
          if output_video_path.is_symlink():
              continue
          assert (
              os.stat(output_video_path).st_size > 1000
          ), f"The generated file ({output_video_path}) is too small ({os.stat(output_video_path).st_size})."
  
file_path: ml-cvnets/tests/transforms/test_video.py
imports: import operator
  import os
  from pathlib import Path
  from typing import Dict, Tuple
  import pytest
  import torch
  from data.transforms.video import CropByBoundingBox, SaveInputs, ShuffleAudios, _resize_fn
  from data.video_reader.pyav_reader import PyAVReader
  from tests.configs import get_config
label_desc: Use image node_id 6 for calling a global function with example usage: test_save_inputs(params, tmp_path) without return types