Ejemplo n.º 1
0
    def testNullCalendar(self):
        cal = Calendar("Null")

        testDate = Date(2015, 1, 1)
        self.assertTrue(cal.isBizDay(testDate))
        self.assertTrue(not cal.isHoliday(testDate))
        self.assertTrue(cal.isWeekEnd(Weekdays.Saturday))
        self.assertTrue(cal.isWeekEnd(Weekdays.Sunday))
        self.assertTrue(not cal.isWeekEnd(Weekdays.Friday))
Ejemplo n.º 2
0
    def testChinaIB(self):

        # China Inter Bank working weekend list in the year 2014
        expected_working_week_end = [
            Date(2014, 1, 26),
            Date(2014, 2, 8),
            Date(2014, 5, 4),
            Date(2014, 9, 28),
            Date(2014, 10, 11),
            # China Inter Bank working weekend list in the year 2015
            Date(2015, 1, 4),
            Date(2015, 2, 15),
            Date(2015, 2, 28),
            Date(2015, 9, 6),
            Date(2015, 10, 10),
            # China Inter Bank working weekend list in the year 2016
            Date(2016, 2, 6),
            Date(2016, 2, 14),
            Date(2016, 6, 12),
            Date(2016, 9, 18),
            Date(2016, 10, 8),
            Date(2016, 10, 9),
            # China Inter Bank working weekend list in the year 2017
            Date(2017, 1, 22),
            Date(2017, 2, 4),
            Date(2017, 4, 1),
            Date(2017, 5, 27),
            Date(2017, 9, 30),
            # China Inter Bank working weekend list in the year 2018
            Date(2018, 2, 11),
            Date(2018, 2, 24),
            Date(2018, 4, 8),
            Date(2018, 4, 28),
            Date(2018, 9, 29),
            Date(2018, 9, 30)
        ]

        cal = Calendar('China.IB')

        for day in expected_working_week_end:
            self.assertEqual(
                cal.isHoliday(day), False,
                "{0} is not expected to be a holiday in {1}".format(day, cal))
            self.assertEqual(
                cal.isBizDay(day), True,
                "{0} is expected to be a working day in {1} ".format(day, cal))
Ejemplo n.º 3
0
    def testChinaSSE(self):
        # China Shanghai Securities Exchange holiday list in the year 2014
        expectedHol = [
            Date(2014, 1, 1),
            Date(2014, 1, 31),
            Date(2014, 2, 3),
            Date(2014, 2, 4),
            Date(2014, 2, 5),
            Date(2014, 2, 6),
            Date(2014, 4, 7),
            Date(2014, 5, 1),
            Date(2014, 5, 2),
            Date(2014, 6, 2),
            Date(2014, 9, 8),
            Date(2014, 10, 1),
            Date(2014, 10, 2),
            Date(2014, 10, 3),
            Date(2014, 10, 6),
            Date(2014, 10, 7),
            # China Shanghai Securities Exchange holiday list in the year 2015
            Date(2015, 1, 1),
            Date(2015, 1, 2),
            Date(2015, 2, 18),
            Date(2015, 2, 19),
            Date(2015, 2, 20),
            Date(2015, 2, 23),
            Date(2015, 2, 24),
            Date(2015, 4, 6),
            Date(2015, 5, 1),
            Date(2015, 6, 22),
            Date(2015, 9, 3),
            Date(2015, 9, 4),
            Date(2015, 10, 1),
            Date(2015, 10, 2),
            Date(2015, 10, 5),
            Date(2015, 10, 6),
            Date(2015, 10, 7),
            # China Shanghai Securities Exchange holiday list in the year 2016
            Date(2016, 1, 1),
            Date(2016, 2, 8),
            Date(2016, 2, 9),
            Date(2016, 2, 10),
            Date(2016, 2, 11),
            Date(2016, 2, 12),
            Date(2016, 4, 4),
            Date(2016, 5, 2),
            Date(2016, 6, 9),
            Date(2016, 6, 10),
            Date(2016, 9, 15),
            Date(2016, 9, 16),
            Date(2016, 10, 3),
            Date(2016, 10, 4),
            Date(2016, 10, 5),
            Date(2016, 10, 6),
            Date(2016, 10, 7),
            # China Shanghai Securities Exchange holiday list in the year 2017
            Date(2017, 1, 1),
            Date(2017, 1, 2),
            Date(2017, 1, 27),
            Date(2017, 1, 28),
            Date(2017, 1, 29),
            Date(2017, 1, 30),
            Date(2017, 1, 31),
            Date(2017, 2, 1),
            Date(2017, 2, 2),
            Date(2017, 4, 2),
            Date(2017, 4, 3),
            Date(2017, 4, 4),
            Date(2017, 5, 1),
            Date(2017, 5, 28),
            Date(2017, 5, 29),
            Date(2017, 5, 30),
            Date(2017, 10, 1),
            Date(2017, 10, 2),
            Date(2017, 10, 3),
            Date(2017, 10, 4),
            Date(2017, 10, 5),
            Date(2017, 10, 6),
            Date(2017, 10, 7),
            Date(2017, 10, 8)
        ]

        cal = Calendar('China.SSE')

        for day in expectedHol:
            self.assertEqual(
                cal.isHoliday(day), True,
                "{0} is expected to be a holiday in {1}".format(day, cal))
            self.assertEqual(
                cal.isBizDay(day), False,
                "{0} is expected not to be a working day in {1} ".format(
                    day, cal))
