code: def test_daylight_savings(self):
      # 2004 daylight savings switches:
      # Sunday 2004-04-04 and Sunday 2004-10-31
  
      # make sure there's no weirdness around calculating the next day's
      # session's open time.
  
      for date in ["2004-04-05", "2004-11-01"]:
          next_day = pd.Timestamp(date, tz="UTC")
          open_date = next_day + Timedelta(
              days=self.calendar.open_offset
          )
  
          the_open = self.calendar.schedule.loc[next_day].market_open
  
          localized_open = the_open.tz_convert(self.calendar.tz)
  
          self.assertEqual(
              (open_date.year, open_date.month, open_date.day),
              (
                  localized_open.year,
                  localized_open.month,
                  localized_open.day,
              ),
          )
  
          self.assertEqual(
              self.calendar.open_time.hour, localized_open.hour
          )
  
          self.assertEqual(
              self.calendar.open_time.minute, localized_open.minute
          )
  
imports: from datetime import time
  from os.path import abspath, dirname, join
  from unittest import TestCase
  import numpy
  import pandas
  from nose_parameterized import parameterized
  from pandas import read_csv
  from pandas.tslib import Timedelta
  from pandas.util.testing import assert_index_equal
  from pytz import timezone
  from toolz import concat
  from catalyst.errors import CalendarNameCollision, InvalidCalendarName
  from catalyst.testing.predicates import assert_equal
  from catalyst.utils.calendars import deregister_calendar, get_calendar, register_calendar
  from catalyst.utils.calendars.calendar_utils import _default_calendar_aliases, _default_calendar_factories, register_calendar_type
  from catalyst.utils.calendars.trading_calendar import days_at_time, TradingCalendar
label_desc: Use image node_id 23 for calling the ExchangeCalendarTestBase obj's underlying member method code with example usage: obj.test_daylight_savings() without return types