code: def test_get_data_profile_truncates_large_data_frame(
      data_frame,
      max_cells,
      max_cols,
      max_rows,
      expected_cols,
      expected_rows,
  ):
      step_utils._MAX_PROFILE_CELL_SIZE = max_cells
      step_utils._MAX_PROFILE_COL_SIZE = max_cols
      step_utils._MAX_PROFILE_ROW_SIZE = max_rows
      with mock.patch.object(
          pandas_renderer, "get_html"
      ) as mock_pandas_renderer_html:
          truncated_df = truncate_pandas_data_profile(
              "fake profile", data_frame
          )
          assert truncated_df[1].shape == (expected_rows, expected_cols)
          get_pandas_data_profiles([["fake profile", data_frame]])
          # Initial index of [0][0][0] are from call_args_list to get the 0th call.
          # The next [0][1] are because of the pandas_renderer get_html API
          assert mock_pandas_renderer_html.call_args_list[0][0][0][0][
              1
          ].shape == (
              expected_rows,
              expected_cols,
          )
  
file_path: mlflow/tests/recipes/test_step_utils.py
imports: from unittest import mock
  import numpy
  import pytest
  from pandas import DataFrame
  import mlflow.recipes.utils.step
  from mlflow.exceptions import MlflowException
  from mlflow.recipes.cards import pandas_renderer
  from mlflow.recipes.utils.step import display_html, get_merged_eval_metrics, get_pandas_data_profiles, truncate_pandas_data_profile
label_desc: Use image node_id 6 for calling a global function with example usage: test_get_data_profile_truncates_large_data_frame(data_frame, max_cells, max_cols, max_rows, expected_cols, expected_rows) without return types