code: def test_predict_step_output_formats(
      tmp_recipe_root_path: Path,
      predict_step_output_dir: Path,
      spark_session,
      output_format: str,
  ):
      rm_name = "model_" + get_random_id()
      output_name = "output_" + get_random_id()
      model_uri = train_log_and_register_model(rm_name, is_dummy=True)
  
      recipe_config = read_yaml(
          tmp_recipe_root_path, _RECIPE_CONFIG_FILE_NAME
      )
      recipe_config.update(
          {
              "steps": {
                  "predict": {
                      "output": {
                          "using": output_format,
                      },
                      "model_uri": model_uri,
                  },
              },
          }
      )
      if output_format == "table":
          recipe_config["steps"]["predict"]["output"][
              "location"
          ] = output_name
      else:
          file_name = f"{output_name}.{output_format}"
          recipe_config["steps"]["predict"]["output"]["location"] = str(
              predict_step_output_dir / file_name
          )
      predict_step = PredictStep.from_recipe_config(
          recipe_config, str(tmp_recipe_root_path)
      )
      predict_step.run(str(predict_step_output_dir))
      prediction_assertions(
          predict_step_output_dir,
          output_format,
          output_name,
          spark_session,
      )
  
imports: import os
  import tempfile
  from pathlib import Path
  from unittest import mock
  import pandas
  import pytest
  from pyspark.sql import SparkSession
  from sklearn.datasets import load_diabetes
  import mlflow
  from mlflow.exceptions import MlflowException
  from mlflow.recipes.artifacts import RegisteredModelVersionInfo
  from mlflow.recipes.steps.predict import _INPUT_FILE_NAME, _SCORED_OUTPUT_FILE_NAME, PredictStep
  from mlflow.recipes.steps.register import _REGISTERED_MV_INFO_FILE
  from mlflow.recipes.utils import _RECIPE_CONFIG_FILE_NAME
  from mlflow.utils.file_utils import read_yaml
  from tests.recipes.helper_functions import get_random_id, train_and_log_model, train_log_and_register_model
label_desc: Use image node_id 9 for calling a global function with example usage: test_predict_step_output_formats(tmp_recipe_root_path, predict_step_output_dir, spark_session, output_format) without return types