def test__diff(self): d1 = BusinessDate.from_ymd(2016, 1, 31) d2 = BusinessDate.from_ymd(2017, 11, 1) diff = BusinessDate.diff(d1, d2) diff = BusinessPeriod(years=diff[0], months=diff[1], days=diff[2]) self.assertEqual('1Y9M1D', diff.to_string()) d1 = BusinessDate.from_ymd(2016, 2, 29) d2 = BusinessDate.from_ymd(2017, 3, 1) diff = BusinessDate.diff(d1, d2) diff = BusinessPeriod(years=diff[0], months=diff[1], days=diff[2]) self.assertEqual('1Y1D', diff.to_string()) d2 = BusinessDate.from_ymd(2017, 2, 28) diff = BusinessDate.diff(d1, d2) diff = BusinessPeriod(years=diff[0], months=diff[1], days=diff[2]) self.assertEqual('1Y', diff.to_string()) d1 = BusinessDate.from_ymd(2016, 11, 15) d2 = BusinessDate.from_ymd(2017, 1, 15) diff = BusinessDate.diff(d1, d2) diff = BusinessPeriod(years=diff[0], months=diff[1], days=diff[2]) self.assertEqual('2M', diff.to_string()) d1 = BusinessDate.from_ymd(2015, 7, 31) d2 = BusinessDate.from_ymd(2017, 2, 20) diff = BusinessDate.diff(d1, d2) diff = BusinessPeriod(years=diff[0], months=diff[1], days=diff[2]) self.assertEqual('1Y6M20D', diff.to_string())
def test__diff(self): d1 = BusinessDate.from_ymd(2016, 1, 31) d2 = BusinessDate.from_ymd(2017, 11, 1) y, m, d = BusinessDate.diff(d2, d1) diff = BusinessPeriod(years=y, months=m, days=d) self.assertEqual('1Y9M1D', diff.to_string()) d1 = BusinessDate.from_ymd(2016, 2, 29) d2 = BusinessDate.from_ymd(2017, 3, 1) y, m, d = BusinessDate.diff(d2, d1) diff = BusinessPeriod(years=y, months=m, days=d) self.assertEqual('1Y1D', diff.to_string()) d2 = BusinessDate.from_ymd(2017, 2, 28) y, m, d = BusinessDate.diff(d2, d1) diff = BusinessPeriod(years=y, months=m, days=d) self.assertEqual('1Y', diff.to_string()) d1 = BusinessDate.from_ymd(2016, 11, 15) d2 = BusinessDate.from_ymd(2017, 1, 15) y, m, d = BusinessDate.diff(d2, d1) diff = BusinessPeriod(years=y, months=m, days=d) self.assertEqual('2M', diff.to_string()) d1 = BusinessDate.from_ymd(2015, 7, 31) d2 = BusinessDate.from_ymd(2017, 2, 20) y, m, d = BusinessDate.diff(d2, d1) diff = BusinessPeriod(years=y, months=m, days=d) self.assertEqual('1Y6M20D', diff.to_string())
def test_diff(self): d1 = BusinessDate.from_ymd(2016, 1, 31) d2 = BusinessDate.from_ymd(2017, 11, 1) y, m, d = BusinessDate.diff_in_ymd(d1, d2) diff = BusinessPeriod(years=y, months=m, days=d) self.assertEqual('1Y9M1D', str(diff)) d1 = BusinessDate.from_ymd(2016, 2, 29) d2 = BusinessDate.from_ymd(2017, 3, 1) y, m, d = BusinessDate.diff_in_ymd(d1, d2) diff = BusinessPeriod(years=y, months=m, days=d) self.assertEqual('1Y1D', str(diff)) d2 = BusinessDate.from_ymd(2017, 2, 28) y, m, d = BusinessDate.diff_in_ymd(d1, d2) diff = BusinessPeriod(years=y, months=m, days=d) self.assertEqual('11M30D', str(diff)) d1 = BusinessDate.from_ymd(2016, 11, 15) d2 = BusinessDate.from_ymd(2017, 1, 15) y, m, d = BusinessDate.diff_in_ymd(d1, d2) diff = BusinessPeriod(years=y, months=m, days=d) self.assertEqual('2M', str(diff)) d1 = BusinessDate.from_ymd(2015, 7, 31) d2 = BusinessDate.from_ymd(2017, 2, 20) y, m, d = BusinessDate.diff_in_ymd(d1, d2) diff = BusinessPeriod(years=y, months=m, days=d) self.assertEqual('1Y6M20D', str(diff))
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)
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)
def test_cast_from(self): for d in self.dates: self.assertEqual(BusinessDate.from_date(d.to_date()), d) self.assertEqual(BusinessDate.from_businessdate(d), d) self.assertEqual(BusinessDate.from_excel(d.to_excel()), d) self.assertEqual(BusinessDate.from_ordinal(d.to_ordinal()), d) self.assertEqual(BusinessDate.from_string(d.to_string()), d) self.assertEqual(BusinessDate.from_ymd(*d.to_ymd()), d)