code: def test_pipeline_works_no_exo(
      load_pos_and_neg_data_missing, model_name
  ):
      """Tests that the pipeline works for various operations for Univariate
      forecasting without exogenous variables"""
      data = load_pos_and_neg_data_missing
  
      exp = TSForecastingExperiment()
      FH = 12
      exp.setup(data=data, fh=FH, numeric_imputation_target="drift")
  
      assert exp.get_config("y").isna().sum() > 0
      assert exp.get_config("y_transformed").isna().sum() == 0
  
      model = exp.create_model(model_name)
      preds = exp.predict_model(model)
      assert len(preds) == FH
      plot_data = exp.plot_model(model, return_data=True)
      assert isinstance(plot_data, dict)
  
      tuned = exp.tune_model(model)
      preds = exp.predict_model(tuned)
      assert len(preds) == FH
      plot_data = exp.plot_model(tuned, return_data=True)
      assert isinstance(plot_data, dict)
  
      final = exp.finalize_model(tuned)
      preds = exp.predict_model(final)
      assert len(preds) == FH
      plot_data = exp.plot_model(final, return_data=True)
      assert isinstance(plot_data, dict)
  
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 8 for calling a global function with example usage: test_pipeline_works_no_exo(load_pos_and_neg_data_missing, model_name) without return types