code: def test_forecast(self):
      create_predict_udf = """
              CREATE FUNCTION AirForecast FROM
              (SELECT unique_id, ds, y FROM AirData)
              TYPE Forecasting
              HORIZON 12
              PREDICT 'y';
          """
      execute_query_fetch_all(self.evadb, create_predict_udf)
  
      predict_query = """
              SELECT AirForecast() order by y;
          """
      result = execute_query_fetch_all(self.evadb, predict_query)
      self.assertEqual(len(result), 12)
      self.assertEqual(
          result.columns,
          [
              "airforecast.unique_id",
              "airforecast.ds",
              "airforecast.y",
              "airforecast.y-lo",
              "airforecast.y-hi",
          ],
      )
  
file_path: evadb/test/integration_tests/long/test_model_forecasting.py
imports: import unittest
  from test.markers import forecast_skip_marker
  from test.util import get_evadb_for_testing, shutdown_ray
  import pytest
  from evadb.configuration.constants import EvaDB_ROOT_DIR
  from evadb.server.command_handler import execute_query_fetch_all
label_desc: Use image node_id 3 for calling the ModelTrainTests obj's underlying member method code with example usage: obj.test_forecast() without return types