code: def test_merlion_forecaster(self):
      df = self.get_m4_df()
      df_train = df[df["train"] == 1][["H1"]]
      df_test = df[df["train"] == 0][["H1"]]
      # default adapter
      adapter = DefaultForecasterAdapter()
      adapter.train(df_train.copy(deep=True), target="H1")
      rt_df = adapter.predict(df_test.copy(deep=True), target="H1")
      assert rt_df is not None
      assert len(rt_df) == len(df_test)
      assert "H1__upper" in set(
          rt_df.columns.values
      ) and "H1__lower" in set(rt_df.columns.values)
      # arima adapter
      adapter = SarimaForecasterAdapter()
      adapter.train(df_train.copy(deep=True), target="H1")
      rt_df = adapter.predict(df_test.copy(deep=True), target="H1")
      assert rt_df is not None
      assert len(rt_df) == len(df_test)
      assert "H1__upper" in set(
          rt_df.columns.values
      ) and "H1__lower" in set(rt_df.columns.values)
      # prophet adapter
      adapter = ProphetForecasterAdapter()
      adapter.train(df_train.copy(deep=True), target="H1")
      rt_df = adapter.predict(df_test.copy(deep=True), target="H1")
      assert rt_df is not None
      assert len(rt_df) == len(df_test)
      assert "H1__upper" in set(
          rt_df.columns.values
      ) and "H1__lower" in set(rt_df.columns.values)
      # mses adapter
      adapter = MSESForecasterAdapter()
      adapter.train(df_train.copy(deep=True), target="H1")
      rt_df = adapter.predict(df_test.copy(deep=True), target="H1")
      assert rt_df is not None
      assert len(rt_df) == len(df_test)
      assert "H1__upper" in set(
          rt_df.columns.values
      ) and "H1__lower" in set(rt_df.columns.values)
  
imports: import os
  import time
  from unittest.mock import patch
  import pandas
  from mindsdb_sql import parse_sql
  from mindsdb.integrations.handlers.merlion_handler.adapters import DefaultForecasterAdapter, SarimaForecasterAdapter, ProphetForecasterAdapter, MSESForecasterAdapter, IsolationForestDetectorAdapter, WindStatsDetectorAdapter, ProphetDetectorAdapter
  from .executor_test_base import BaseExecutorTest
  import pandas
label_desc: Use image node_id 5 for calling the TestMerlion obj's underlying member method code with example usage: obj.test_merlion_forecaster() without return types