code: def test_vectorized_offset_addition(self, klass):
      shift = klass(
          [
              Timestamp("2000-01-15 00:15:00", tz="US/Central"),
              Timestamp("2000-02-15", tz="US/Central"),
          ],
          name="a",
      )
  
      with tm.assert_produces_warning(None):
          # GH#22535 check that we don't get a FutureWarning from adding
          # an integer array to PeriodIndex
          result = shift + SemiMonthEnd()
          result2 = SemiMonthEnd() + shift
  
      exp = klass(
          [
              Timestamp("2000-01-31 00:15:00", tz="US/Central"),
              Timestamp("2000-02-29", tz="US/Central"),
          ],
          name="a",
      )
      tm.assert_equal(result, exp)
      tm.assert_equal(result2, exp)
  
      shift = klass(
          [
              Timestamp("2000-01-01 00:15:00", tz="US/Central"),
              Timestamp("2000-02-01", tz="US/Central"),
          ],
          name="a",
      )
  
      with tm.assert_produces_warning(None):
          # GH#22535 check that we don't get a FutureWarning from adding
          # an integer array to PeriodIndex
          result = shift + SemiMonthEnd()
          result2 = SemiMonthEnd() + shift
  
      exp = klass(
          [
              Timestamp("2000-01-15 00:15:00", tz="US/Central"),
              Timestamp("2000-02-15", tz="US/Central"),
          ],
          name="a",
      )
      tm.assert_equal(result, exp)
      tm.assert_equal(result2, exp)
  
imports: from __future__ import annotations
  from datetime import datetime
  import pytest
  from pandas._libs.tslibs import Timestamp
  from pandas._libs.tslibs.offsets import MonthBegin, MonthEnd, SemiMonthBegin, SemiMonthEnd
  from pandas import DatetimeIndex, Series, _testing
  from pandas.tests.tseries.offsets.common import assert_is_on_offset, assert_offset_equal
label_desc: Use image node_id 5 for calling the TestSemiMonthEnd obj's underlying member method code with example usage: obj.test_vectorized_offset_addition(klass) without return types