code: def test_train_predict_models_with_future_covariates(self):
      ensemble_models = [
          LinearRegressionModel(lags=1, lags_future_covariates=[1]),
          RandomForest(lags=1, lags_future_covariates=[1]),
      ]
      ensemble = RegressionEnsembleModel(ensemble_models, 10)
      ensemble.fit(self.sine_series, future_covariates=self.ts_cov1)
      # expected number of coefs is lags*components -> we have 1 lag for each target (1 comp)
      # and future covs (2 comp)
      expected_coefs = len(self.sine_series.components) + len(
          self.ts_cov1.components
      )
      assert (
          len(ensemble.forecasting_models[0].model.coef_)
          == expected_coefs
      )
      ensemble.predict(
          10, self.sine_series, future_covariates=self.ts_cov1
      )
  
imports: from typing import List, Union
  import numpy
  import pandas
  import pytest
  from sklearn.ensemble import RandomForestRegressor
  from sklearn.linear_model import LinearRegression
  from darts import TimeSeries
  from darts.logging import get_logger
  from darts.metrics import mape, rmse
  from darts.models import LinearRegressionModel, NaiveDrift, NaiveSeasonal, RandomForest, RegressionEnsembleModel, RegressionModel, Theta
  from darts.tests.conftest import tfm_kwargs
  from darts.tests.models.forecasting.test_ensemble_models import _make_ts
  from darts.tests.models.forecasting.test_regression_models import train_test_split
  from darts.utils import timeseries_generation
label_desc: Use image node_id 14 for calling the TestRegressionEnsembleModels obj's underlying member method code with example usage: obj.test_train_predict_models_with_future_covariates() without return types