code: def test_group_aggregate_function(self):
      t = self.t_env.from_elements(
          [
              (1, 2, 3),
              (3, 2, 3),
              (2, 1, 3),
              (1, 5, 4),
              (1, 8, 6),
              (2, 3, 4),
          ],
          DataTypes.ROW(
              [
                  DataTypes.FIELD("a", DataTypes.TINYINT()),
                  DataTypes.FIELD("b", DataTypes.SMALLINT()),
                  DataTypes.FIELD("c", DataTypes.INT()),
              ]
          ),
      )
  
      sink_table = generate_random_table_name()
      sink_table_ddl = f"""
              CREATE TABLE {sink_table}(
                  a TINYINT,
                  b FLOAT,
                  c ROW<a INT, b INT>,
                  d STRING
              ) WITH ('connector'='test-sink')
          """
      self.t_env.execute_sql(sink_table_ddl)
      # general udf
      add = udf(lambda a: a + 1, result_type=DataTypes.INT())
      # pandas udf
      substract = udf(
          lambda a: a - 1,
          result_type=DataTypes.INT(),
          func_type="pandas",
      )
      max_udaf = udaf(
          lambda a: (a.max(), a.min()),
          result_type=DataTypes.ROW(
              [
                  DataTypes.FIELD("a", DataTypes.INT()),
                  DataTypes.FIELD("b", DataTypes.INT()),
              ]
          ),
          func_type="pandas",
      )
  
      @udaf(result_type=DataTypes.STRING(), func_type="pandas")
      def multiply_udaf(a, b):
          return len(a) * b[0]
  
      t.group_by(t.a).select(
          t.a,
          mean_udaf(add(t.b)),
          max_udaf(substract(t.c)),
          multiply_udaf(t.b, "abc"),
      ).execute_insert(sink_table).wait()
      actual = source_sink_utils.results()
      self.assert_equals(
          actual,
          [
              "+I[1, 6.0, +I[5, 2], abcabcabc]",
              "+I[2, 3.0, +I[3, 2], abcabc]",
              "+I[3, 3.0, +I[2, 2], abc]",
          ],
      )
  
imports: import uuid
  from pyflink.table.expressions import col, call, lit, row_interval
  from pyflink.table.types import DataTypes
  from pyflink.table.udf import udaf, udf, AggregateFunction
  from pyflink.testing import source_sink_utils
  from pyflink.testing.test_case_utils import PyFlinkBatchTableTestCase, PyFlinkStreamTableTestCase
label_desc: Use image node_id 3 for calling the BatchPandasUDAFITTests obj's underlying member method code with example usage: obj.test_group_aggregate_function() and returns: unknown