code: def test_multioutput_validation(self):
      lags = 4
  
      models = [
          XGBModel(
              lags=lags,
              output_chunk_length=1,
              multi_models=True,
              tree_method="exact",
          ),
          XGBModel(
              lags=lags,
              output_chunk_length=1,
              multi_models=False,
              tree_method="exact",
          ),
          XGBModel(
              lags=lags,
              output_chunk_length=2,
              multi_models=True,
              tree_method="exact",
          ),
          XGBModel(
              lags=lags,
              output_chunk_length=2,
              multi_models=False,
              tree_method="exact",
          ),
      ]
      if lgbm_available:
          models += [
              LightGBMModel(
                  lags=lags, output_chunk_length=1, multi_models=True
              ),
              LightGBMModel(
                  lags=lags, output_chunk_length=1, multi_models=False
              ),
              LightGBMModel(
                  lags=lags, output_chunk_length=2, multi_models=True
              ),
              LightGBMModel(
                  lags=lags, output_chunk_length=2, multi_models=False
              ),
          ]
      if cb_available:
          models += [
              CatBoostModel(
                  lags=lags, output_chunk_length=1, multi_models=True
              ),
              CatBoostModel(
                  lags=lags, output_chunk_length=1, multi_models=False
              ),
              CatBoostModel(
                  lags=lags, output_chunk_length=2, multi_models=True
              ),
              CatBoostModel(
                  lags=lags, output_chunk_length=2, multi_models=False
              ),
          ]
      train, val = self.sine_univariate1.split_after(0.6)
  
      for model in models:
          model.fit(series=train, val_series=val)
          if model.output_chunk_length > 1 and model.multi_models:
              assert isinstance(model.model, MultiOutputRegressor)
  
imports: import copy
  import functools
  import itertools
  import math
  from unittest.mock import patch
  import numpy
  import pandas
  import pytest
  from sklearn.ensemble import HistGradientBoostingRegressor, RandomForestRegressor
  from sklearn.linear_model import LinearRegression
  import darts
  from darts import TimeSeries
  from darts.dataprocessing.encoders import FutureCyclicEncoder, PastDatetimeAttributeEncoder
  from darts.logging import get_logger
  from darts.metrics import mae, rmse
  from darts.models import CatBoostModel, LightGBMModel, LinearRegressionModel, NotImportedModule, RandomForest, RegressionModel, XGBModel
  from darts.utils import timeseries_generation
  from darts.utils.multioutput import MultiOutputRegressor
label_desc: Use image node_id 16 for calling the TestRegressionModels obj's underlying member method code with example usage: obj.test_multioutput_validation() without return types