code: def test_evaluate_common_configs(
      CV, fh, window_length, step_length, strategy, scoring, backend
  ):
      """Test evaluate common configs."""
      # skip test for dask backend if dask is not installed
      if backend == "dask" and not _check_soft_dependencies(
          "dask", severity="none"
      ):
          return None
  
      y = make_forecasting_problem(n_timepoints=30, index_type="int")
      forecaster = NaiveForecaster()
      cv = CV(fh, window_length, step_length=step_length)
  
      out = evaluate(
          forecaster=forecaster,
          y=y,
          cv=cv,
          strategy=strategy,
          scoring=scoring,
          **backend,
      )
      _check_evaluate_output(out, cv, y, scoring, False)
  
      # check scoring
      actual = out.loc[:, f"test_{scoring.name}"]
  
      n_splits = cv.get_n_splits(y)
      expected = np.empty(n_splits)
      for i, (train, test) in enumerate(cv.split(y)):
          f = forecaster.clone()
          f.fit(y.iloc[train], fh=fh)
          expected[i] = scoring(
              y.iloc[test], f.predict(), y_train=y.iloc[train]
          )
  
      np.testing.assert_array_equal(actual, expected)
  
imports: import numpy
  import pandas
  import pytest
  from sklearn.linear_model import LinearRegression
  from sktime.datasets import load_airline, load_longley
  from sktime.exceptions import FitFailedWarning
  from sktime.forecasting.arima import ARIMA, AutoARIMA
  from sktime.forecasting.compose._reduce import DirectReductionForecaster
  from sktime.forecasting.exp_smoothing import ExponentialSmoothing
  from sktime.forecasting.model_evaluation import evaluate
  from sktime.forecasting.model_evaluation._functions import _check_scores, _get_column_order_and_datatype
  from sktime.forecasting.naive import NaiveForecaster
  from sktime.forecasting.tests._config import TEST_FHS, TEST_STEP_LENGTHS_INT
  from sktime.performance_metrics.forecasting import MeanAbsoluteError, MeanAbsolutePercentageError, MeanAbsoluteScaledError
  from sktime.performance_metrics.forecasting.probabilistic import CRPS, EmpiricalCoverage, LogLoss, PinballLoss
  from sktime.split import ExpandingWindowSplitter, SlidingWindowSplitter
  from sktime.tests.test_switch import run_test_for_class
  from sktime.utils._testing.estimator_checks import _assert_array_almost_equal
  from sktime.utils._testing.forecasting import make_forecasting_problem
  from sktime.utils._testing.hierarchical import _make_hierarchical
  from sktime.utils._testing.series import _make_series
  from sktime.utils.parallel import _get_parallel_test_fixtures
  from sktime.utils.validation._dependencies import _check_soft_dependencies
label_desc: Use image node_id 2 for calling a global function with example usage: test_evaluate_common_configs(CV, fh, window_length, step_length, strategy, scoring, backend) and returns: None