code: def test_rolling_dataframe_basic(data, agg, nulls, center):
      rng = np.random.default_rng(0)
      pdf = pd.DataFrame(data)
  
      if len(pdf) > 0:
          for col_idx in range(len(pdf.columns)):
              if nulls == "one":
                  p = rng.integers(0, len(data))
                  pdf.iloc[p, col_idx] = np.nan
              elif nulls == "some":
                  p1, p2 = rng.integers(0, len(data), (2,))
                  pdf.iloc[p1, col_idx] = np.nan
                  pdf.iloc[p2, col_idx] = np.nan
              elif nulls == "all":
                  pdf.iloc[:, col_idx] = np.nan
  
      gdf = cudf.from_pandas(pdf)
      for window_size in range(1, len(data) + 1):
          for min_periods in range(1, window_size + 1):
              expect = getattr(
                  pdf.rolling(window_size, min_periods, center), agg
              )().fillna(-1)
              got = getattr(
                  gdf.rolling(window_size, min_periods, center), agg
              )().fillna(-1)
              assert_eq(expect, got, check_dtype=False)
  
imports: import math
  from contextlib import contextmanager
  import numpy
  import pandas
  import pytest
  import cudf
  from cudf.core._compat import PANDAS_GE_150
  from cudf.testing._utils import _create_pandas_series_float64_default, assert_eq
  from cudf.testing.dataset_generator import rand_dataframe
label_desc: Use image node_id 3 for calling a global function with example usage: test_rolling_dataframe_basic(data, agg, nulls, center) without return types