code: def test_cythonized_aggers(op_name):
      data = {
          "A": [0, 0, 0, 0, 1, 1, 1, 1, 1, 1.0, np.nan, np.nan],
          "B": ["A", "B"] * 6,
          "C": np.random.default_rng(2).standard_normal(12),
      }
      df = DataFrame(data)
      df.loc[2:10:2, "C"] = np.nan
  
      op = lambda x: getattr(x, op_name)()
  
      # single column
      grouped = df.drop(["B"], axis=1).groupby("A")
      exp = {cat: op(group["C"]) for cat, group in grouped}
      exp = DataFrame({"C": exp})
      exp.index.name = "A"
      result = op(grouped)
      tm.assert_frame_equal(result, exp)
  
      # multiple columns
      grouped = df.groupby(["A", "B"])
      expd = {}
      for (cat1, cat2), group in grouped:
          expd.setdefault(cat1, {})[cat2] = op(group["C"])
      exp = DataFrame(expd).T.stack(future_stack=True)
      exp.index.names = ["A", "B"]
      exp.name = "C"
  
      result = op(grouped)["C"]
      if op_name in ["sum", "prod"]:
          tm.assert_series_equal(result, exp)
  
imports: import numpy
  import pytest
  from pandas.core.dtypes.common import is_float_dtype, is_integer_dtype
  import pandas
  from pandas import DataFrame, Index, NaT, Series, Timedelta, Timestamp, bdate_range
  import pandas._testing
  import pandas.core.common
label_desc: Use image node_id 1 for calling a global function with example usage: test_cythonized_aggers(op_name) without return types