code: def test_split_step_run_with_multiple_classes(tmp_path, monkeypatch):
      num_good_rows, split_output_dir, _ = set_up_dataset(
          tmp_path, num_classes=10
      )
  
      split_ratios = [0.6, 0.3, 0.1]
  
      monkeypatch.setenv(
          MLFLOW_RECIPES_EXECUTION_DIRECTORY.name, str(tmp_path)
      )
      with mock.patch(
          "mlflow.recipes.step.get_recipe_name",
          return_value="fake_name",
      ):
          split_step = SplitStep(
              {
                  "split_ratios": split_ratios,
                  "target_col": "y",
                  "recipe": "classification/v1",
              },
              "fake_root",
          )
          split_step.run(str(split_output_dir))
  
      output_train_df = pd.read_parquet(
          str(split_output_dir / "train.parquet")
      )
      output_validation_df = pd.read_parquet(
          str(split_output_dir / "validation.parquet")
      )
      output_test_df = pd.read_parquet(
          str(split_output_dir / "test.parquet")
      )
  
      assert (
          len(output_train_df)
          + len(output_validation_df)
          + len(output_test_df)
          == num_good_rows
      )
  
      merged_output_df = pd.concat(
          [output_train_df, output_validation_df, output_test_df]
      )
      assert merged_output_df.columns.tolist() == ["a", "b", "y"]
      assert set(merged_output_df.a.tolist()) == set(
          range(num_good_rows)
      )
      assert set(merged_output_df.b.tolist()) == {
          str(i) for i in range(num_good_rows)
      }
  
imports: from pathlib import Path
  from unittest import mock
  from unittest.mock import Mock
  import numpy
  import pandas
  import pytest
  import mlflow
  from mlflow.environment_variables import MLFLOW_RECIPES_EXECUTION_DIRECTORY
  from mlflow.exceptions import MlflowException
  from mlflow.recipes.steps.split import _OUTPUT_TEST_FILE_NAME, _OUTPUT_TRAIN_FILE_NAME, _OUTPUT_VALIDATION_FILE_NAME, SplitStep, SplitValues, _get_split_df, _hash_pandas_dataframe, _make_elem_hashable, _validate_user_code_output
  from mlflow.recipes.utils import _RECIPE_CONFIG_FILE_NAME
  from mlflow.utils.file_utils import read_yaml
label_desc: Use image node_id 3 for calling a global function with example usage: test_split_step_run_with_multiple_classes(tmp_path, monkeypatch) without return types