code: def test_models_runnability(self, config):
      model, mode = config
      train_y, test_y = self.sine_univariate1.split_before(0.7)
      # testing past covariates
      with pytest.raises(ValueError):
          # testing lags_past_covariates None but past_covariates during training
          model_instance = model(
              lags=4, lags_past_covariates=None, multi_models=mode
          )
          model_instance.fit(
              series=self.sine_univariate1,
              past_covariates=self.sine_multivariate1,
          )
  
      with pytest.raises(ValueError):
          # testing lags_past_covariates but no past_covariates during fit
          model_instance = model(
              lags=4, lags_past_covariates=3, multi_models=mode
          )
          model_instance.fit(series=self.sine_univariate1)
  
      # testing future_covariates
      with pytest.raises(ValueError):
          # testing lags_future_covariates None but future_covariates during training
          model_instance = model(
              lags=4, lags_future_covariates=None, multi_models=mode
          )
          model_instance.fit(
              series=self.sine_univariate1,
              future_covariates=self.sine_multivariate1,
          )
  
      with pytest.raises(ValueError):
          # testing lags_covariate but no covariate during fit
          model_instance = model(
              lags=4, lags_future_covariates=3, multi_models=mode
          )
          model_instance.fit(series=self.sine_univariate1)
  
      # testing input_dim
      model_instance = model(
          lags=4, lags_past_covariates=2, multi_models=mode
      )
      model_instance.fit(
          series=train_y,
          past_covariates=self.sine_univariate1.stack(
              self.sine_univariate1
          ),
      )
  
      assert model_instance.input_dim == {
          "target": 1,
          "past": 2,
          "future": None,
      }
  
      with pytest.raises(ValueError):
          prediction = model_instance.predict(n=len(test_y) + 2)
  
      # while it should work with n = 1
      prediction = model_instance.predict(n=1)
      assert len(prediction) == 1
  
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 7 for calling the TestRegressionModels obj's underlying member method code with example usage: obj.test_models_runnability(config) without return types