code: def test_impute_str_exo(load_uni_exo_data_target_missing, method):
      """Tests Imputation methods (str) for Univariate forecasting with
      exogenous variables"""
      data, target = load_uni_exo_data_target_missing
  
      exp = TSForecastingExperiment()
      FH = 12
      exp.setup(
          data=data,
          target=target,
          fh=FH,
          numeric_imputation_target=method,
          numeric_imputation_exogenous=method,
      )
  
      # Due to preprocessing not all 'y' values should be the same
      assert not np.all(exp.y.values == exp.y_transformed.values)
      assert not np.all(
          exp.y_train.values == exp.y_train_transformed.values
      )
      assert not np.all(
          exp.y_test.values == exp.y_test_transformed.values
      )
  
      # Due to preprocessing not all 'X' values should be the same
      assert not np.all(exp.X.values == exp.X_transformed.values)
      assert not np.all(
          exp.X_train.values == exp.X_train_transformed.values
      )
      assert not np.all(
          exp.X_test.values == exp.X_test_transformed.values
      )
  
imports: import os
  import numpy
  import pytest
  import sktime
  from packaging import version
  from sktime.forecasting.compose import ForecastingPipeline, TransformedTargetForecaster
  from time_series_test_utils import _IMPUTE_METHODS_STR, _SCALE_METHODS, _TRANSFORMATION_METHODS, _TRANSFORMATION_METHODS_NO_NEG, _return_model_names_for_missing_data
  from pycaret.time_series import TSForecastingExperiment
label_desc: Use image node_id 14 for calling a global function with example usage: test_impute_str_exo(load_uni_exo_data_target_missing, method) without return types