예제 #1
0
    def testChinaIB(self):

        # China Inter Bank working weekend list in the year 2014
        expectedWorkingWeekEnd = [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)]

        cal = Calendar('China.IB')

        for day in expectedWorkingWeekEnd:
            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))
예제 #2
0
    def testChinaSSE(self):
        # China Shhanghai Securities Exchange holiday list in the year 2014
        expectedHol = [Date(2014, 1, 1), 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, 4, 5), Date(2014, 4, 6), Date(2014, 4, 7),
                       Date(2014, 5, 1), Date(2014, 5, 2), Date(2014, 5, 3), Date(2014, 5, 4), Date(2014, 5, 31),
                       Date(2014, 6, 1), Date(2014, 6, 2),
                       Date(2014, 9, 6), Date(2014, 9, 7), Date(2014, 9, 8), Date(2014, 9, 28),
                       Date(2014, 10, 1), Date(2014, 10, 2), Date(2014, 10, 3), Date(2014, 10, 4), Date(2014, 10, 5),
                       Date(2014, 10, 6), Date(2014, 10, 7), Date(2014, 10, 11),
                       # China Shhanghai Securities Exchange holiday list in the year 2015
                       Date(2015, 1, 1), Date(2015, 1, 2), Date(2015, 1, 3), Date(2015, 1, 4),
                       Date(2015, 2, 15), Date(2015, 2, 18), Date(2015, 2, 19), Date(2015, 2, 20), Date(2015, 2, 21),
                       Date(2015, 2, 22), Date(2015, 2, 23), Date(2015, 2, 24), Date(2015, 2, 28),
                       Date(2015, 4, 5), Date(2015, 4, 6),
                       Date(2015, 5, 1), Date(2015, 5, 2), Date(2015, 5, 3),
                       Date(2015, 6, 20), Date(2015, 6, 21), Date(2015, 6, 22),
                       Date(2015, 9, 3), Date(2015, 9, 4), Date(2015, 9, 27),
                       Date(2015, 10, 1), Date(2015, 10, 2), Date(2015, 10, 3), Date(2015, 10, 4), Date(2015, 10, 5),
                       Date(2015, 10, 6), Date(2015, 10, 7), Date(2015, 10, 10)]

        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))
예제 #3
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))
예제 #4
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))
예제 #5
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),
            # China Shanghai Securities Exchange holiday list in the year 2018
            Date(2018, 1, 1),
            Date(2018, 2, 15),
            Date(2018, 2, 16),
            Date(2018, 2, 17),
            Date(2018, 2, 18),
            Date(2018, 2, 19),
            Date(2018, 2, 20),
            Date(2018, 2, 21),
            Date(2018, 4, 5),
            Date(2018, 4, 6),
            Date(2018, 4, 7),
            Date(2018, 4, 29),
            Date(2018, 4, 30),
            Date(2018, 5, 1),
            Date(2018, 6, 16),
            Date(2018, 6, 17),
            Date(2018, 6, 18),
            Date(2018, 9, 22),
            Date(2018, 9, 23),
            Date(2018, 9, 24),
            Date(2018, 10, 1),
            Date(2018, 10, 2),
            Date(2018, 10, 3),
            Date(2018, 10, 4),
            Date(2018, 10, 5),
            Date(2018, 10, 6),
            Date(2018, 10, 7),
            # China Shanghai Securities Exchange holiday list in the year 2019
            Date(2019, 1, 1),
            Date(2019, 2, 4),
            Date(2019, 2, 5),
            Date(2019, 2, 6),
            Date(2019, 2, 7),
            Date(2019, 2, 8),
            Date(2019, 4, 5),
            Date(2019, 5, 1),
            Date(2019, 5, 2),
            Date(2019, 5, 3),
            Date(2019, 6, 7),
            Date(2019, 9, 13),
            Date(2019, 10, 1),
            Date(2019, 10, 2),
            Date(2019, 10, 3),
            Date(2019, 10, 4),
            Date(2019, 10, 5),
            Date(2019, 10, 6),
            Date(2019, 10, 7),
            # China Shanghai Securities Exchange holiday list in the year 2020
            Date(2020, 1, 1),
            Date(2020, 1, 24),
            Date(2020, 1, 25),
            Date(2020, 1, 26),
            Date(2020, 1, 27),
            Date(2020, 1, 28),
            Date(2020, 1, 29),
            Date(2020, 1, 30),
            Date(2020, 4, 4),
            Date(2020, 4, 5),
            Date(2020, 4, 6),
            Date(2020, 5, 1),
            Date(2020, 5, 2),
            Date(2020, 5, 3),
            Date(2020, 5, 4),
            Date(2020, 5, 5),
            Date(2020, 6, 25),
            Date(2020, 6, 26),
            Date(2020, 6, 27),
            Date(2020, 10, 1),
            Date(2020, 10, 2),
            Date(2020, 10, 3),
            Date(2020, 10, 4),
            Date(2020, 10, 5),
            Date(2020, 10, 6),
            Date(2020, 10, 7),
            Date(2020, 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 not expected to be a working day in {1} ".format(
                    day, cal))