code: def test_groupby_agg(func, aggregation, pdf):
      gdf = cudf.DataFrame.from_pandas(pdf)
  
      ddf = dask_cudf.from_cudf(gdf, npartitions=5)
  
      actual = func(ddf, aggregation)
      expect = func(gdf, aggregation)
  
      check_dtype = aggregation != "count"
  
      assert_cudf_groupby_layers(actual)
  
      # groupby.agg should add an explicit getitem layer
      # to improve/enable column projection
      assert hlg_layer(actual.dask, "getitem")
  
      dd.assert_eq(
          expect, actual, check_names=False, check_dtype=check_dtype
      )
  
imports: import numpy
  import pandas
  import pytest
  import dask
  from dask import dataframe
  from dask.utils_test import hlg_layer
  import cudf
  import dask_cudf
  from dask_cudf.groupby import OPTIMIZED_AGGS, _aggs_optimized
label_desc: Use image node_id 5 for calling a global function with example usage: test_groupby_agg(func, aggregation, pdf) without return types