code: def test_timedelta_ops_datetime_inputs(
      datetime_data,
      timedelta_data,
      datetime_dtype,
      timedelta_dtype,
      ops,
  ):
      gsr_datetime = cudf.Series(datetime_data, dtype=datetime_dtype)
      gsr_timedelta = cudf.Series(timedelta_data, dtype=timedelta_dtype)
  
      psr_datetime = gsr_datetime.to_pandas()
      psr_timedelta = gsr_timedelta.to_pandas()
  
      expected = getattr(psr_datetime, ops)(psr_timedelta)
      actual = getattr(gsr_datetime, ops)(gsr_timedelta)
  
      assert_eq(expected, actual)
  
      if ops == "add":
          expected = getattr(psr_timedelta, ops)(psr_datetime)
          actual = getattr(gsr_timedelta, ops)(gsr_datetime)
  
          assert_eq(expected, actual)
      elif ops == "sub":
          assert_exceptions_equal(
              lfunc=operator.sub,
              rfunc=operator.sub,
              lfunc_args_and_kwargs=([psr_timedelta, psr_datetime],),
              rfunc_args_and_kwargs=([gsr_timedelta, gsr_datetime],),
          )
  
imports: import datetime
  import operator
  import cupy
  import numpy
  import pandas
  import pytest
  import cudf
  from cudf.testing import _utils
  from cudf.testing._utils import assert_eq, assert_exceptions_equal
label_desc: Use image node_id 8 for calling a global function with example usage: test_timedelta_ops_datetime_inputs(datetime_data, timedelta_data, datetime_dtype, timedelta_dtype, ops) without return types