code: def test_exog_to_direct_when_steps_2_exog_DataFrame_3d_float_int_category():
      """
      Test exog_to_direct results when using steps 2 and exog is a
      pandas DataFrame with 3 columns of float, int, category.
      """
      exog = pd.DataFrame(
          {
              "exog_1": pd.Series(np.arange(100, 110), dtype="float64"),
              "exog_2": pd.Series(np.arange(1000, 1010), dtype="int64"),
              "exog_3": pd.Categorical(range(100, 110)),
          }
      )
      results = exog_to_direct(exog=exog, steps=2)
      expected = (
          pd.DataFrame(
              data=np.array(
                  [
                      [100.0, 1000.0, 100.0, 101.0, 1001.0, 101.0],
                      [101.0, 1001.0, 101.0, 102.0, 1002.0, 102.0],
                      [102.0, 1002.0, 102.0, 103.0, 1003.0, 103.0],
                      [103.0, 1003.0, 103.0, 104.0, 1004.0, 104.0],
                      [104.0, 1004.0, 104.0, 105.0, 1005.0, 105.0],
                      [105.0, 1005.0, 105.0, 106.0, 1006.0, 106.0],
                      [106.0, 1006.0, 106.0, 107.0, 1007.0, 107.0],
                      [107.0, 1007.0, 107.0, 108.0, 1008.0, 108.0],
                      [108.0, 1008.0, 108.0, 109.0, 1009.0, 109.0],
                  ]
              ),
              index=pd.RangeIndex(start=1, stop=10, step=1),
              columns=[
                  "exog_1_step_1",
                  "exog_2_step_1",
                  "exog_3_step_1",
                  "exog_1_step_2",
                  "exog_2_step_2",
                  "exog_3_step_2",
              ],
          )
          .astype(
              {
                  "exog_1_step_1": "float64",
                  "exog_2_step_1": "int64",
                  "exog_3_step_1": "int64",
                  "exog_1_step_2": "float64",
                  "exog_2_step_2": "int64",
                  "exog_3_step_2": "int64",
              }
          )
          .astype(
              {
                  "exog_3_step_1": CategoricalDtype(
                      categories=[
                          100,
                          101,
                          102,
                          103,
                          104,
                          105,
                          106,
                          107,
                          108,
                          109,
                      ],
                      ordered=False,
                  ),
                  "exog_3_step_2": CategoricalDtype(
                      categories=[
                          100,
                          101,
                          102,
                          103,
                          104,
                          105,
                          106,
                          107,
                          108,
                          109,
                      ],
                      ordered=False,
                  ),
              }
          )
      )
  
      pd.testing.assert_frame_equal(results, expected)
  
file_path: skforecast/skforecast/utils/tests/test_exog_to_direct.py
imports: import re
  import pytest
  import numpy
  import pandas
  from skforecast.utils import exog_to_direct
  from pandas.api.types import CategoricalDtype
label_desc: Use image node_id 7 for calling a global function with example usage: test_exog_to_direct_when_steps_2_exog_DataFrame_3d_float_int_category() without return types