示例#1
0
 def test_operators(self):
     self.assertEqual(self.jan01 + '2D', self.jan02 + '1D')
     self.assertEqual(self.jan01 - '1D', self.jan02 - '2D')
     self.assertEqual(self.jan02 - '1D' + '1M', self.feb01)
     self.assertRaises(TypeError, lambda: '1D' + self.jan02)
     self.assertEqual(self.jan01 - BusinessPeriod('1D'), self.jan02 - '2D')
     self.assertRaises(TypeError, lambda: BusinessPeriod('1D') + self.jan02)
     self.assertRaises(TypeError, lambda: BusinessPeriod('1D') - self.jan01)
     self.assertEqual(
         self.dec31.add_period(BusinessPeriod('2B', BusinessHolidays())),
         self.dec31.add_period(BusinessPeriod('2B'),
                               BusinessHolidays([self.jan02])))
示例#2
0
    def test_calculations(self):
        self.assertEqual(self.jan01.add_days(1), self.jan02)
        self.assertEqual(self.jan01.add_months(1), self.feb01)
        self.assertEqual(self.jan01.add_years(1).to_string(), '20170101')
        self.assertEqual(self.jan01.add_period('2D'),
                         self.jan02 + BusinessPeriod('1D'))
        self.assertEqual(self.jan02.add_period('-2D'),
                         self.jan01 - BusinessPeriod('1D'))
        self.assertEqual(self.jan02.add_period('-1b'),
                         self.jan01 - BusinessPeriod('1b'))
        self.assertNotEqual(
            BusinessDate(20160630).add_period(BusinessPeriod('2B')),
            BusinessDate(20160630).add_period(
                BusinessPeriod('2B', BusinessHolidays(['20160704']))))
        self.assertEqual(self.jan01 + '1b', self.jan02 + '1b')

        rng = list(range(1, 10))
        periods = list()
        for y in rng:
            for m in rng:
                for d in rng:
                    periods.append(
                        BusinessPeriod(
                            str(y) + 'y' + str(m) + 'm' + str(d) + 'd'))

        for d in self.dates:
            for p in periods:
                c = d + p
                self.assertEqual((c - d), BusinessPeriod(p), (c, d, c - d, p))

        d = BusinessDate(20160229)
        self.assertEqual(d + '1y' + '1m', BusinessDate(20170328))
        self.assertEqual(d + '1m' + '1y', BusinessDate(20170329))
        self.assertEqual(d + '1y1m', BusinessDate(20170329))
示例#3
0
 def test_holiday(self):
     h = BusinessHolidays(self.list)
     for l in self.list:
         self.assertTrue(BusinessDate(l) in h)
         self.assertTrue(BusinessDate(l).to_date() in h)
     self.assertNotEqual(self.bd.add_period('3b', h),
                         self.bd.add_period('3b'))
示例#4
0
 def test_calculations(self):
     self.assertEqual(self.jan01.add_days(1), self.jan02)
     self.assertEqual(self.jan01.add_months(1), self.feb01)
     self.assertEqual(self.jan01.add_years(1).to_string(), '20170101')
     self.assertEqual(self.jan01.add_period('2D'),
                      self.jan02 + BusinessPeriod('1D'))
     self.assertEqual(self.jan02.add_period('-2D'),
                      self.jan01 - BusinessPeriod('1D'))
     self.assertEqual(self.jan02.add_period('-1b'),
                      self.jan01 - BusinessPeriod('1b'))
     self.assertNotEqual(
         BusinessDate(20160630).add_period(BusinessPeriod('2B')),
         BusinessDate(20160630).add_period(
             BusinessPeriod('2B', BusinessHolidays(['20160704']))))
     self.assertEqual(self.jan01 + '1b', self.jan02 + '1b')
