code: def test_grouped(self, mock_handler):
      # create project
      self.run_sql("create database proj")
      df = create_mock_df()
      self.set_handler(
          mock_handler, name="t", tables={"df": df}, engine="mysql"
      )
  
      self.run_sql(
          """
             create model proj.model_1_group
             from t (select * from df)
             predict target_col
             order by time_col
             group by group_col
             horizon 3
             using
               engine='statsforecast'
          """
      )
      self.wait_predictor("proj", "model_1_group")
  
      # run predict
      result_df = self.run_sql(
          """
             SELECT p.*
             FROM t.df as t
             JOIN proj.model_1_group as p
             where t.group_col='b'
          """
      )
      assert list(round(result_df["target_col"])) == [42, 43, 44]
  
      describe_result = self.run_sql(
          "describe proj.model_1_group.features"
      )
      assert describe_result["unique_id"][0] == ["group_col"]
  
      # now add more groups
      self.run_sql(
          """
             create model proj.model_multi_group
             from t (select * from df)
             predict target_col
             order by time_col
             group by group_col, group_col_2, group_col_3
             horizon 3
             using
               engine='statsforecast'
          """
      )
      self.wait_predictor("proj", "model_multi_group")
  
      result_df = self.run_sql(
          """
             SELECT p.*
             FROM t.df as t
             JOIN proj.model_multi_group as p
             where t.group_col_2='a2'
          """
      )
      assert list(round(result_df["target_col"])) == [32, 33, 34]
  
      describe_result = self.run_sql(
          "describe proj.model_multi_group.features"
      )
      assert describe_result["unique_id"][0] == [
          "group_col",
          "group_col_2",
          "group_col_3",
      ]
  
imports: import time
  from unittest.mock import patch
  import numpy
  import pandas
  import pytest
  from statsforecast.models import AutoCES
  from statsforecast.utils import AirPassengersDF
  from statsforecast import StatsForecast
  from mindsdb.integrations.utilities.time_series_utils import get_best_model_from_results_df
  from mindsdb.integrations.handlers.statsforecast_handler.statsforecast_handler import choose_model, model_dict, get_insample_cv_results
  from mindsdb_sql import parse_sql
  from tests.unit.ml_handlers.test_time_series_utils import create_mock_df
  from tests.unit.executor_test_base import BaseExecutorTest
label_desc: Use image node_id 3 for calling the TestStatsForecast obj's underlying member method code with example usage: obj.test_grouped(mock_handler) without return types