code: def test_transform():
      def _data():
          for i in range(100):
              a = i % 5
              b = i % 3
              c = i % 4
              yield dict(a=a, b=b, c=c, i=i)
  
      df = pd.DataFrame(list(_data()))
  
      aggs = [
          "count",
          "nunique",
          "sum",
          "first",
          "last",
          "median",
          "min",
          "max",
          "std",
          "var",
          "prod",
      ]
      if not pandas_util.is_pandas2():
          aggs.append("mad")
      data_id, column_type = "1", "transform"
      i = 0
      build_data_inst({data_id: df})
  
      cfg = {"col": "i", "group": ["a"], "agg": "mean"}
      builder = ColumnBuilder(
          data_id, column_type, "Col{}".format(++i), cfg
      )
      verify_builder(
          builder,
          lambda col: col.values[0] == 47.5 and col.values[-1] == 51.5,
      )
  
      for agg in aggs:
          cfg["agg"] = agg
          builder = ColumnBuilder(
              data_id, column_type, "Col{}".format(++i), cfg
          )
          verify_builder(
              builder, lambda col: len(col[col.isnull()]) == 0
          )
  
imports: import numpy
  import pandas
  import pytest
  import sklearn
  from numpy.random import randn
  from pkg_resources import parse_version
  from six import PY3
  import dtale.pandas_util
  from dtale.column_builders import ColumnBuilder, ZERO_STD_ERROR
  from tests.dtale import build_data_inst
label_desc: Use image node_id 3 for calling a global function with example usage: test_transform() without return types