code: def test_create_train_X_y_output_when_series_different_length_and_exog_is_dataframe_of_float_int_category():
      """
      Test the output of create_train_X_y when series has 2 columns with different
      lengths and exog is a pandas dataframe with two columns of float, int, category.
      """
      series = pd.DataFrame(
          {
              "l1": pd.Series(np.arange(10, dtype=float)),
              "l2": pd.Series(
                  [
                      np.nan,
                      np.nan,
                      2.0,
                      3.0,
                      4.0,
                      5.0,
                      6.0,
                      7.0,
                      8.0,
                      9.0,
                  ]
              ),
          }
      )
      series.index = pd.date_range("1990-01-01", periods=10, freq="D")
      exog = pd.DataFrame(
          {
              "exog_1": pd.Series(np.arange(100, 110), dtype=float),
              "exog_2": pd.Series(np.arange(1000, 1010), dtype=int),
              "exog_3": pd.Categorical(range(100, 110)),
          }
      )
      exog.index = pd.date_range("1990-01-01", periods=10, freq="D")
  
      forecaster = ForecasterAutoregMultiSeries(
          LinearRegression(), lags=5, transformer_series=None
      )
      results = forecaster.create_train_X_y(series=series, exog=exog)
  
      expected = (
          pd.DataFrame(
              data=np.array(
                  [
                      [4.0, 3.0, 2.0, 1.0, 0.0, 105.0, 1005.0],
                      [5.0, 4.0, 3.0, 2.0, 1.0, 106.0, 1006.0],
                      [6.0, 5.0, 4.0, 3.0, 2.0, 107.0, 1007.0],
                      [7.0, 6.0, 5.0, 4.0, 3.0, 108.0, 1008.0],
                      [8.0, 7.0, 6.0, 5.0, 4.0, 109.0, 1009.0],
                      [6.0, 5.0, 4.0, 3.0, 2.0, 107.0, 1007.0],
                      [7.0, 6.0, 5.0, 4.0, 3.0, 108.0, 1008.0],
                      [8.0, 7.0, 6.0, 5.0, 4.0, 109.0, 1009.0],
                  ],
                  dtype=float,
              ),
              index=pd.RangeIndex(start=0, stop=8, step=1),
              columns=[
                  "lag_1",
                  "lag_2",
                  "lag_3",
                  "lag_4",
                  "lag_5",
                  "exog_1",
                  "exog_2",
              ],
          )
          .assign(
              exog_3=pd.Categorical(
                  [105, 106, 107, 108, 109, 107, 108, 109],
                  categories=range(100, 110),
              ),
              l1=[1.0] * 5 + [0.0] * 3,
              l2=[0.0] * 5 + [1.0] * 3,
          )
          .astype({"exog_1": float, "exog_2": int}),
          pd.Series(
              data=np.array([5, 6, 7, 8, 9, 7, 8, 9]),
              index=pd.RangeIndex(start=0, stop=8, step=1),
              name="y",
              dtype=float,
          ),
          pd.date_range("1990-01-01", periods=10, freq="D"),
          pd.DatetimeIndex(
              [
                  "1990-01-06",
                  "1990-01-07",
                  "1990-01-08",
                  "1990-01-09",
                  "1990-01-10",
                  "1990-01-08",
                  "1990-01-09",
                  "1990-01-10",
              ],
              dtype="datetime64[ns]",
              freq=None,
          ),
      )
  
      for i in range(len(expected)):
          if isinstance(expected[i], pd.DataFrame):
              pd.testing.assert_frame_equal(results[i], expected[i])
          elif isinstance(expected[i], pd.Series):
              pd.testing.assert_series_equal(results[i], expected[i])
          else:
              np.testing.assert_array_equal(results[i], expected[i])
  
imports: import re
  import pytest
  import numpy
  import pandas
  from skforecast.ForecasterAutoregMultiSeries import ForecasterAutoregMultiSeries
  from skforecast.exceptions import MissingValuesExogWarning
  from sklearn.linear_model import LinearRegression
  from sklearn.compose import ColumnTransformer
  from sklearn.preprocessing import StandardScaler
  from sklearn.preprocessing import OneHotEncoder
label_desc: Use image node_id 22 for calling a global function with example usage: test_create_train_X_y_output_when_series_different_length_and_exog_is_dataframe_of_float_int_category() without return types