Files
catalyst/tests/calendars/test_cfe_calendar.py
Conner Fromknecht 2d26758fba General improvements
2017-07-01 18:26:57 -07:00

54 lines
1.8 KiB
Python

from unittest import TestCase
import pandas as pd
from .test_trading_calendar import ExchangeCalendarTestBase
from catalyst.utils.calendars.exchange_calendar_cfe import CFEExchangeCalendar
class CFECalendarTestCase(ExchangeCalendarTestBase, TestCase):
answer_key_filename = "cfe"
calendar_class = CFEExchangeCalendar
MAX_SESSION_HOURS = 8
def test_2016_holidays(self):
# new years: jan 1
# mlk: jan 18
# presidents: feb 15
# good friday: mar 25
# mem day: may 30
# independence day: july 4
# labor day: sep 5
# thanksgiving day: nov 24
# christmas (observed): dec 26
# new years (observed): jan 2 2017
for day in ["2016-01-01", "2016-01-18", "2016-02-15", "2016-03-25",
"2016-05-30", "2016-07-04", "2016-09-05", "2016-11-24",
"2016-12-26", "2017-01-02"]:
self.assertFalse(
self.calendar.is_session(pd.Timestamp(day, tz='UTC'))
)
def test_2016_early_closes(self):
# only early close is day after thanksgiving: nov 25
dt = pd.Timestamp("2016-11-25", tz='UTC')
self.assertTrue(dt in self.calendar.early_closes)
market_close = self.calendar.schedule.loc[dt].market_close
market_close = market_close.tz_convert(self.calendar.tz)
self.assertEqual(12, market_close.hour)
self.assertEqual(15, market_close.minute)
def test_adhoc_holidays(self):
# hurricane sandy: oct 29 2012, oct 30 2012
# national days of mourning:
# - apr 27 1994
# - june 11 2004
# - jan 2 2007
for day in ["1994-04-27", "2004-06-11", "2007-01-02",
"2012-10-29", "2012-10-30"]:
self.assertFalse(
self.calendar.is_session(pd.Timestamp(day, tz='UTC'))
)