示例#5
0
    def test_operators(self):
        self.assertEqual(self.jan01 + '2D', self.jan02 + '1D')
        self.assertEqual(self.jan01 - '1D', self.jan02 - '2D')
        self.assertEqual(self.jan02 - '1D' + '1M', self.feb01)
        self.assertRaises(TypeError, lambda: '1D' + self.jan02)
        self.assertEqual(self.jan01 - BusinessPeriod('1D'), self.jan02 - '2D')
        self.assertRaises(TypeError, lambda: BusinessPeriod('1D') + self.jan02)
        self.assertRaises(TypeError, lambda: BusinessPeriod('1D') - self.jan01)
        self.assertEqual(
            self.dec31_15.add_period(BusinessPeriod('2B'), BusinessHolidays()),
            self.dec31_15.add_period(BusinessPeriod('2B'),
                                     BusinessHolidays([self.jan02])))

        d = BusinessDate(20160229)
        self.assertEqual(d + '1y' + '1m', BusinessDate(20170328))
        self.assertEqual(d + '1m' + '1y', BusinessDate(20170329))
        self.assertEqual(d + '1y1m', BusinessDate(20170329))

        self.assertEqual(d + ['1y', '1m'],
                         [BusinessDate(20170228),
                          BusinessDate(20160329)])
        self.assertEqual(d - ['-1y', '-1m'],
                         [BusinessDate(20170228),
                          BusinessDate(20160329)])
示例#6
0
    def test_is_business_date(self):
        d = self.dec31
        holi = BusinessHolidays()
        bdate = BusinessDate.from_ymd(2016, 1, 1)
        is_bday_empty_calendar = bdate.is_business_day(holi)
        self.assertTrue(is_bday_empty_calendar)
        is_bday_default_calendar = bdate.is_business_day()
        self.assertFalse(is_bday_default_calendar)

        target_a = BusinessDate.from_ymd(2016, 1, 4)
        a = d.add_business_days(2, holi)
        self.assertEqual(target_a, a)
        target_b = BusinessDate.from_ymd(2016, 1, 5)
        b = d.add_business_days(
            2)  # default holidays contains the target days, i.e. the 1.1.2016
        self.assertEqual(target_b, b)
示例#7
0
    def test_calculations(self):
        self.assertEqual(self.jan01._add_days(1), self.jan02)
        self.assertEqual(self.jan01._add_ymd(0, 1, 0), self.feb01)
        self.assertEqual(str(self.jan01._add_ymd(1, 0, 0)), '20170101')
        self.assertEqual(self.jan01.add_period('2D'),
                         self.jan02 + BusinessPeriod('1D'))
        self.assertEqual(self.jan02.add_period('-2D'),
                         self.jan01 - BusinessPeriod('1D'))
        self.assertEqual(self.jan02.add_period('-1b'),
                         self.jan01 - BusinessPeriod('1b'))
        #        self.assertNotEqual(BusinessDate(20160630).add_period(BusinessPeriod('2B')),
        #                            BusinessDate(20160630).add_period(BusinessPeriod('2B'), BusinessHolidays(['20160704'])))
        self.assertNotEqual(
            BusinessDate(20160630).add_period(BusinessPeriod('2B')),
            BusinessDate(20160630).add_period(
                BusinessPeriod('2B'),
                BusinessHolidays(BusinessDate(['20160704']))))
        n = 111
        a, b = BusinessDate(), BusinessDate() + BusinessPeriod(days=n)
        self.assertEqual(n, a._diff_in_days(b))
        self.assertEqual(-n, b._diff_in_days(a))

        a, b = BusinessDate(20150630), BusinessDate(20150630) + BusinessPeriod(
            years=1, months=27, days=46)
        self.assertEqual(1234, a._diff_in_days(b))
        self.assertEqual(-1234, b._diff_in_days(a))

        self.assertRaises(TypeError, BusinessDate().__add__, 'rtzwrwetzwe')
        self.assertRaises(TypeError, BusinessDate().__sub__, 'rtzwrwetzwe')
        self.assertEqual(self.jan01 + '1b', self.jan02 + '1b')

        d, p = BusinessDate('20160229'), BusinessPeriod('1Y1M1D')
        self.assertEqual((d + p - d), p, (d + p - d, d, p, d + p))
        d, p = BusinessDate('20150129'), BusinessPeriod('1Y2M1D')
        self.assertEqual((d + p - d), p, (d + p - d, d, p, d + p))
        d, p = BusinessDate('20150129'), BusinessPeriod('1Y1M1D')
        self.assertEqual((d + p - d), p, (d + p - d, d, p, d + p))
        # non idepotent pairs
        d, p = BusinessDate('20150129'), BusinessPeriod('1M29D')
        # self.assertEqual((d + p - d), p, (d + p - d, d, p, d + p))
        d, p = BusinessDate('20160129'), BusinessPeriod('1M29D')