code: def test_groupby_dropna_dask(dropna, by):
      # NOTE: This test is borrowed from upstream dask
      #       (dask/dask/dataframe/tests/test_groupby.py)
      df = pd.DataFrame(
          {
              "a": [1, 2, 3, 4, None, None, 7, 8],
              "b": [1, None, 1, 3, None, 3, 1, 3],
              "c": ["a", "b", None, None, "e", "f", "g", "h"],
              "e": [4, 5, 6, 3, 2, 1, 0, 0],
          }
      )
      df["b"] = df["b"].astype("datetime64[ns]")
      df["d"] = df["c"].astype("category")
  
      gdf = cudf.from_pandas(df)
      ddf = dd.from_pandas(df, npartitions=3)
      gddf = dask_cudf.from_cudf(gdf, npartitions=3)
  
      if dropna is None:
          dask_cudf_result = gddf.groupby(by).e.sum()
          dask_result = ddf.groupby(by).e.sum()
      else:
          dask_cudf_result = gddf.groupby(by, dropna=dropna).e.sum()
          dask_result = ddf.groupby(by, dropna=dropna).e.sum()
  
      dd.assert_eq(dask_cudf_result, dask_result)
  
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 11 for calling a global function with example usage: test_groupby_dropna_dask(dropna, by) without return types