code: def test_ceil_floor_edge(self, test_input, rounder, freq, expected):
      dt = DatetimeIndex(list(test_input))
      func = getattr(dt, rounder)
      result = func(freq)
      expected = DatetimeIndex(list(expected))
      assert expected.equals(result)
  
file_path: pandas/pandas/tests/indexes/datetimes/methods/test_round.py
imports: import pytest
  from pandas._libs.tslibs import to_offset
  from pandas._libs.tslibs.offsets import INVALID_FREQ_ERR_MSG
  from pandas import DatetimeIndex, Timestamp, date_range
  import pandas._testing
label_desc: Use image node_id 8 for calling the TestDatetimeIndexRound obj's underlying member method code with example usage: obj.test_ceil_floor_edge(test_input, rounder, freq, expected) without return types