Ejemplo n.º 4
0
    def testDatesList(self):

        fromDate = Date(2014, 1, 31)
        toDate = Date(2014, 2, 28)
        sseCal = Calendar('China.SSE')
        ibCal = Calendar('China.IB')

        benchmarkHol = [
            Date(2014, 1, 31),
            Date(2014, 2, 3),
            Date(2014, 2, 4),
            Date(2014, 2, 5),
            Date(2014, 2, 6)
        ]
        sseHolList = sseCal.holDatesList(fromDate, toDate, False)
        self.assertEqual(sseHolList, benchmarkHol)
        ibHolList = ibCal.holDatesList(fromDate, toDate, False)
        self.assertEqual(ibHolList, benchmarkHol)

        sseHolList = sseCal.holDatesList(fromDate, toDate, True)
        benchmarkHol = [
            Date(2014, 1, 31),
            Date(2014, 2, 1),
            Date(2014, 2, 2),
            Date(2014, 2, 3),
            Date(2014, 2, 4),
            Date(2014, 2, 5),
            Date(2014, 2, 6),
            Date(2014, 2, 8),
            Date(2014, 2, 9),
            Date(2014, 2, 15),
            Date(2014, 2, 16),
            Date(2014, 2, 22),
            Date(2014, 2, 23)
        ]
        self.assertEqual(sseHolList, benchmarkHol)
        ibHolList = ibCal.holDatesList(fromDate, toDate, True)
        benchmarkHol = [
            Date(2014, 1, 31),
            Date(2014, 2, 1),
            Date(2014, 2, 2),
            Date(2014, 2, 3),
            Date(2014, 2, 4),
            Date(2014, 2, 5),
            Date(2014, 2, 6),
            Date(2014, 2, 9),
            Date(2014, 2, 15),
            Date(2014, 2, 16),
            Date(2014, 2, 22),
            Date(2014, 2, 23)
        ]
        self.assertEqual(ibHolList, benchmarkHol)

        sseWorkingDayList = sseCal.bizDatesList(fromDate, toDate)
        d = fromDate
        while d <= toDate:
            if sseCal.isBizDay(d):
                self.assertTrue(d in sseWorkingDayList and d not in sseHolList)
            d += 1

        ibWorkingDayList = ibCal.bizDatesList(fromDate, toDate)
        d = fromDate
        while d <= toDate:
            if ibCal.isBizDay(d):
                self.assertTrue(d in ibWorkingDayList and d not in ibHolList)
            d += 1