Created
April 20, 2015 06:05
-
-
Save hayd/0a11147544b71f343160 to your computer and use it in GitHub Desktop.
offsets_yapf_autopep8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- original/pandas/tseries/tests/test_offsets.py | |
| +++ fixed/pandas/tseries/tests/test_offsets.py | |
| @@ -44,7 +44,7 @@ | |
| #### | |
| -## Misc function tests | |
| +# Misc function tests | |
| #### | |
| @@ -90,8 +90,9 @@ | |
| # assert valb == datetime(2007,10,1) | |
| ##### | |
| -### DateOffset Tests | |
| +# DateOffset Tests | |
| ##### | |
| + | |
| class Base(tm.TestCase): | |
| _offset = None | |
| @@ -151,7 +152,8 @@ | |
| except (tslib.OutOfBoundsDatetime): | |
| raise | |
| except (ValueError, KeyError) as e: | |
| - raise nose.SkipTest("cannot create out_of_range offset: {0} {1}".format(str(self).split('.')[-1],e)) | |
| + raise nose.SkipTest("cannot create out_of_range offset: {0} {1}".format( | |
| + str(self).split('.')[-1], e)) | |
| class TestCommon(Base): | |
| @@ -301,7 +303,8 @@ | |
| for offset in self.offset_types: | |
| for dt in [sdt, ndt]: | |
| expected = expecteds[offset.__name__] | |
| - self._check_offsetfunc_works(offset, 'rollforward', dt, expected) | |
| + self._check_offsetfunc_works( | |
| + offset, 'rollforward', dt, expected) | |
| expected = norm_expected[offset.__name__] | |
| self._check_offsetfunc_works(offset, 'rollforward', dt, expected, | |
| normalize=True) | |
| @@ -423,6 +426,7 @@ | |
| # | |
| tm.assert_dict_equal(offsets, read_pickle(pickle_path)) | |
| + | |
| class TestDateOffset(Base): | |
| _multiprocess_can_split_ = True | |
| @@ -628,7 +632,7 @@ | |
| self.assertEqual(rs, xp) | |
| off = BDay() * 10 | |
| - rs = datetime(2014, 1, 5) + off # see #5890 | |
| + rs = datetime(2014, 1, 5) + off # see #5890 | |
| xp = datetime(2014, 1, 17) | |
| self.assertEqual(rs, xp) | |
| @@ -833,7 +837,7 @@ | |
| def test_weekmask(self): | |
| weekmask_saudi = 'Sat Sun Mon Tue Wed' # Thu-Fri Weekend | |
| weekmask_uae = '1111001' # Fri-Sat Weekend | |
| - weekmask_egypt = [1,1,1,1,0,0,1] # Fri-Sat Weekend | |
| + weekmask_egypt = [1, 1, 1, 1, 0, 0, 1] # Fri-Sat Weekend | |
| bday_saudi = CDay(weekmask=weekmask_saudi) | |
| bday_uae = CDay(weekmask=weekmask_uae) | |
| bday_egypt = CDay(weekmask=weekmask_egypt) | |
| @@ -869,16 +873,17 @@ | |
| self.assertEqual(unpickled, obj) | |
| _check_roundtrip(self.offset) | |
| _check_roundtrip(self.offset2) | |
| - _check_roundtrip(self.offset*2) | |
| + _check_roundtrip(self.offset * 2) | |
| def test_pickle_compat_0_14_1(self): | |
| - hdays = [datetime(2013,1,1) for ele in range(4)] | |
| + hdays = [datetime(2013, 1, 1) for ele in range(4)] | |
| pth = tm.get_data_path() | |
| cday0_14_1 = read_pickle(os.path.join(pth, 'cday-0.14.1.pickle')) | |
| cday = CDay(holidays=hdays) | |
| self.assertEqual(cday, cday0_14_1) | |
| + | |
| class CustomBusinessMonthBase(object): | |
| _multiprocess_can_split_ = True | |
| @@ -932,7 +937,7 @@ | |
| self.assertEqual(unpickled, obj) | |
| _check_roundtrip(self._object()) | |
| _check_roundtrip(self._object(2)) | |
| - _check_roundtrip(self._object()*2) | |
| + _check_roundtrip(self._object() * 2) | |
| class TestCustomBusinessMonthEnd(CustomBusinessMonthBase, Base): | |
| @@ -958,10 +963,11 @@ | |
| def testRollback2(self): | |
| self.assertEqual(CBMonthEnd(10).rollback(self.d), | |
| - datetime(2007,12,31)) | |
| + datetime(2007, 12, 31)) | |
| def testRollforward1(self): | |
| - self.assertEqual(CBMonthEnd(10).rollforward(self.d), datetime(2008,1,31)) | |
| + self.assertEqual( | |
| + CBMonthEnd(10).rollforward(self.d), datetime(2008, 1, 31)) | |
| def test_roll_date_object(self): | |
| offset = CBMonthEnd() | |
| @@ -987,7 +993,6 @@ | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| - | |
| def test_apply(self): | |
| cbm = CBMonthEnd() | |
| @@ -1041,18 +1046,19 @@ | |
| holidays = ['2012-01-31', datetime(2012, 2, 28), | |
| np.datetime64('2012-02-29')] | |
| bm_offset = CBMonthEnd(holidays=holidays) | |
| - dt = datetime(2012,1,1) | |
| - self.assertEqual(dt + bm_offset,datetime(2012,1,30)) | |
| - self.assertEqual(dt + 2*bm_offset,datetime(2012,2,27)) | |
| + dt = datetime(2012, 1, 1) | |
| + self.assertEqual(dt + bm_offset, datetime(2012, 1, 30)) | |
| + self.assertEqual(dt + 2 * bm_offset, datetime(2012, 2, 27)) | |
| def test_datetimeindex(self): | |
| from pandas.tseries.holiday import USFederalHolidayCalendar | |
| hcal = USFederalHolidayCalendar() | |
| freq = CBMonthEnd(calendar=hcal) | |
| - self.assertEqual(DatetimeIndex(start='20120101',end='20130101', | |
| + self.assertEqual(DatetimeIndex(start='20120101', end='20130101', | |
| freq=freq).tolist()[0], | |
| - datetime(2012,1,31)) | |
| + datetime(2012, 1, 31)) | |
| + | |
| class TestCustomBusinessMonthBegin(CustomBusinessMonthBase, Base): | |
| _object = CBMonthBegin | |
| @@ -1077,10 +1083,11 @@ | |
| def testRollback2(self): | |
| self.assertEqual(CBMonthBegin(10).rollback(self.d), | |
| - datetime(2008,1,1)) | |
| + datetime(2008, 1, 1)) | |
| def testRollforward1(self): | |
| - self.assertEqual(CBMonthBegin(10).rollforward(self.d), datetime(2008,1,1)) | |
| + self.assertEqual( | |
| + CBMonthBegin(10).rollforward(self.d), datetime(2008, 1, 1)) | |
| def test_roll_date_object(self): | |
| offset = CBMonthBegin() | |
| @@ -1106,7 +1113,6 @@ | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| - | |
| def test_apply(self): | |
| cbm = CBMonthBegin() | |
| @@ -1160,16 +1166,16 @@ | |
| holidays = ['2012-02-01', datetime(2012, 2, 2), | |
| np.datetime64('2012-03-01')] | |
| bm_offset = CBMonthBegin(holidays=holidays) | |
| - dt = datetime(2012,1,1) | |
| - self.assertEqual(dt + bm_offset,datetime(2012,1,2)) | |
| - self.assertEqual(dt + 2*bm_offset,datetime(2012,2,3)) | |
| + dt = datetime(2012, 1, 1) | |
| + self.assertEqual(dt + bm_offset, datetime(2012, 1, 2)) | |
| + self.assertEqual(dt + 2 * bm_offset, datetime(2012, 2, 3)) | |
| def test_datetimeindex(self): | |
| hcal = USFederalHolidayCalendar() | |
| cbmb = CBMonthBegin(calendar=hcal) | |
| self.assertEqual(DatetimeIndex(start='20120101', end='20130101', | |
| freq=cbmb).tolist()[0], | |
| - datetime(2012,1,3)) | |
| + datetime(2012, 1, 3)) | |
| def assertOnOffset(offset, date, expected): | |
| @@ -1185,7 +1191,8 @@ | |
| def test_repr(self): | |
| self.assertEqual(repr(Week(weekday=0)), "<Week: weekday=0>") | |
| self.assertEqual(repr(Week(n=-1, weekday=0)), "<-1 * Week: weekday=0>") | |
| - self.assertEqual(repr(Week(n=-2, weekday=0)), "<-2 * Weeks: weekday=0>") | |
| + self.assertEqual( | |
| + repr(Week(n=-2, weekday=0)), "<-2 * Weeks: weekday=0>") | |
| def test_corner(self): | |
| self.assertRaises(ValueError, Week, weekday=7) | |
| @@ -1254,14 +1261,20 @@ | |
| _offset = WeekOfMonth | |
| def test_constructor(self): | |
| - assertRaisesRegexp(ValueError, "^N cannot be 0", WeekOfMonth, n=0, week=1, weekday=1) | |
| - assertRaisesRegexp(ValueError, "^Week", WeekOfMonth, n=1, week=4, weekday=0) | |
| - assertRaisesRegexp(ValueError, "^Week", WeekOfMonth, n=1, week=-1, weekday=0) | |
| - assertRaisesRegexp(ValueError, "^Day", WeekOfMonth, n=1, week=0, weekday=-1) | |
| - assertRaisesRegexp(ValueError, "^Day", WeekOfMonth, n=1, week=0, weekday=7) | |
| + assertRaisesRegexp( | |
| + ValueError, "^N cannot be 0", WeekOfMonth, n=0, week=1, weekday=1) | |
| + assertRaisesRegexp( | |
| + ValueError, "^Week", WeekOfMonth, n=1, week=4, weekday=0) | |
| + assertRaisesRegexp( | |
| + ValueError, "^Week", WeekOfMonth, n=1, week=-1, weekday=0) | |
| + assertRaisesRegexp( | |
| + ValueError, "^Day", WeekOfMonth, n=1, week=0, weekday=-1) | |
| + assertRaisesRegexp( | |
| + ValueError, "^Day", WeekOfMonth, n=1, week=0, weekday=7) | |
| def test_repr(self): | |
| - self.assertEqual(repr(WeekOfMonth(weekday=1,week=2)), "<WeekOfMonth: week=2, weekday=1>") | |
| + self.assertEqual( | |
| + repr(WeekOfMonth(weekday=1, week=2)), "<WeekOfMonth: week=2, weekday=1>") | |
| def test_offset(self): | |
| date1 = datetime(2011, 1, 4) # 1st Tuesday of Month | |
| @@ -1329,20 +1342,22 @@ | |
| offset = WeekOfMonth(week=week, weekday=weekday) | |
| self.assertEqual(offset.onOffset(date), expected) | |
| + | |
| class TestLastWeekOfMonth(Base): | |
| _offset = LastWeekOfMonth | |
| def test_constructor(self): | |
| - assertRaisesRegexp(ValueError, "^N cannot be 0", \ | |
| + assertRaisesRegexp(ValueError, "^N cannot be 0", | |
| LastWeekOfMonth, n=0, weekday=1) | |
| - assertRaisesRegexp(ValueError, "^Day", LastWeekOfMonth, n=1, weekday=-1) | |
| + assertRaisesRegexp( | |
| + ValueError, "^Day", LastWeekOfMonth, n=1, weekday=-1) | |
| assertRaisesRegexp(ValueError, "^Day", LastWeekOfMonth, n=1, weekday=7) | |
| def test_offset(self): | |
| - #### Saturday | |
| - last_sat = datetime(2013,8,31) | |
| - next_sat = datetime(2013,9,28) | |
| + # Saturday | |
| + last_sat = datetime(2013, 8, 31) | |
| + next_sat = datetime(2013, 9, 28) | |
| offset_sat = LastWeekOfMonth(n=1, weekday=5) | |
| one_day_before = (last_sat + timedelta(days=-1)) | |
| @@ -1351,14 +1366,14 @@ | |
| one_day_after = (last_sat + timedelta(days=+1)) | |
| self.assertEqual(one_day_after + offset_sat, next_sat) | |
| - #Test On that day | |
| + # Test On that day | |
| self.assertEqual(last_sat + offset_sat, next_sat) | |
| - #### Thursday | |
| + # Thursday | |
| offset_thur = LastWeekOfMonth(n=1, weekday=3) | |
| - last_thurs = datetime(2013,1,31) | |
| - next_thurs = datetime(2013,2,28) | |
| + last_thurs = datetime(2013, 1, 31) | |
| + next_thurs = datetime(2013, 2, 28) | |
| one_day_before = last_thurs + timedelta(days=-1) | |
| self.assertEqual(one_day_before + offset_thur, last_thurs) | |
| @@ -1376,14 +1391,15 @@ | |
| self.assertEqual(two_after + offset_thur, next_thurs) | |
| offset_sunday = LastWeekOfMonth(n=1, weekday=WeekDay.SUN) | |
| - self.assertEqual(datetime(2013,7,31) + offset_sunday, datetime(2013,8,25)) | |
| + self.assertEqual( | |
| + datetime(2013, 7, 31) + offset_sunday, datetime(2013, 8, 25)) | |
| def test_onOffset(self): | |
| test_cases = [ | |
| (WeekDay.SUN, datetime(2013, 1, 27), True), | |
| (WeekDay.SAT, datetime(2013, 3, 30), True), | |
| - (WeekDay.MON, datetime(2013, 2, 18), False), #Not the last Mon | |
| - (WeekDay.SUN, datetime(2013, 2, 25), False), #Not a SUN | |
| + (WeekDay.MON, datetime(2013, 2, 18), False), # Not the last Mon | |
| + (WeekDay.SUN, datetime(2013, 2, 25), False), # Not a SUN | |
| (WeekDay.MON, datetime(2013, 2, 25), True), | |
| (WeekDay.SAT, datetime(2013, 11, 30), True), | |
| @@ -1408,13 +1424,13 @@ | |
| tests = [] | |
| tests.append((BMonthBegin(), | |
| - {datetime(2008, 1, 1): datetime(2008, 2, 1), | |
| - datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| - datetime(2006, 12, 29): datetime(2007, 1, 1), | |
| - datetime(2006, 12, 31): datetime(2007, 1, 1), | |
| - datetime(2006, 9, 1): datetime(2006, 10, 2), | |
| - datetime(2007, 1, 1): datetime(2007, 2, 1), | |
| - datetime(2006, 12, 1): datetime(2007, 1, 1)})) | |
| + {datetime(2008, 1, 1): datetime(2008, 2, 1), | |
| + datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| + datetime(2006, 12, 29): datetime(2007, 1, 1), | |
| + datetime(2006, 12, 31): datetime(2007, 1, 1), | |
| + datetime(2006, 9, 1): datetime(2006, 10, 2), | |
| + datetime(2007, 1, 1): datetime(2007, 2, 1), | |
| + datetime(2006, 12, 1): datetime(2007, 1, 1)})) | |
| tests.append((BMonthBegin(0), | |
| {datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| @@ -1425,22 +1441,22 @@ | |
| datetime(2006, 9, 15): datetime(2006, 10, 2)})) | |
| tests.append((BMonthBegin(2), | |
| - {datetime(2008, 1, 1): datetime(2008, 3, 3), | |
| - datetime(2008, 1, 15): datetime(2008, 3, 3), | |
| - datetime(2006, 12, 29): datetime(2007, 2, 1), | |
| - datetime(2006, 12, 31): datetime(2007, 2, 1), | |
| - datetime(2007, 1, 1): datetime(2007, 3, 1), | |
| - datetime(2006, 11, 1): datetime(2007, 1, 1)})) | |
| + {datetime(2008, 1, 1): datetime(2008, 3, 3), | |
| + datetime(2008, 1, 15): datetime(2008, 3, 3), | |
| + datetime(2006, 12, 29): datetime(2007, 2, 1), | |
| + datetime(2006, 12, 31): datetime(2007, 2, 1), | |
| + datetime(2007, 1, 1): datetime(2007, 3, 1), | |
| + datetime(2006, 11, 1): datetime(2007, 1, 1)})) | |
| tests.append((BMonthBegin(-1), | |
| - {datetime(2007, 1, 1): datetime(2006, 12, 1), | |
| - datetime(2008, 6, 30): datetime(2008, 6, 2), | |
| - datetime(2008, 6, 1): datetime(2008, 5, 1), | |
| - datetime(2008, 3, 10): datetime(2008, 3, 3), | |
| - datetime(2008, 12, 31): datetime(2008, 12, 1), | |
| - datetime(2006, 12, 29): datetime(2006, 12, 1), | |
| - datetime(2006, 12, 30): datetime(2006, 12, 1), | |
| - datetime(2007, 1, 1): datetime(2006, 12, 1)})) | |
| + {datetime(2007, 1, 1): datetime(2006, 12, 1), | |
| + datetime(2008, 6, 30): datetime(2008, 6, 2), | |
| + datetime(2008, 6, 1): datetime(2008, 5, 1), | |
| + datetime(2008, 3, 10): datetime(2008, 3, 3), | |
| + datetime(2008, 12, 31): datetime(2008, 12, 1), | |
| + datetime(2006, 12, 29): datetime(2006, 12, 1), | |
| + datetime(2006, 12, 30): datetime(2006, 12, 1), | |
| + datetime(2007, 1, 1): datetime(2006, 12, 1)})) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1470,12 +1486,12 @@ | |
| tests = [] | |
| tests.append((BMonthEnd(), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| - datetime(2008, 1, 31): datetime(2008, 2, 29), | |
| - datetime(2006, 12, 29): datetime(2007, 1, 31), | |
| - datetime(2006, 12, 31): datetime(2007, 1, 31), | |
| - datetime(2007, 1, 1): datetime(2007, 1, 31), | |
| - datetime(2006, 12, 1): datetime(2006, 12, 29)})) | |
| + {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| + datetime(2008, 1, 31): datetime(2008, 2, 29), | |
| + datetime(2006, 12, 29): datetime(2007, 1, 31), | |
| + datetime(2006, 12, 31): datetime(2007, 1, 31), | |
| + datetime(2007, 1, 1): datetime(2007, 1, 31), | |
| + datetime(2006, 12, 1): datetime(2006, 12, 29)})) | |
| tests.append((BMonthEnd(0), | |
| {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| @@ -1485,20 +1501,20 @@ | |
| datetime(2007, 1, 1): datetime(2007, 1, 31)})) | |
| tests.append((BMonthEnd(2), | |
| - {datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| - datetime(2008, 1, 31): datetime(2008, 3, 31), | |
| - datetime(2006, 12, 29): datetime(2007, 2, 28), | |
| - datetime(2006, 12, 31): datetime(2007, 2, 28), | |
| - datetime(2007, 1, 1): datetime(2007, 2, 28), | |
| - datetime(2006, 11, 1): datetime(2006, 12, 29)})) | |
| + {datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| + datetime(2008, 1, 31): datetime(2008, 3, 31), | |
| + datetime(2006, 12, 29): datetime(2007, 2, 28), | |
| + datetime(2006, 12, 31): datetime(2007, 2, 28), | |
| + datetime(2007, 1, 1): datetime(2007, 2, 28), | |
| + datetime(2006, 11, 1): datetime(2006, 12, 29)})) | |
| tests.append((BMonthEnd(-1), | |
| - {datetime(2007, 1, 1): datetime(2006, 12, 29), | |
| - datetime(2008, 6, 30): datetime(2008, 5, 30), | |
| - datetime(2008, 12, 31): datetime(2008, 11, 28), | |
| - datetime(2006, 12, 29): datetime(2006, 11, 30), | |
| - datetime(2006, 12, 30): datetime(2006, 12, 29), | |
| - datetime(2007, 1, 1): datetime(2006, 12, 29)})) | |
| + {datetime(2007, 1, 1): datetime(2006, 12, 29), | |
| + datetime(2008, 6, 30): datetime(2008, 5, 30), | |
| + datetime(2008, 12, 31): datetime(2008, 11, 28), | |
| + datetime(2006, 12, 29): datetime(2006, 11, 30), | |
| + datetime(2006, 12, 30): datetime(2006, 12, 29), | |
| + datetime(2007, 1, 1): datetime(2006, 12, 29)})) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1535,11 +1551,11 @@ | |
| # NOTE: I'm not entirely happy with the logic here for Begin -ss | |
| # see thread 'offset conventions' on the ML | |
| tests.append((MonthBegin(), | |
| - {datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| - datetime(2008, 2, 1): datetime(2008, 3, 1), | |
| - datetime(2006, 12, 31): datetime(2007, 1, 1), | |
| - datetime(2006, 12, 1): datetime(2007, 1, 1), | |
| - datetime(2007, 1, 31): datetime(2007, 2, 1)})) | |
| + {datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| + datetime(2008, 2, 1): datetime(2008, 3, 1), | |
| + datetime(2006, 12, 31): datetime(2007, 1, 1), | |
| + datetime(2006, 12, 1): datetime(2007, 1, 1), | |
| + datetime(2007, 1, 31): datetime(2007, 2, 1)})) | |
| tests.append((MonthBegin(0), | |
| {datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| @@ -1548,19 +1564,19 @@ | |
| datetime(2007, 1, 31): datetime(2007, 2, 1)})) | |
| tests.append((MonthBegin(2), | |
| - {datetime(2008, 2, 29): datetime(2008, 4, 1), | |
| - datetime(2008, 1, 31): datetime(2008, 3, 1), | |
| - datetime(2006, 12, 31): datetime(2007, 2, 1), | |
| - datetime(2007, 12, 28): datetime(2008, 2, 1), | |
| - datetime(2007, 1, 1): datetime(2007, 3, 1), | |
| - datetime(2006, 11, 1): datetime(2007, 1, 1)})) | |
| + {datetime(2008, 2, 29): datetime(2008, 4, 1), | |
| + datetime(2008, 1, 31): datetime(2008, 3, 1), | |
| + datetime(2006, 12, 31): datetime(2007, 2, 1), | |
| + datetime(2007, 12, 28): datetime(2008, 2, 1), | |
| + datetime(2007, 1, 1): datetime(2007, 3, 1), | |
| + datetime(2006, 11, 1): datetime(2007, 1, 1)})) | |
| tests.append((MonthBegin(-1), | |
| - {datetime(2007, 1, 1): datetime(2006, 12, 1), | |
| - datetime(2008, 5, 31): datetime(2008, 5, 1), | |
| - datetime(2008, 12, 31): datetime(2008, 12, 1), | |
| - datetime(2006, 12, 29): datetime(2006, 12, 1), | |
| - datetime(2006, 1, 2): datetime(2006, 1, 1)})) | |
| + {datetime(2007, 1, 1): datetime(2006, 12, 1), | |
| + datetime(2008, 5, 31): datetime(2008, 5, 1), | |
| + datetime(2008, 12, 31): datetime(2008, 12, 1), | |
| + datetime(2006, 12, 29): datetime(2006, 12, 1), | |
| + datetime(2006, 1, 2): datetime(2006, 1, 1)})) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1574,12 +1590,12 @@ | |
| tests = [] | |
| tests.append((MonthEnd(), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| - datetime(2008, 1, 31): datetime(2008, 2, 29), | |
| - datetime(2006, 12, 29): datetime(2006, 12, 31), | |
| - datetime(2006, 12, 31): datetime(2007, 1, 31), | |
| - datetime(2007, 1, 1): datetime(2007, 1, 31), | |
| - datetime(2006, 12, 1): datetime(2006, 12, 31)})) | |
| + {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| + datetime(2008, 1, 31): datetime(2008, 2, 29), | |
| + datetime(2006, 12, 29): datetime(2006, 12, 31), | |
| + datetime(2006, 12, 31): datetime(2007, 1, 31), | |
| + datetime(2007, 1, 1): datetime(2007, 1, 31), | |
| + datetime(2006, 12, 1): datetime(2006, 12, 31)})) | |
| tests.append((MonthEnd(0), | |
| {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| @@ -1589,20 +1605,20 @@ | |
| datetime(2007, 1, 1): datetime(2007, 1, 31)})) | |
| tests.append((MonthEnd(2), | |
| - {datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| - datetime(2008, 1, 31): datetime(2008, 3, 31), | |
| - datetime(2006, 12, 29): datetime(2007, 1, 31), | |
| - datetime(2006, 12, 31): datetime(2007, 2, 28), | |
| - datetime(2007, 1, 1): datetime(2007, 2, 28), | |
| - datetime(2006, 11, 1): datetime(2006, 12, 31)})) | |
| + {datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| + datetime(2008, 1, 31): datetime(2008, 3, 31), | |
| + datetime(2006, 12, 29): datetime(2007, 1, 31), | |
| + datetime(2006, 12, 31): datetime(2007, 2, 28), | |
| + datetime(2007, 1, 1): datetime(2007, 2, 28), | |
| + datetime(2006, 11, 1): datetime(2006, 12, 31)})) | |
| tests.append((MonthEnd(-1), | |
| - {datetime(2007, 1, 1): datetime(2006, 12, 31), | |
| - datetime(2008, 6, 30): datetime(2008, 5, 31), | |
| - datetime(2008, 12, 31): datetime(2008, 11, 30), | |
| - datetime(2006, 12, 29): datetime(2006, 11, 30), | |
| - datetime(2006, 12, 30): datetime(2006, 11, 30), | |
| - datetime(2007, 1, 1): datetime(2006, 12, 31)})) | |
| + {datetime(2007, 1, 1): datetime(2006, 12, 31), | |
| + datetime(2008, 6, 30): datetime(2008, 5, 31), | |
| + datetime(2008, 12, 31): datetime(2008, 11, 30), | |
| + datetime(2006, 12, 29): datetime(2006, 11, 30), | |
| + datetime(2006, 12, 30): datetime(2006, 11, 30), | |
| + datetime(2007, 1, 1): datetime(2006, 12, 31)})) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1639,9 +1655,12 @@ | |
| _offset = BQuarterBegin | |
| def test_repr(self): | |
| - self.assertEqual(repr(BQuarterBegin()),"<BusinessQuarterBegin: startingMonth=3>") | |
| - self.assertEqual(repr(BQuarterBegin(startingMonth=3)), "<BusinessQuarterBegin: startingMonth=3>") | |
| - self.assertEqual(repr(BQuarterBegin(startingMonth=1)), "<BusinessQuarterBegin: startingMonth=1>") | |
| + self.assertEqual( | |
| + repr(BQuarterBegin()), "<BusinessQuarterBegin: startingMonth=3>") | |
| + self.assertEqual(repr(BQuarterBegin(startingMonth=3)), | |
| + "<BusinessQuarterBegin: startingMonth=3>") | |
| + self.assertEqual(repr(BQuarterBegin(startingMonth=1)), | |
| + "<BusinessQuarterBegin: startingMonth=1>") | |
| def test_isAnchored(self): | |
| self.assertTrue(BQuarterBegin(startingMonth=1).isAnchored()) | |
| @@ -1730,9 +1749,12 @@ | |
| _offset = BQuarterEnd | |
| def test_repr(self): | |
| - self.assertEqual(repr(BQuarterEnd()),"<BusinessQuarterEnd: startingMonth=3>") | |
| - self.assertEqual(repr(BQuarterEnd(startingMonth=3)), "<BusinessQuarterEnd: startingMonth=3>") | |
| - self.assertEqual(repr(BQuarterEnd(startingMonth=1)), "<BusinessQuarterEnd: startingMonth=1>") | |
| + self.assertEqual( | |
| + repr(BQuarterEnd()), "<BusinessQuarterEnd: startingMonth=3>") | |
| + self.assertEqual( | |
| + repr(BQuarterEnd(startingMonth=3)), "<BusinessQuarterEnd: startingMonth=3>") | |
| + self.assertEqual( | |
| + repr(BQuarterEnd(startingMonth=1)), "<BusinessQuarterEnd: startingMonth=1>") | |
| def test_isAnchored(self): | |
| self.assertTrue(BQuarterEnd(startingMonth=1).isAnchored()) | |
| @@ -1834,27 +1856,35 @@ | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| + | |
| def makeFY5253LastOfMonthQuarter(*args, **kwds): | |
| return FY5253Quarter(*args, variation="last", **kwds) | |
| + | |
| def makeFY5253NearestEndMonthQuarter(*args, **kwds): | |
| return FY5253Quarter(*args, variation="nearest", **kwds) | |
| + | |
| def makeFY5253NearestEndMonth(*args, **kwds): | |
| return FY5253(*args, variation="nearest", **kwds) | |
| + | |
| def makeFY5253LastOfMonth(*args, **kwds): | |
| return FY5253(*args, variation="last", **kwds) | |
| + | |
| class TestFY5253LastOfMonth(Base): | |
| def test_onOffset(self): | |
| - offset_lom_sat_aug = makeFY5253LastOfMonth(1, startingMonth=8, weekday=WeekDay.SAT) | |
| - offset_lom_sat_sep = makeFY5253LastOfMonth(1, startingMonth=9, weekday=WeekDay.SAT) | |
| + offset_lom_sat_aug = makeFY5253LastOfMonth( | |
| + 1, startingMonth=8, weekday=WeekDay.SAT) | |
| + offset_lom_sat_sep = makeFY5253LastOfMonth( | |
| + 1, startingMonth=9, weekday=WeekDay.SAT) | |
| tests = [ | |
| - #From Wikipedia (see: http://en.wikipedia.org/wiki/4%E2%80%934%E2%80%935_calendar#Last_Saturday_of_the_month_at_fiscal_year_end) | |
| + # From Wikipedia (see: | |
| + # http://en.wikipedia.org/wiki/4%E2%80%934%E2%80%935_calendar#Last_Saturday_of_the_month_at_fiscal_year_end) | |
| (offset_lom_sat_aug, datetime(2006, 8, 26), True), | |
| (offset_lom_sat_aug, datetime(2007, 8, 25), True), | |
| (offset_lom_sat_aug, datetime(2008, 8, 30), True), | |
| @@ -1885,7 +1915,8 @@ | |
| (offset_lom_sat_aug, datetime(2011, 8, 26), False), | |
| (offset_lom_sat_aug, datetime(2019, 8, 30), False), | |
| - #From GMCR (see for example: http://yahoo.brand.edgar-online.com/Default.aspx?companyid=3184&formtypeID=7) | |
| + # From GMCR (see for example: | |
| + # http://yahoo.brand.edgar-online.com/Default.aspx?companyid=3184&formtypeID=7) | |
| (offset_lom_sat_sep, datetime(2010, 9, 25), True), | |
| (offset_lom_sat_sep, datetime(2011, 9, 24), True), | |
| (offset_lom_sat_sep, datetime(2012, 9, 29), True), | |
| @@ -1896,8 +1927,10 @@ | |
| assertOnOffset(offset, date, expected) | |
| def test_apply(self): | |
| - offset_lom_aug_sat = makeFY5253LastOfMonth(startingMonth=8, weekday=WeekDay.SAT) | |
| - offset_lom_aug_sat_1 = makeFY5253LastOfMonth(n=1, startingMonth=8, weekday=WeekDay.SAT) | |
| + offset_lom_aug_sat = makeFY5253LastOfMonth( | |
| + startingMonth=8, weekday=WeekDay.SAT) | |
| + offset_lom_aug_sat_1 = makeFY5253LastOfMonth( | |
| + n=1, startingMonth=8, weekday=WeekDay.SAT) | |
| date_seq_lom_aug_sat = [datetime(2006, 8, 26), datetime(2007, 8, 25), | |
| datetime(2008, 8, 30), datetime(2009, 8, 29), | |
| @@ -1907,12 +1940,15 @@ | |
| datetime(2016, 8, 27)] | |
| tests = [ | |
| - (offset_lom_aug_sat, date_seq_lom_aug_sat), | |
| - (offset_lom_aug_sat_1, date_seq_lom_aug_sat), | |
| - (offset_lom_aug_sat, [datetime(2006, 8, 25)] + date_seq_lom_aug_sat), | |
| - (offset_lom_aug_sat_1, [datetime(2006, 8, 27)] + date_seq_lom_aug_sat[1:]), | |
| - (makeFY5253LastOfMonth(n=-1, startingMonth=8, weekday=WeekDay.SAT), list(reversed(date_seq_lom_aug_sat))), | |
| - ] | |
| + (offset_lom_aug_sat, date_seq_lom_aug_sat), | |
| + (offset_lom_aug_sat_1, date_seq_lom_aug_sat), | |
| + (offset_lom_aug_sat, [ | |
| + datetime(2006, 8, 25)] + date_seq_lom_aug_sat), | |
| + (offset_lom_aug_sat_1, [ | |
| + datetime(2006, 8, 27)] + date_seq_lom_aug_sat[1:]), | |
| + (makeFY5253LastOfMonth(n=-1, startingMonth=8, | |
| + weekday=WeekDay.SAT), list(reversed(date_seq_lom_aug_sat))), | |
| + ] | |
| for test in tests: | |
| offset, data = test | |
| current = data[0] | |
| @@ -1920,53 +1956,69 @@ | |
| current = current + offset | |
| self.assertEqual(current, datum) | |
| + | |
| class TestFY5253NearestEndMonth(Base): | |
| def test_get_target_month_end(self): | |
| - self.assertEqual(makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SAT).get_target_month_end(datetime(2013,1,1)), datetime(2013,8,31)) | |
| - self.assertEqual(makeFY5253NearestEndMonth(startingMonth=12, weekday=WeekDay.SAT).get_target_month_end(datetime(2013,1,1)), datetime(2013,12,31)) | |
| - self.assertEqual(makeFY5253NearestEndMonth(startingMonth=2, weekday=WeekDay.SAT).get_target_month_end(datetime(2013,1,1)), datetime(2013,2,28)) | |
| + self.assertEqual(makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SAT).get_target_month_end( | |
| + datetime(2013, 1, 1)), datetime(2013, 8, 31)) | |
| + self.assertEqual(makeFY5253NearestEndMonth(startingMonth=12, weekday=WeekDay.SAT).get_target_month_end( | |
| + datetime(2013, 1, 1)), datetime(2013, 12, 31)) | |
| + self.assertEqual(makeFY5253NearestEndMonth(startingMonth=2, weekday=WeekDay.SAT).get_target_month_end( | |
| + datetime(2013, 1, 1)), datetime(2013, 2, 28)) | |
| def test_get_year_end(self): | |
| - self.assertEqual(makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SAT).get_year_end(datetime(2013,1,1)), datetime(2013,8,31)) | |
| - self.assertEqual(makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SUN).get_year_end(datetime(2013,1,1)), datetime(2013,9,1)) | |
| - self.assertEqual(makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.FRI).get_year_end(datetime(2013,1,1)), datetime(2013,8,30)) | |
| + self.assertEqual(makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SAT).get_year_end( | |
| + datetime(2013, 1, 1)), datetime(2013, 8, 31)) | |
| + self.assertEqual(makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SUN).get_year_end( | |
| + datetime(2013, 1, 1)), datetime(2013, 9, 1)) | |
| + self.assertEqual(makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.FRI).get_year_end( | |
| + datetime(2013, 1, 1)), datetime(2013, 8, 30)) | |
| offset_n = FY5253(weekday=WeekDay.TUE, startingMonth=12, | |
| - variation="nearest") | |
| - self.assertEqual(offset_n.get_year_end(datetime(2012,1,1)), datetime(2013,1,1)) | |
| - self.assertEqual(offset_n.get_year_end(datetime(2012,1,10)), datetime(2013,1,1)) | |
| - | |
| - self.assertEqual(offset_n.get_year_end(datetime(2013,1,1)), datetime(2013,12,31)) | |
| - self.assertEqual(offset_n.get_year_end(datetime(2013,1,2)), datetime(2013,12,31)) | |
| - self.assertEqual(offset_n.get_year_end(datetime(2013,1,3)), datetime(2013,12,31)) | |
| - self.assertEqual(offset_n.get_year_end(datetime(2013,1,10)), datetime(2013,12,31)) | |
| + variation="nearest") | |
| + self.assertEqual( | |
| + offset_n.get_year_end(datetime(2012, 1, 1)), datetime(2013, 1, 1)) | |
| + self.assertEqual( | |
| + offset_n.get_year_end(datetime(2012, 1, 10)), datetime(2013, 1, 1)) | |
| + | |
| + self.assertEqual( | |
| + offset_n.get_year_end(datetime(2013, 1, 1)), datetime(2013, 12, 31)) | |
| + self.assertEqual( | |
| + offset_n.get_year_end(datetime(2013, 1, 2)), datetime(2013, 12, 31)) | |
| + self.assertEqual( | |
| + offset_n.get_year_end(datetime(2013, 1, 3)), datetime(2013, 12, 31)) | |
| + self.assertEqual( | |
| + offset_n.get_year_end(datetime(2013, 1, 10)), datetime(2013, 12, 31)) | |
| JNJ = FY5253(n=1, startingMonth=12, weekday=6, variation="nearest") | |
| - self.assertEqual(JNJ.get_year_end(datetime(2006, 1, 1)), datetime(2006, 12, 31)) | |
| + self.assertEqual( | |
| + JNJ.get_year_end(datetime(2006, 1, 1)), datetime(2006, 12, 31)) | |
| def test_onOffset(self): | |
| - offset_lom_aug_sat = makeFY5253NearestEndMonth(1, startingMonth=8, weekday=WeekDay.SAT) | |
| - offset_lom_aug_thu = makeFY5253NearestEndMonth(1, startingMonth=8, weekday=WeekDay.THU) | |
| + offset_lom_aug_sat = makeFY5253NearestEndMonth( | |
| + 1, startingMonth=8, weekday=WeekDay.SAT) | |
| + offset_lom_aug_thu = makeFY5253NearestEndMonth( | |
| + 1, startingMonth=8, weekday=WeekDay.THU) | |
| offset_n = FY5253(weekday=WeekDay.TUE, startingMonth=12, | |
| - variation="nearest") | |
| + variation="nearest") | |
| tests = [ | |
| -# From Wikipedia (see: http://en.wikipedia.org/wiki/4%E2%80%934%E2%80%935_calendar#Saturday_nearest_the_end_of_month) | |
| -# 2006-09-02 2006 September 2 | |
| -# 2007-09-01 2007 September 1 | |
| -# 2008-08-30 2008 August 30 (leap year) | |
| -# 2009-08-29 2009 August 29 | |
| -# 2010-08-28 2010 August 28 | |
| -# 2011-09-03 2011 September 3 | |
| -# 2012-09-01 2012 September 1 (leap year) | |
| -# 2013-08-31 2013 August 31 | |
| -# 2014-08-30 2014 August 30 | |
| -# 2015-08-29 2015 August 29 | |
| -# 2016-09-03 2016 September 3 (leap year) | |
| -# 2017-09-02 2017 September 2 | |
| -# 2018-09-01 2018 September 1 | |
| -# 2019-08-31 2019 August 31 | |
| + # From Wikipedia (see: http://en.wikipedia.org/wiki/4%E2%80%934%E2%80%935_calendar#Saturday_nearest_the_end_of_month) | |
| + # 2006-09-02 2006 September 2 | |
| + # 2007-09-01 2007 September 1 | |
| + # 2008-08-30 2008 August 30 (leap year) | |
| + # 2009-08-29 2009 August 29 | |
| + # 2010-08-28 2010 August 28 | |
| + # 2011-09-03 2011 September 3 | |
| + # 2012-09-01 2012 September 1 (leap year) | |
| + # 2013-08-31 2013 August 31 | |
| + # 2014-08-30 2014 August 30 | |
| + # 2015-08-29 2015 August 29 | |
| + # 2016-09-03 2016 September 3 (leap year) | |
| + # 2017-09-02 2017 September 2 | |
| + # 2018-09-01 2018 September 1 | |
| + # 2019-08-31 2019 August 31 | |
| (offset_lom_aug_sat, datetime(2006, 9, 2), True), | |
| (offset_lom_aug_sat, datetime(2007, 9, 1), True), | |
| (offset_lom_aug_sat, datetime(2008, 8, 30), True), | |
| @@ -1994,7 +2046,8 @@ | |
| (offset_lom_aug_sat, datetime(2011, 8, 26), False), | |
| (offset_lom_aug_sat, datetime(2019, 8, 30), False), | |
| - #From Micron, see: http://google.brand.edgar-online.com/?sym=MU&formtypeID=7 | |
| + # From Micron, see: | |
| + # http://google.brand.edgar-online.com/?sym=MU&formtypeID=7 | |
| (offset_lom_aug_thu, datetime(2012, 8, 30), True), | |
| (offset_lom_aug_thu, datetime(2011, 9, 1), True), | |
| @@ -2017,20 +2070,30 @@ | |
| datetime(2011, 1, 2), datetime(2012, 1, 1), | |
| datetime(2012, 12, 30)] | |
| - DEC_SAT = FY5253(n=-1, startingMonth=12, weekday=5, variation="nearest") | |
| + DEC_SAT = FY5253( | |
| + n=-1, startingMonth=12, weekday=5, variation="nearest") | |
| tests = [ | |
| - (makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SAT), date_seq_nem_8_sat), | |
| - (makeFY5253NearestEndMonth(n=1, startingMonth=8, weekday=WeekDay.SAT), date_seq_nem_8_sat), | |
| - (makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SAT), [datetime(2006, 9, 1)] + date_seq_nem_8_sat), | |
| - (makeFY5253NearestEndMonth(n=1, startingMonth=8, weekday=WeekDay.SAT), [datetime(2006, 9, 3)] + date_seq_nem_8_sat[1:]), | |
| - (makeFY5253NearestEndMonth(n=-1, startingMonth=8, weekday=WeekDay.SAT), list(reversed(date_seq_nem_8_sat))), | |
| - (makeFY5253NearestEndMonth(n=1, startingMonth=12, weekday=WeekDay.SUN), JNJ), | |
| - (makeFY5253NearestEndMonth(n=-1, startingMonth=12, weekday=WeekDay.SUN), list(reversed(JNJ))), | |
| - (makeFY5253NearestEndMonth(n=1, startingMonth=12, weekday=WeekDay.SUN), [datetime(2005,1,2), datetime(2006, 1, 1)]), | |
| - (makeFY5253NearestEndMonth(n=1, startingMonth=12, weekday=WeekDay.SUN), [datetime(2006,1,2), datetime(2006, 12, 31)]), | |
| - (DEC_SAT, [datetime(2013,1,15), datetime(2012,12,29)]) | |
| - ] | |
| + (makeFY5253NearestEndMonth( | |
| + startingMonth=8, weekday=WeekDay.SAT), date_seq_nem_8_sat), | |
| + (makeFY5253NearestEndMonth( | |
| + n=1, startingMonth=8, weekday=WeekDay.SAT), date_seq_nem_8_sat), | |
| + (makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SAT), | |
| + [datetime(2006, 9, 1)] + date_seq_nem_8_sat), | |
| + (makeFY5253NearestEndMonth(n=1, startingMonth=8, weekday=WeekDay.SAT), [ | |
| + datetime(2006, 9, 3)] + date_seq_nem_8_sat[1:]), | |
| + (makeFY5253NearestEndMonth(n=-1, startingMonth=8, | |
| + weekday=WeekDay.SAT), list(reversed(date_seq_nem_8_sat))), | |
| + (makeFY5253NearestEndMonth( | |
| + n=1, startingMonth=12, weekday=WeekDay.SUN), JNJ), | |
| + (makeFY5253NearestEndMonth( | |
| + n=-1, startingMonth=12, weekday=WeekDay.SUN), list(reversed(JNJ))), | |
| + (makeFY5253NearestEndMonth(n=1, startingMonth=12, weekday=WeekDay.SUN), [ | |
| + datetime(2005, 1, 2), datetime(2006, 1, 1)]), | |
| + (makeFY5253NearestEndMonth(n=1, startingMonth=12, weekday=WeekDay.SUN), [ | |
| + datetime(2006, 1, 2), datetime(2006, 12, 31)]), | |
| + (DEC_SAT, [datetime(2013, 1, 15), datetime(2012, 12, 29)]) | |
| + ] | |
| for test in tests: | |
| offset, data = test | |
| current = data[0] | |
| @@ -2038,25 +2101,37 @@ | |
| current = current + offset | |
| self.assertEqual(current, datum) | |
| + | |
| class TestFY5253LastOfMonthQuarter(Base): | |
| def test_isAnchored(self): | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4).isAnchored()) | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(weekday=WeekDay.SAT, startingMonth=3, qtr_with_extra_week=4).isAnchored()) | |
| - self.assertFalse(makeFY5253LastOfMonthQuarter(2, startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4).isAnchored()) | |
| + self.assertTrue(makeFY5253LastOfMonthQuarter( | |
| + startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4).isAnchored()) | |
| + self.assertTrue(makeFY5253LastOfMonthQuarter( | |
| + weekday=WeekDay.SAT, startingMonth=3, qtr_with_extra_week=4).isAnchored()) | |
| + self.assertFalse(makeFY5253LastOfMonthQuarter( | |
| + 2, startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4).isAnchored()) | |
| def test_equality(self): | |
| - self.assertEqual(makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4), makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4)) | |
| - self.assertNotEqual(makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4), makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SUN, qtr_with_extra_week=4)) | |
| - self.assertNotEqual(makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4), makeFY5253LastOfMonthQuarter(startingMonth=2, weekday=WeekDay.SAT, qtr_with_extra_week=4)) | |
| + self.assertEqual(makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4), | |
| + makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4)) | |
| + self.assertNotEqual(makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4), | |
| + makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SUN, qtr_with_extra_week=4)) | |
| + self.assertNotEqual(makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4), | |
| + makeFY5253LastOfMonthQuarter(startingMonth=2, weekday=WeekDay.SAT, qtr_with_extra_week=4)) | |
| def test_offset(self): | |
| - offset = makeFY5253LastOfMonthQuarter(1, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - offset2 = makeFY5253LastOfMonthQuarter(2, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - offset4 = makeFY5253LastOfMonthQuarter(4, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - | |
| - offset_neg1 = makeFY5253LastOfMonthQuarter(-1, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - offset_neg2 = makeFY5253LastOfMonthQuarter(-2, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| + offset = makeFY5253LastOfMonthQuarter( | |
| + 1, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| + offset2 = makeFY5253LastOfMonthQuarter( | |
| + 2, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| + offset4 = makeFY5253LastOfMonthQuarter( | |
| + 4, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| + | |
| + offset_neg1 = makeFY5253LastOfMonthQuarter( | |
| + -1, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| + offset_neg2 = makeFY5253LastOfMonthQuarter( | |
| + -2, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| GMCR = [datetime(2010, 3, 27), | |
| datetime(2010, 6, 26), | |
| @@ -2073,16 +2148,17 @@ | |
| datetime(2013, 3, 30), | |
| datetime(2013, 6, 29)] | |
| - | |
| assertEq(offset, base=GMCR[0], expected=GMCR[1]) | |
| - assertEq(offset, base=GMCR[0] + relativedelta(days=-1), expected=GMCR[0]) | |
| + assertEq( | |
| + offset, base=GMCR[0] + relativedelta(days=-1), expected=GMCR[0]) | |
| assertEq(offset, base=GMCR[1], expected=GMCR[2]) | |
| assertEq(offset2, base=GMCR[0], expected=GMCR[2]) | |
| assertEq(offset4, base=GMCR[0], expected=GMCR[4]) | |
| assertEq(offset_neg1, base=GMCR[-1], expected=GMCR[-2]) | |
| - assertEq(offset_neg1, base=GMCR[-1] + relativedelta(days=+1), expected=GMCR[-1]) | |
| + assertEq( | |
| + offset_neg1, base=GMCR[-1] + relativedelta(days=+1), expected=GMCR[-1]) | |
| assertEq(offset_neg2, base=GMCR[-1], expected=GMCR[-3]) | |
| date = GMCR[0] + relativedelta(days=-1) | |
| @@ -2095,13 +2171,14 @@ | |
| assertEq(offset_neg1, date, expected) | |
| date = date + offset_neg1 | |
| - | |
| def test_onOffset(self): | |
| - lomq_aug_sat_4 = makeFY5253LastOfMonthQuarter(1, startingMonth=8, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - lomq_sep_sat_4 = makeFY5253LastOfMonthQuarter(1, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| + lomq_aug_sat_4 = makeFY5253LastOfMonthQuarter( | |
| + 1, startingMonth=8, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| + lomq_sep_sat_4 = makeFY5253LastOfMonthQuarter( | |
| + 1, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| tests = [ | |
| - #From Wikipedia | |
| + # From Wikipedia | |
| (lomq_aug_sat_4, datetime(2006, 8, 26), True), | |
| (lomq_aug_sat_4, datetime(2007, 8, 25), True), | |
| (lomq_aug_sat_4, datetime(2008, 8, 30), True), | |
| @@ -2125,7 +2202,7 @@ | |
| (lomq_aug_sat_4, datetime(2011, 8, 26), False), | |
| (lomq_aug_sat_4, datetime(2019, 8, 30), False), | |
| - #From GMCR | |
| + # From GMCR | |
| (lomq_sep_sat_4, datetime(2010, 9, 25), True), | |
| (lomq_sep_sat_4, datetime(2011, 9, 24), True), | |
| (lomq_sep_sat_4, datetime(2012, 9, 29), True), | |
| @@ -2140,14 +2217,18 @@ | |
| (lomq_sep_sat_4, datetime(2012, 12, 29), True), | |
| (lomq_sep_sat_4, datetime(2011, 12, 24), True), | |
| - #INTC (extra week in Q1) | |
| - #See: http://www.intc.com/releasedetail.cfm?ReleaseID=542844 | |
| - (makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1), datetime(2011, 4, 2), True), | |
| - | |
| - #see: http://google.brand.edgar-online.com/?sym=INTC&formtypeID=7 | |
| - (makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1), datetime(2012, 12, 29), True), | |
| - (makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1), datetime(2011, 12, 31), True), | |
| - (makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1), datetime(2010, 12, 25), True), | |
| + # INTC (extra week in Q1) | |
| + # See: http://www.intc.com/releasedetail.cfm?ReleaseID=542844 | |
| + (makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1), datetime(2011, 4, 2), True), | |
| + | |
| + # see: http://google.brand.edgar-online.com/?sym=INTC&formtypeID=7 | |
| + (makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1), datetime(2012, 12, 29), True), | |
| + (makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1), datetime(2011, 12, 31), True), | |
| + (makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1), datetime(2010, 12, 25), True), | |
| ] | |
| @@ -2155,42 +2236,57 @@ | |
| assertOnOffset(offset, date, expected) | |
| def test_year_has_extra_week(self): | |
| - #End of long Q1 | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2011, 4, 2))) | |
| - | |
| - #Start of long Q1 | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2010, 12, 26))) | |
| - | |
| - #End of year before year with long Q1 | |
| - self.assertFalse(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2010, 12, 25))) | |
| - | |
| - for year in [x for x in range(1994, 2011+1) if x not in [2011, 2005, 2000, 1994]]: | |
| - self.assertFalse(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(year, 4, 2))) | |
| - | |
| - #Other long years | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2005, 4, 2))) | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2000, 4, 2))) | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(1994, 4, 2))) | |
| + # End of long Q1 | |
| + self.assertTrue(makeFY5253LastOfMonthQuarter( | |
| + 1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2011, 4, 2))) | |
| + | |
| + # Start of long Q1 | |
| + self.assertTrue(makeFY5253LastOfMonthQuarter( | |
| + 1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2010, 12, 26))) | |
| + | |
| + # End of year before year with long Q1 | |
| + self.assertFalse(makeFY5253LastOfMonthQuarter( | |
| + 1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2010, 12, 25))) | |
| + | |
| + for year in [x for x in range(1994, 2011 + 1) if x not in [2011, 2005, 2000, 1994]]: | |
| + self.assertFalse(makeFY5253LastOfMonthQuarter( | |
| + 1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(year, 4, 2))) | |
| + | |
| + # Other long years | |
| + self.assertTrue(makeFY5253LastOfMonthQuarter( | |
| + 1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2005, 4, 2))) | |
| + self.assertTrue(makeFY5253LastOfMonthQuarter( | |
| + 1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2000, 4, 2))) | |
| + self.assertTrue(makeFY5253LastOfMonthQuarter( | |
| + 1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(1994, 4, 2))) | |
| def test_get_weeks(self): | |
| - sat_dec_1 = makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1) | |
| - sat_dec_4 = makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - | |
| - self.assertEqual(sat_dec_1.get_weeks(datetime(2011, 4, 2)), [14, 13, 13, 13]) | |
| - self.assertEqual(sat_dec_4.get_weeks(datetime(2011, 4, 2)), [13, 13, 13, 14]) | |
| - self.assertEqual(sat_dec_1.get_weeks(datetime(2010, 12, 25)), [13, 13, 13, 13]) | |
| + sat_dec_1 = makeFY5253LastOfMonthQuarter( | |
| + 1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1) | |
| + sat_dec_4 = makeFY5253LastOfMonthQuarter( | |
| + 1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| + | |
| + self.assertEqual( | |
| + sat_dec_1.get_weeks(datetime(2011, 4, 2)), [14, 13, 13, 13]) | |
| + self.assertEqual( | |
| + sat_dec_4.get_weeks(datetime(2011, 4, 2)), [13, 13, 13, 14]) | |
| + self.assertEqual( | |
| + sat_dec_1.get_weeks(datetime(2010, 12, 25)), [13, 13, 13, 13]) | |
| + | |
| class TestFY5253NearestEndMonthQuarter(Base): | |
| def test_onOffset(self): | |
| - offset_nem_sat_aug_4 = makeFY5253NearestEndMonthQuarter(1, startingMonth=8, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - offset_nem_thu_aug_4 = makeFY5253NearestEndMonthQuarter(1, startingMonth=8, weekday=WeekDay.THU, qtr_with_extra_week=4) | |
| + offset_nem_sat_aug_4 = makeFY5253NearestEndMonthQuarter( | |
| + 1, startingMonth=8, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| + offset_nem_thu_aug_4 = makeFY5253NearestEndMonthQuarter( | |
| + 1, startingMonth=8, weekday=WeekDay.THU, qtr_with_extra_week=4) | |
| offset_n = FY5253(weekday=WeekDay.TUE, startingMonth=12, | |
| - variation="nearest", qtr_with_extra_week=4) | |
| + variation="nearest", qtr_with_extra_week=4) | |
| tests = [ | |
| - #From Wikipedia | |
| + # From Wikipedia | |
| (offset_nem_sat_aug_4, datetime(2006, 9, 2), True), | |
| (offset_nem_sat_aug_4, datetime(2007, 9, 1), True), | |
| (offset_nem_sat_aug_4, datetime(2008, 8, 30), True), | |
| @@ -2218,11 +2314,12 @@ | |
| (offset_nem_sat_aug_4, datetime(2011, 8, 26), False), | |
| (offset_nem_sat_aug_4, datetime(2019, 8, 30), False), | |
| - #From Micron, see: http://google.brand.edgar-online.com/?sym=MU&formtypeID=7 | |
| + # From Micron, see: | |
| + # http://google.brand.edgar-online.com/?sym=MU&formtypeID=7 | |
| (offset_nem_thu_aug_4, datetime(2012, 8, 30), True), | |
| (offset_nem_thu_aug_4, datetime(2011, 9, 1), True), | |
| - #See: http://google.brand.edgar-online.com/?sym=MU&formtypeID=13 | |
| + # See: http://google.brand.edgar-online.com/?sym=MU&formtypeID=13 | |
| (offset_nem_thu_aug_4, datetime(2013, 5, 30), True), | |
| (offset_nem_thu_aug_4, datetime(2013, 2, 28), True), | |
| (offset_nem_thu_aug_4, datetime(2012, 11, 29), True), | |
| @@ -2239,9 +2336,11 @@ | |
| assertOnOffset(offset, date, expected) | |
| def test_offset(self): | |
| - offset = makeFY5253NearestEndMonthQuarter(1, startingMonth=8, weekday=WeekDay.THU, qtr_with_extra_week=4) | |
| - | |
| - MU = [datetime(2012, 5, 31), datetime(2012, 8, 30), datetime(2012, 11, 29), datetime(2013, 2, 28), datetime(2013, 5, 30)] | |
| + offset = makeFY5253NearestEndMonthQuarter( | |
| + 1, startingMonth=8, weekday=WeekDay.THU, qtr_with_extra_week=4) | |
| + | |
| + MU = [datetime(2012, 5, 31), datetime(2012, 8, 30), datetime( | |
| + 2012, 11, 29), datetime(2013, 2, 28), datetime(2013, 5, 30)] | |
| date = MU[0] + relativedelta(days=-1) | |
| for expected in MU: | |
| @@ -2252,16 +2351,20 @@ | |
| assertEq(offset, datetime(2012, 5, 30), datetime(2012, 5, 31)) | |
| offset2 = FY5253Quarter(weekday=5, startingMonth=12, | |
| - variation="last", qtr_with_extra_week=4) | |
| - | |
| - assertEq(offset2, datetime(2013,1,15), datetime(2013, 3, 30)) | |
| + variation="last", qtr_with_extra_week=4) | |
| + | |
| + assertEq(offset2, datetime(2013, 1, 15), datetime(2013, 3, 30)) | |
| + | |
| class TestQuarterBegin(Base): | |
| def test_repr(self): | |
| - self.assertEqual(repr(QuarterBegin()), "<QuarterBegin: startingMonth=3>") | |
| - self.assertEqual(repr(QuarterBegin(startingMonth=3)), "<QuarterBegin: startingMonth=3>") | |
| - self.assertEqual(repr(QuarterBegin(startingMonth=1)),"<QuarterBegin: startingMonth=1>") | |
| + self.assertEqual( | |
| + repr(QuarterBegin()), "<QuarterBegin: startingMonth=3>") | |
| + self.assertEqual( | |
| + repr(QuarterBegin(startingMonth=3)), "<QuarterBegin: startingMonth=3>") | |
| + self.assertEqual( | |
| + repr(QuarterBegin(startingMonth=1)), "<QuarterBegin: startingMonth=1>") | |
| def test_isAnchored(self): | |
| self.assertTrue(QuarterBegin(startingMonth=1).isAnchored()) | |
| @@ -2336,8 +2439,10 @@ | |
| def test_repr(self): | |
| self.assertEqual(repr(QuarterEnd()), "<QuarterEnd: startingMonth=3>") | |
| - self.assertEqual(repr(QuarterEnd(startingMonth=3)), "<QuarterEnd: startingMonth=3>") | |
| - self.assertEqual(repr(QuarterEnd(startingMonth=1)), "<QuarterEnd: startingMonth=1>") | |
| + self.assertEqual( | |
| + repr(QuarterEnd(startingMonth=3)), "<QuarterEnd: startingMonth=3>") | |
| + self.assertEqual( | |
| + repr(QuarterEnd(startingMonth=1)), "<QuarterEnd: startingMonth=1>") | |
| def test_isAnchored(self): | |
| self.assertTrue(QuarterEnd(startingMonth=1).isAnchored()) | |
| @@ -2621,12 +2726,12 @@ | |
| tests.append((BYearEnd(month=6), | |
| {datetime(2008, 1, 1): datetime(2008, 6, 30), | |
| - datetime(2007, 6, 30): datetime(2008, 6, 30)}, | |
| + datetime(2007, 6, 30): datetime(2008, 6, 30)}, | |
| )) | |
| tests.append((BYearEnd(n=-1, month=6), | |
| {datetime(2008, 1, 1): datetime(2007, 6, 29), | |
| - datetime(2007, 6, 30): datetime(2007, 6, 29)}, | |
| + datetime(2007, 6, 30): datetime(2007, 6, 29)}, | |
| )) | |
| for offset, cases in tests: | |
| @@ -2812,7 +2917,8 @@ | |
| except AssertionError: | |
| raise AssertionError("\nExpected: %s\nActual: %s\nFor Offset: %s)" | |
| "\nAt Date: %s" % | |
| - (expected, actual, offset, base)) | |
| + (expected, actual, offset, base)) | |
| + | |
| def test_Easter(): | |
| assertEq(Easter(), datetime(2010, 1, 1), datetime(2010, 4, 4)) | |
| @@ -2862,8 +2968,10 @@ | |
| def test_Minute(self): | |
| assertEq(Minute(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 1)) | |
| assertEq(Minute(-1), datetime(2010, 1, 1, 0, 1), datetime(2010, 1, 1)) | |
| - assertEq(2 * Minute(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 2)) | |
| - assertEq(-1 * Minute(), datetime(2010, 1, 1, 0, 1), datetime(2010, 1, 1)) | |
| + assertEq( | |
| + 2 * Minute(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 2)) | |
| + assertEq(-1 * Minute(), datetime(2010, 1, 1, 0, 1), | |
| + datetime(2010, 1, 1)) | |
| self.assertEqual(Minute(3) + Minute(2), Minute(5)) | |
| self.assertEqual(Minute(3) - Minute(2), Minute()) | |
| @@ -2871,8 +2979,10 @@ | |
| def test_Second(self): | |
| assertEq(Second(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 1)) | |
| - assertEq(Second(-1), datetime(2010, 1, 1, 0, 0, 1), datetime(2010, 1, 1)) | |
| - assertEq(2 * Second(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 2)) | |
| + assertEq( | |
| + Second(-1), datetime(2010, 1, 1, 0, 0, 1), datetime(2010, 1, 1)) | |
| + assertEq(2 * Second(), datetime(2010, 1, 1), | |
| + datetime(2010, 1, 1, 0, 0, 2)) | |
| assertEq( | |
| -1 * Second(), datetime(2010, 1, 1, 0, 0, 1), datetime(2010, 1, 1)) | |
| @@ -2880,24 +2990,35 @@ | |
| self.assertEqual(Second(3) - Second(2), Second()) | |
| def test_Millisecond(self): | |
| - assertEq(Milli(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 1000)) | |
| - assertEq(Milli(-1), datetime(2010, 1, 1, 0, 0, 0, 1000), datetime(2010, 1, 1)) | |
| - assertEq(Milli(2), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 2000)) | |
| - assertEq(2 * Milli(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 2000)) | |
| - assertEq(-1 * Milli(), datetime(2010, 1, 1, 0, 0, 0, 1000), datetime(2010, 1, 1)) | |
| + assertEq(Milli(), datetime(2010, 1, 1), | |
| + datetime(2010, 1, 1, 0, 0, 0, 1000)) | |
| + assertEq( | |
| + Milli(-1), datetime(2010, 1, 1, 0, 0, 0, 1000), datetime(2010, 1, 1)) | |
| + assertEq(Milli(2), datetime(2010, 1, 1), | |
| + datetime(2010, 1, 1, 0, 0, 0, 2000)) | |
| + assertEq(2 * Milli(), datetime(2010, 1, 1), | |
| + datetime(2010, 1, 1, 0, 0, 0, 2000)) | |
| + assertEq(-1 * Milli(), datetime(2010, 1, 1, 0, 0, 0, 1000), | |
| + datetime(2010, 1, 1)) | |
| self.assertEqual(Milli(3) + Milli(2), Milli(5)) | |
| self.assertEqual(Milli(3) - Milli(2), Milli()) | |
| def test_MillisecondTimestampArithmetic(self): | |
| - assertEq(Milli(), Timestamp('2010-01-01'), Timestamp('2010-01-01 00:00:00.001')) | |
| - assertEq(Milli(-1), Timestamp('2010-01-01 00:00:00.001'), Timestamp('2010-01-01')) | |
| + assertEq(Milli(), Timestamp('2010-01-01'), | |
| + Timestamp('2010-01-01 00:00:00.001')) | |
| + assertEq( | |
| + Milli(-1), Timestamp('2010-01-01 00:00:00.001'), Timestamp('2010-01-01')) | |
| def test_Microsecond(self): | |
| - assertEq(Micro(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 1)) | |
| - assertEq(Micro(-1), datetime(2010, 1, 1, 0, 0, 0, 1), datetime(2010, 1, 1)) | |
| - assertEq(2 * Micro(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 2)) | |
| - assertEq(-1 * Micro(), datetime(2010, 1, 1, 0, 0, 0, 1), datetime(2010, 1, 1)) | |
| + assertEq( | |
| + Micro(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 1)) | |
| + assertEq( | |
| + Micro(-1), datetime(2010, 1, 1, 0, 0, 0, 1), datetime(2010, 1, 1)) | |
| + assertEq(2 * Micro(), datetime(2010, 1, 1), | |
| + datetime(2010, 1, 1, 0, 0, 0, 2)) | |
| + assertEq(-1 * Micro(), datetime(2010, 1, 1, 0, 0, 0, 1), | |
| + datetime(2010, 1, 1)) | |
| self.assertEqual(Micro(3) + Micro(2), Micro(5)) | |
| self.assertEqual(Micro(3) - Micro(2), Micro()) | |
| @@ -2973,8 +3094,10 @@ | |
| class TestOffsetNames(tm.TestCase): | |
| + | |
| def test_get_offset_name(self): | |
| - assertRaisesRegexp(ValueError, 'Bad rule.*BusinessDays', get_offset_name, BDay(2)) | |
| + assertRaisesRegexp( | |
| + ValueError, 'Bad rule.*BusinessDays', get_offset_name, BDay(2)) | |
| assert get_offset_name(BDay()) == 'B' | |
| assert get_offset_name(BMonthEnd()) == 'BM' | |
| @@ -2984,25 +3107,34 @@ | |
| assert get_offset_name(Week(weekday=3)) == 'W-THU' | |
| assert get_offset_name(Week(weekday=4)) == 'W-FRI' | |
| - self.assertEqual(get_offset_name(LastWeekOfMonth(weekday=WeekDay.SUN)), "LWOM-SUN") | |
| - self.assertEqual(get_offset_name(makeFY5253LastOfMonthQuarter(weekday=1, startingMonth=3, qtr_with_extra_week=4)),"REQ-L-MAR-TUE-4") | |
| - self.assertEqual(get_offset_name(makeFY5253NearestEndMonthQuarter(weekday=1, startingMonth=3, qtr_with_extra_week=3)), "REQ-N-MAR-TUE-3") | |
| + self.assertEqual( | |
| + get_offset_name(LastWeekOfMonth(weekday=WeekDay.SUN)), "LWOM-SUN") | |
| + self.assertEqual(get_offset_name(makeFY5253LastOfMonthQuarter( | |
| + weekday=1, startingMonth=3, qtr_with_extra_week=4)), "REQ-L-MAR-TUE-4") | |
| + self.assertEqual(get_offset_name(makeFY5253NearestEndMonthQuarter( | |
| + weekday=1, startingMonth=3, qtr_with_extra_week=3)), "REQ-N-MAR-TUE-3") | |
| + | |
| def test_get_offset(): | |
| assertRaisesRegexp(ValueError, "rule.*GIBBERISH", get_offset, 'gibberish') | |
| assertRaisesRegexp(ValueError, "rule.*QS-JAN-B", get_offset, 'QS-JAN-B') | |
| pairs = [ | |
| - ('B', BDay()), ('b', BDay()), ('bm', BMonthEnd()), | |
| - ('Bm', BMonthEnd()), ('W-MON', Week(weekday=0)), | |
| - ('W-TUE', Week(weekday=1)), ('W-WED', Week(weekday=2)), | |
| - ('W-THU', Week(weekday=3)), ('W-FRI', Week(weekday=4)), | |
| - ('w@Sat', Week(weekday=5)), | |
| - ("RE-N-DEC-MON", makeFY5253NearestEndMonth(weekday=0, startingMonth=12)), | |
| - ("RE-L-DEC-TUE", makeFY5253LastOfMonth(weekday=1, startingMonth=12)), | |
| - ("REQ-L-MAR-TUE-4", makeFY5253LastOfMonthQuarter(weekday=1, startingMonth=3, qtr_with_extra_week=4)), | |
| - ("REQ-L-DEC-MON-3", makeFY5253LastOfMonthQuarter(weekday=0, startingMonth=12, qtr_with_extra_week=3)), | |
| - ("REQ-N-DEC-MON-3", makeFY5253NearestEndMonthQuarter(weekday=0, startingMonth=12, qtr_with_extra_week=3)), | |
| - ] | |
| + ('B', BDay()), ('b', BDay()), ('bm', BMonthEnd()), | |
| + ('Bm', BMonthEnd()), ('W-MON', Week(weekday=0)), | |
| + ('W-TUE', Week(weekday=1)), ('W-WED', Week(weekday=2)), | |
| + ('W-THU', Week(weekday=3)), ('W-FRI', Week(weekday=4)), | |
| + ('w@Sat', Week(weekday=5)), | |
| + ("RE-N-DEC-MON", | |
| + makeFY5253NearestEndMonth(weekday=0, startingMonth=12)), | |
| + ("RE-L-DEC-TUE", | |
| + makeFY5253LastOfMonth(weekday=1, startingMonth=12)), | |
| + ("REQ-L-MAR-TUE-4", makeFY5253LastOfMonthQuarter(weekday=1, | |
| + startingMonth=3, qtr_with_extra_week=4)), | |
| + ("REQ-L-DEC-MON-3", makeFY5253LastOfMonthQuarter(weekday=0, | |
| + startingMonth=12, qtr_with_extra_week=3)), | |
| + ("REQ-N-DEC-MON-3", makeFY5253NearestEndMonthQuarter(weekday=0, | |
| + startingMonth=12, qtr_with_extra_week=3)), | |
| + ] | |
| for name, expected in pairs: | |
| offset = get_offset(name) | |
| @@ -3135,6 +3267,7 @@ | |
| ret | get_all_subclasses(this_subclass) | |
| return ret | |
| + | |
| class TestCaching(tm.TestCase): | |
| # as of GH 6479 (in 0.14.0), offset caching is turned off | |
| @@ -3152,7 +3285,8 @@ | |
| self.assertTrue(inst1._should_cache(), cls) | |
| - DatetimeIndex(start=datetime(2013,1,31), end=datetime(2013,3,31), freq=inst1, normalize=True) | |
| + DatetimeIndex(start=datetime(2013, 1, 31), end=datetime( | |
| + 2013, 3, 31), freq=inst1, normalize=True) | |
| self.assertTrue(cls() in _daterange_cache, cls) | |
| def test_should_cache_month_end(self): | |
| @@ -3167,37 +3301,42 @@ | |
| def test_all_cacheableoffsets(self): | |
| for subclass in get_all_subclasses(CacheableOffset): | |
| if subclass.__name__[0] == "_" \ | |
| - or subclass in TestCaching.no_simple_ctr: | |
| + or subclass in TestCaching.no_simple_ctr: | |
| continue | |
| self.run_X_index_creation(subclass) | |
| def test_month_end_index_creation(self): | |
| - DatetimeIndex(start=datetime(2013,1,31), end=datetime(2013,3,31), freq=MonthEnd(), normalize=True) | |
| + DatetimeIndex(start=datetime(2013, 1, 31), end=datetime( | |
| + 2013, 3, 31), freq=MonthEnd(), normalize=True) | |
| self.assertFalse(MonthEnd() in _daterange_cache) | |
| def test_bmonth_end_index_creation(self): | |
| - DatetimeIndex(start=datetime(2013,1,31), end=datetime(2013,3,29), freq=BusinessMonthEnd(), normalize=True) | |
| + DatetimeIndex(start=datetime(2013, 1, 31), end=datetime( | |
| + 2013, 3, 29), freq=BusinessMonthEnd(), normalize=True) | |
| self.assertFalse(BusinessMonthEnd() in _daterange_cache) | |
| def test_week_of_month_index_creation(self): | |
| inst1 = WeekOfMonth(weekday=1, week=2) | |
| - DatetimeIndex(start=datetime(2013,1,31), end=datetime(2013,3,29), freq=inst1, normalize=True) | |
| + DatetimeIndex(start=datetime(2013, 1, 31), end=datetime( | |
| + 2013, 3, 29), freq=inst1, normalize=True) | |
| inst2 = WeekOfMonth(weekday=1, week=2) | |
| self.assertFalse(inst2 in _daterange_cache) | |
| + | |
| class TestReprNames(tm.TestCase): | |
| + | |
| def test_str_for_named_is_name(self): | |
| # look at all the amazing combinations! | |
| month_prefixes = ['A', 'AS', 'BA', 'BAS', 'Q', 'BQ', 'BQS', 'QS'] | |
| names = [prefix + '-' + month for prefix in month_prefixes | |
| - for month in ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', | |
| - 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC']] | |
| + for month in ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', | |
| + 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC']] | |
| days = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'] | |
| names += ['W-' + day for day in days] | |
| names += ['WOM-' + week + day for week in ('1', '2', '3', '4') | |
| - for day in days] | |
| - #singletons | |
| - names += ['S', 'T', 'U', 'BM', 'BMS', 'BQ', 'QS'] # No 'Q' | |
| + for day in days] | |
| + # singletons | |
| + names += ['S', 'T', 'U', 'BM', 'BMS', 'BQ', 'QS'] # No 'Q' | |
| _offset_map.clear() | |
| for name in names: | |
| offset = get_offset(name) | |
| @@ -3212,6 +3351,7 @@ | |
| class TestDST(tm.TestCase): | |
| + | |
| """ | |
| test DateOffset additions over Daylight Savings Time | |
| """ | |
| @@ -3224,20 +3364,20 @@ | |
| 'US/Eastern': dict( | |
| utc_offset_daylight=-4, | |
| utc_offset_standard=-5, | |
| - ), | |
| + ), | |
| 'dateutil/US/Pacific': dict( | |
| utc_offset_daylight=-7, | |
| utc_offset_standard=-8, | |
| - ) | |
| - } | |
| + ) | |
| + } | |
| valid_date_offsets_singular = [ | |
| 'weekday', 'day', 'hour', 'minute', 'second', 'microsecond' | |
| - ] | |
| + ] | |
| valid_date_offsets_plural = [ | |
| 'weeks', 'days', | |
| 'hours', 'minutes', 'seconds', | |
| 'milliseconds', 'microseconds' | |
| - ] | |
| + ] | |
| def _test_all_offsets(self, n, **kwds): | |
| valid_offsets = self.valid_date_offsets_plural if n > 1 \ | |
| @@ -3257,32 +3397,35 @@ | |
| self.assertTrue( | |
| t.date() == | |
| timedelta(days=7 * offset.kwds['weeks']) + tstart.date() | |
| - ) | |
| + ) | |
| # expect the same day of week, hour of day, minute, second, ... | |
| self.assertTrue( | |
| t.dayofweek == tstart.dayofweek and | |
| t.hour == tstart.hour and | |
| t.minute == tstart.minute and | |
| t.second == tstart.second | |
| - ) | |
| + ) | |
| elif offset_name == 'days': | |
| # dates should match | |
| - self.assertTrue(timedelta(offset.kwds['days']) + tstart.date() == t.date()) | |
| + self.assertTrue( | |
| + timedelta(offset.kwds['days']) + tstart.date() == t.date()) | |
| # expect the same hour of day, minute, second, ... | |
| self.assertTrue( | |
| t.hour == tstart.hour and | |
| t.minute == tstart.minute and | |
| t.second == tstart.second | |
| - ) | |
| + ) | |
| elif offset_name in self.valid_date_offsets_singular: | |
| # expect the signular offset value to match between tstart and t | |
| - datepart_offset = getattr(t, offset_name if offset_name != 'weekday' else 'dayofweek') | |
| + datepart_offset = getattr( | |
| + t, offset_name if offset_name != 'weekday' else 'dayofweek') | |
| self.assertTrue(datepart_offset == offset.kwds[offset_name]) | |
| else: | |
| # the offset should be the same as if it was done in UTC | |
| self.assertTrue( | |
| - t == (tstart.tz_convert('UTC') + offset).tz_convert('US/Pacific') | |
| - ) | |
| + t == ( | |
| + tstart.tz_convert('UTC') + offset).tz_convert('US/Pacific') | |
| + ) | |
| def _make_timestamp(self, string, hrs_offset, tz): | |
| offset_string = '{hrs:02d}00'.format(hrs=hrs_offset) if hrs_offset >= 0 else \ | |
| @@ -3298,7 +3441,7 @@ | |
| n=3, | |
| tstart=self._make_timestamp(self.ts_pre_fallback, hrs_pre, tz), | |
| expected_utc_offset=hrs_post | |
| - ) | |
| + ) | |
| def test_springforward_plural(self): | |
| """test moving from standard to daylight savings""" | |
| @@ -3307,9 +3450,10 @@ | |
| hrs_post = utc_offsets['utc_offset_daylight'] | |
| self._test_all_offsets( | |
| n=3, | |
| - tstart=self._make_timestamp(self.ts_pre_springfwd, hrs_pre, tz), | |
| + tstart=self._make_timestamp( | |
| + self.ts_pre_springfwd, hrs_pre, tz), | |
| expected_utc_offset=hrs_post | |
| - ) | |
| + ) | |
| def test_fallback_singular(self): | |
| # in the case of signular offsets, we dont neccesarily know which utc offset | |
| @@ -3321,16 +3465,17 @@ | |
| n=1, | |
| tstart=self._make_timestamp(self.ts_pre_fallback, hrs_pre, tz), | |
| expected_utc_offset=None | |
| - ) | |
| + ) | |
| def test_springforward_singular(self): | |
| for tz, utc_offsets in self.timezone_utc_offsets.items(): | |
| hrs_pre = utc_offsets['utc_offset_standard'] | |
| self._test_all_offsets( | |
| n=1, | |
| - tstart=self._make_timestamp(self.ts_pre_springfwd, hrs_pre, tz), | |
| + tstart=self._make_timestamp( | |
| + self.ts_pre_springfwd, hrs_pre, tz), | |
| expected_utc_offset=None | |
| - ) | |
| + ) | |
| def test_all_offset_classes(self): | |
| tests = {MonthBegin: ['11/2/2012', '12/1/2012'], |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- pandas/tseries/tests/test_offsets.py (original) | |
| +++ pandas/tseries/tests/test_offsets.py (reformatted) | |
| @@ -6,15 +6,13 @@ | |
| import nose | |
| from nose.tools import assert_raises | |
| - | |
| import numpy as np | |
| from pandas.core.datetools import ( | |
| - bday, BDay, CDay, BQuarterEnd, BMonthEnd, | |
| - CBMonthEnd, CBMonthBegin, | |
| + bday, BDay, CDay, BQuarterEnd, BMonthEnd, CBMonthEnd, CBMonthBegin, | |
| BYearEnd, MonthEnd, MonthBegin, BYearBegin, CustomBusinessDay, | |
| - QuarterBegin, BQuarterBegin, BMonthBegin, DateOffset, Week, | |
| - YearBegin, YearEnd, Hour, Minute, Second, Day, Micro, Milli, Nano, Easter, | |
| + QuarterBegin, BQuarterBegin, BMonthBegin, DateOffset, Week, YearBegin, | |
| + YearEnd, Hour, Minute, Second, Day, Micro, Milli, Nano, Easter, | |
| WeekOfMonth, format, ole2datetime, QuarterEnd, to_datetime, normalize_date, | |
| get_offset, get_offset_name, get_standard_freq) | |
| @@ -42,7 +40,6 @@ | |
| for m in range(1, 13): | |
| assert tslib.monthrange(y, m) == calendar.monthrange(y, m) | |
| - | |
| #### | |
| ## Misc function tests | |
| #### | |
| @@ -83,15 +80,16 @@ | |
| tm.assert_isinstance(valu, np.datetime64) | |
| # assert valu == np.datetime64(datetime(2007,10,1)) | |
| -# def test_datetime64_box(): | |
| -# valu = np.datetime64(datetime(2007,10,1)) | |
| -# valb = _dt_box(valu) | |
| -# assert type(valb) == datetime | |
| -# assert valb == datetime(2007,10,1) | |
| - | |
| -##### | |
| -### DateOffset Tests | |
| -##### | |
| + # def test_datetime64_box(): | |
| + # valu = np.datetime64(datetime(2007,10,1)) | |
| + # valb = _dt_box(valu) | |
| + # assert type(valb) == datetime | |
| + # assert valb == datetime(2007,10,1) | |
| + | |
| + ##### | |
| + ### DateOffset Tests | |
| + ##### | |
| + | |
| class Base(tm.TestCase): | |
| _offset = None | |
| @@ -108,8 +106,11 @@ | |
| def _get_offset(self, klass, value=1, normalize=False): | |
| # create instance from offset class | |
| if klass is FY5253 or klass is FY5253Quarter: | |
| - klass = klass(n=value, startingMonth=1, weekday=1, | |
| - qtr_with_extra_week=1, variation='last', | |
| + klass = klass(n=value, | |
| + startingMonth=1, | |
| + weekday=1, | |
| + qtr_with_extra_week=1, | |
| + variation='last', | |
| normalize=normalize) | |
| elif klass is LastWeekOfMonth: | |
| klass = klass(n=value, weekday=5, normalize=normalize) | |
| @@ -151,46 +152,49 @@ | |
| except (tslib.OutOfBoundsDatetime): | |
| raise | |
| except (ValueError, KeyError) as e: | |
| - raise nose.SkipTest("cannot create out_of_range offset: {0} {1}".format(str(self).split('.')[-1],e)) | |
| + raise nose.SkipTest( | |
| + "cannot create out_of_range offset: {0} {1}".format( | |
| + str(self).split('.')[-1], e)) | |
| class TestCommon(Base): | |
| - | |
| def setUp(self): | |
| # exected value created by Base._get_offset | |
| # are applied to 2011/01/01 09:00 (Saturday) | |
| # used for .apply and .rollforward | |
| - self.expecteds = {'Day': Timestamp('2011-01-02 09:00:00'), | |
| - 'DateOffset': Timestamp('2011-01-02 09:00:00'), | |
| - 'BusinessDay': Timestamp('2011-01-03 09:00:00'), | |
| - 'CustomBusinessDay': Timestamp('2011-01-03 09:00:00'), | |
| - 'CustomBusinessMonthEnd': Timestamp('2011-01-31 09:00:00'), | |
| - 'CustomBusinessMonthBegin': Timestamp('2011-01-03 09:00:00'), | |
| - 'MonthBegin': Timestamp('2011-02-01 09:00:00'), | |
| - 'BusinessMonthBegin': Timestamp('2011-01-03 09:00:00'), | |
| - 'MonthEnd': Timestamp('2011-01-31 09:00:00'), | |
| - 'BusinessMonthEnd': Timestamp('2011-01-31 09:00:00'), | |
| - 'YearBegin': Timestamp('2012-01-01 09:00:00'), | |
| - 'BYearBegin': Timestamp('2011-01-03 09:00:00'), | |
| - 'YearEnd': Timestamp('2011-12-31 09:00:00'), | |
| - 'BYearEnd': Timestamp('2011-12-30 09:00:00'), | |
| - 'QuarterBegin': Timestamp('2011-03-01 09:00:00'), | |
| - 'BQuarterBegin': Timestamp('2011-03-01 09:00:00'), | |
| - 'QuarterEnd': Timestamp('2011-03-31 09:00:00'), | |
| - 'BQuarterEnd': Timestamp('2011-03-31 09:00:00'), | |
| - 'WeekOfMonth': Timestamp('2011-01-08 09:00:00'), | |
| - 'LastWeekOfMonth': Timestamp('2011-01-29 09:00:00'), | |
| - 'FY5253Quarter': Timestamp('2011-01-25 09:00:00'), | |
| - 'FY5253': Timestamp('2011-01-25 09:00:00'), | |
| - 'Week': Timestamp('2011-01-08 09:00:00'), | |
| - 'Easter': Timestamp('2011-04-24 09:00:00'), | |
| - 'Hour': Timestamp('2011-01-01 10:00:00'), | |
| - 'Minute': Timestamp('2011-01-01 09:01:00'), | |
| - 'Second': Timestamp('2011-01-01 09:00:01'), | |
| - 'Milli': Timestamp('2011-01-01 09:00:00.001000'), | |
| - 'Micro': Timestamp('2011-01-01 09:00:00.000001'), | |
| - 'Nano': Timestamp(np.datetime64('2011-01-01T09:00:00.000000001Z'))} | |
| + self.expecteds = { | |
| + 'Day': Timestamp('2011-01-02 09:00:00'), | |
| + 'DateOffset': Timestamp('2011-01-02 09:00:00'), | |
| + 'BusinessDay': Timestamp('2011-01-03 09:00:00'), | |
| + 'CustomBusinessDay': Timestamp('2011-01-03 09:00:00'), | |
| + 'CustomBusinessMonthEnd': Timestamp('2011-01-31 09:00:00'), | |
| + 'CustomBusinessMonthBegin': Timestamp('2011-01-03 09:00:00'), | |
| + 'MonthBegin': Timestamp('2011-02-01 09:00:00'), | |
| + 'BusinessMonthBegin': Timestamp('2011-01-03 09:00:00'), | |
| + 'MonthEnd': Timestamp('2011-01-31 09:00:00'), | |
| + 'BusinessMonthEnd': Timestamp('2011-01-31 09:00:00'), | |
| + 'YearBegin': Timestamp('2012-01-01 09:00:00'), | |
| + 'BYearBegin': Timestamp('2011-01-03 09:00:00'), | |
| + 'YearEnd': Timestamp('2011-12-31 09:00:00'), | |
| + 'BYearEnd': Timestamp('2011-12-30 09:00:00'), | |
| + 'QuarterBegin': Timestamp('2011-03-01 09:00:00'), | |
| + 'BQuarterBegin': Timestamp('2011-03-01 09:00:00'), | |
| + 'QuarterEnd': Timestamp('2011-03-31 09:00:00'), | |
| + 'BQuarterEnd': Timestamp('2011-03-31 09:00:00'), | |
| + 'WeekOfMonth': Timestamp('2011-01-08 09:00:00'), | |
| + 'LastWeekOfMonth': Timestamp('2011-01-29 09:00:00'), | |
| + 'FY5253Quarter': Timestamp('2011-01-25 09:00:00'), | |
| + 'FY5253': Timestamp('2011-01-25 09:00:00'), | |
| + 'Week': Timestamp('2011-01-08 09:00:00'), | |
| + 'Easter': Timestamp('2011-04-24 09:00:00'), | |
| + 'Hour': Timestamp('2011-01-01 10:00:00'), | |
| + 'Minute': Timestamp('2011-01-01 09:01:00'), | |
| + 'Second': Timestamp('2011-01-01 09:00:01'), | |
| + 'Milli': Timestamp('2011-01-01 09:00:00.001000'), | |
| + 'Micro': Timestamp('2011-01-01 09:00:00.000001'), | |
| + 'Nano': Timestamp(np.datetime64('2011-01-01T09:00:00.000000001Z')) | |
| + } | |
| def test_return_type(self): | |
| for offset in self.offset_types: | |
| @@ -273,8 +277,9 @@ | |
| expecteds = self.expecteds.copy() | |
| # result will not be changed if the target is on the offset | |
| - no_changes = ['Day', 'MonthBegin', 'YearBegin', 'Week', 'Hour', 'Minute', | |
| - 'Second', 'Milli', 'Micro', 'Nano', 'DateOffset'] | |
| + no_changes = ['Day', 'MonthBegin', 'YearBegin', 'Week', 'Hour', | |
| + 'Minute', 'Second', 'Milli', 'Micro', 'Nano', | |
| + 'DateOffset'] | |
| for n in no_changes: | |
| expecteds[n] = Timestamp('2011/01/01 09:00') | |
| @@ -283,16 +288,18 @@ | |
| for k in norm_expected: | |
| norm_expected[k] = Timestamp(norm_expected[k].date()) | |
| - normalized = {'Day': Timestamp('2011-01-02 00:00:00'), | |
| - 'DateOffset': Timestamp('2011-01-02 00:00:00'), | |
| - 'MonthBegin': Timestamp('2011-02-01 00:00:00'), | |
| - 'YearBegin': Timestamp('2012-01-01 00:00:00'), | |
| - 'Week': Timestamp('2011-01-08 00:00:00'), | |
| - 'Hour': Timestamp('2011-01-01 00:00:00'), | |
| - 'Minute': Timestamp('2011-01-01 00:00:00'), | |
| - 'Second': Timestamp('2011-01-01 00:00:00'), | |
| - 'Milli': Timestamp('2011-01-01 00:00:00'), | |
| - 'Micro': Timestamp('2011-01-01 00:00:00')} | |
| + normalized = { | |
| + 'Day': Timestamp('2011-01-02 00:00:00'), | |
| + 'DateOffset': Timestamp('2011-01-02 00:00:00'), | |
| + 'MonthBegin': Timestamp('2011-02-01 00:00:00'), | |
| + 'YearBegin': Timestamp('2012-01-01 00:00:00'), | |
| + 'Week': Timestamp('2011-01-08 00:00:00'), | |
| + 'Hour': Timestamp('2011-01-01 00:00:00'), | |
| + 'Minute': Timestamp('2011-01-01 00:00:00'), | |
| + 'Second': Timestamp('2011-01-01 00:00:00'), | |
| + 'Milli': Timestamp('2011-01-01 00:00:00'), | |
| + 'Micro': Timestamp('2011-01-01 00:00:00') | |
| + } | |
| norm_expected.update(normalized) | |
| sdt = datetime(2011, 1, 1, 9, 0) | |
| @@ -301,31 +308,35 @@ | |
| for offset in self.offset_types: | |
| for dt in [sdt, ndt]: | |
| expected = expecteds[offset.__name__] | |
| - self._check_offsetfunc_works(offset, 'rollforward', dt, expected) | |
| + self._check_offsetfunc_works(offset, 'rollforward', dt, | |
| + expected) | |
| expected = norm_expected[offset.__name__] | |
| - self._check_offsetfunc_works(offset, 'rollforward', dt, expected, | |
| + self._check_offsetfunc_works(offset, 'rollforward', dt, | |
| + expected, | |
| normalize=True) | |
| def test_rollback(self): | |
| - expecteds = {'BusinessDay': Timestamp('2010-12-31 09:00:00'), | |
| - 'CustomBusinessDay': Timestamp('2010-12-31 09:00:00'), | |
| - 'CustomBusinessMonthEnd': Timestamp('2010-12-31 09:00:00'), | |
| - 'CustomBusinessMonthBegin': Timestamp('2010-12-01 09:00:00'), | |
| - 'BusinessMonthBegin': Timestamp('2010-12-01 09:00:00'), | |
| - 'MonthEnd': Timestamp('2010-12-31 09:00:00'), | |
| - 'BusinessMonthEnd': Timestamp('2010-12-31 09:00:00'), | |
| - 'BYearBegin': Timestamp('2010-01-01 09:00:00'), | |
| - 'YearEnd': Timestamp('2010-12-31 09:00:00'), | |
| - 'BYearEnd': Timestamp('2010-12-31 09:00:00'), | |
| - 'QuarterBegin': Timestamp('2010-12-01 09:00:00'), | |
| - 'BQuarterBegin': Timestamp('2010-12-01 09:00:00'), | |
| - 'QuarterEnd': Timestamp('2010-12-31 09:00:00'), | |
| - 'BQuarterEnd': Timestamp('2010-12-31 09:00:00'), | |
| - 'WeekOfMonth': Timestamp('2010-12-11 09:00:00'), | |
| - 'LastWeekOfMonth': Timestamp('2010-12-25 09:00:00'), | |
| - 'FY5253Quarter': Timestamp('2010-10-26 09:00:00'), | |
| - 'FY5253': Timestamp('2010-01-26 09:00:00'), | |
| - 'Easter': Timestamp('2010-04-04 09:00:00')} | |
| + expecteds = { | |
| + 'BusinessDay': Timestamp('2010-12-31 09:00:00'), | |
| + 'CustomBusinessDay': Timestamp('2010-12-31 09:00:00'), | |
| + 'CustomBusinessMonthEnd': Timestamp('2010-12-31 09:00:00'), | |
| + 'CustomBusinessMonthBegin': Timestamp('2010-12-01 09:00:00'), | |
| + 'BusinessMonthBegin': Timestamp('2010-12-01 09:00:00'), | |
| + 'MonthEnd': Timestamp('2010-12-31 09:00:00'), | |
| + 'BusinessMonthEnd': Timestamp('2010-12-31 09:00:00'), | |
| + 'BYearBegin': Timestamp('2010-01-01 09:00:00'), | |
| + 'YearEnd': Timestamp('2010-12-31 09:00:00'), | |
| + 'BYearEnd': Timestamp('2010-12-31 09:00:00'), | |
| + 'QuarterBegin': Timestamp('2010-12-01 09:00:00'), | |
| + 'BQuarterBegin': Timestamp('2010-12-01 09:00:00'), | |
| + 'QuarterEnd': Timestamp('2010-12-31 09:00:00'), | |
| + 'BQuarterEnd': Timestamp('2010-12-31 09:00:00'), | |
| + 'WeekOfMonth': Timestamp('2010-12-11 09:00:00'), | |
| + 'LastWeekOfMonth': Timestamp('2010-12-25 09:00:00'), | |
| + 'FY5253Quarter': Timestamp('2010-10-26 09:00:00'), | |
| + 'FY5253': Timestamp('2010-01-26 09:00:00'), | |
| + 'Easter': Timestamp('2010-04-04 09:00:00') | |
| + } | |
| # result will not be changed if the target is on the offset | |
| for n in ['Day', 'MonthBegin', 'YearBegin', 'Week', 'Hour', 'Minute', | |
| @@ -337,16 +348,18 @@ | |
| for k in norm_expected: | |
| norm_expected[k] = Timestamp(norm_expected[k].date()) | |
| - normalized = {'Day': Timestamp('2010-12-31 00:00:00'), | |
| - 'DateOffset': Timestamp('2010-12-31 00:00:00'), | |
| - 'MonthBegin': Timestamp('2010-12-01 00:00:00'), | |
| - 'YearBegin': Timestamp('2010-01-01 00:00:00'), | |
| - 'Week': Timestamp('2010-12-25 00:00:00'), | |
| - 'Hour': Timestamp('2011-01-01 00:00:00'), | |
| - 'Minute': Timestamp('2011-01-01 00:00:00'), | |
| - 'Second': Timestamp('2011-01-01 00:00:00'), | |
| - 'Milli': Timestamp('2011-01-01 00:00:00'), | |
| - 'Micro': Timestamp('2011-01-01 00:00:00')} | |
| + normalized = { | |
| + 'Day': Timestamp('2010-12-31 00:00:00'), | |
| + 'DateOffset': Timestamp('2010-12-31 00:00:00'), | |
| + 'MonthBegin': Timestamp('2010-12-01 00:00:00'), | |
| + 'YearBegin': Timestamp('2010-01-01 00:00:00'), | |
| + 'Week': Timestamp('2010-12-25 00:00:00'), | |
| + 'Hour': Timestamp('2011-01-01 00:00:00'), | |
| + 'Minute': Timestamp('2011-01-01 00:00:00'), | |
| + 'Second': Timestamp('2011-01-01 00:00:00'), | |
| + 'Milli': Timestamp('2011-01-01 00:00:00'), | |
| + 'Micro': Timestamp('2011-01-01 00:00:00') | |
| + } | |
| norm_expected.update(normalized) | |
| sdt = datetime(2011, 1, 1, 9, 0) | |
| @@ -358,8 +371,8 @@ | |
| self._check_offsetfunc_works(offset, 'rollback', dt, expected) | |
| expected = norm_expected[offset.__name__] | |
| - self._check_offsetfunc_works(offset, 'rollback', | |
| - dt, expected, normalize=True) | |
| + self._check_offsetfunc_works(offset, 'rollback', dt, expected, | |
| + normalize=True) | |
| def test_onOffset(self): | |
| for offset in self.offset_types: | |
| @@ -411,11 +424,13 @@ | |
| self.assertEqual(result, expected_localize) | |
| def test_pickle_v0_15_2(self): | |
| - offsets = {'DateOffset': DateOffset(years=1), | |
| - 'MonthBegin': MonthBegin(1), | |
| - 'Day': Day(1), | |
| - 'YearBegin': YearBegin(1), | |
| - 'Week': Week(1)} | |
| + offsets = { | |
| + 'DateOffset': DateOffset(years=1), | |
| + 'MonthBegin': MonthBegin(1), | |
| + 'Day': Day(1), | |
| + 'YearBegin': YearBegin(1), | |
| + 'Week': Week(1) | |
| + } | |
| pickle_path = os.path.join(tm.get_data_path(), | |
| 'dateoffset_0_15_2.pickle') | |
| # This code was executed once on v0.15.2 to generate the pickle: | |
| @@ -423,6 +438,7 @@ | |
| # | |
| tm.assert_dict_equal(offsets, read_pickle(pickle_path)) | |
| + | |
| class TestDateOffset(Base): | |
| _multiprocess_can_split_ = True | |
| @@ -442,19 +458,19 @@ | |
| def test_constructor(self): | |
| - assert((self.d + DateOffset(months=2)) == datetime(2008, 3, 2)) | |
| - assert((self.d - DateOffset(months=2)) == datetime(2007, 11, 2)) | |
| - | |
| - assert((self.d + DateOffset(2)) == datetime(2008, 1, 4)) | |
| + assert ((self.d + DateOffset(months=2)) == datetime(2008, 3, 2)) | |
| + assert ((self.d - DateOffset(months=2)) == datetime(2007, 11, 2)) | |
| + | |
| + assert ((self.d + DateOffset(2)) == datetime(2008, 1, 4)) | |
| assert not DateOffset(2).isAnchored() | |
| assert DateOffset(1).isAnchored() | |
| d = datetime(2008, 1, 31) | |
| - assert((d + DateOffset(months=1)) == datetime(2008, 2, 29)) | |
| + assert ((d + DateOffset(months=1)) == datetime(2008, 2, 29)) | |
| def test_copy(self): | |
| - assert(DateOffset(months=2).copy() == DateOffset(months=2)) | |
| + assert (DateOffset(months=2).copy() == DateOffset(months=2)) | |
| def test_eq(self): | |
| offset1 = DateOffset(days=1) | |
| @@ -521,22 +537,21 @@ | |
| self.assertEqual(self.d + 10 * self.offset, self.d + BDay(10)) | |
| def testMult2(self): | |
| - self.assertEqual(self.d + (-5 * BDay(-10)), | |
| - self.d + BDay(50)) | |
| + self.assertEqual(self.d + (-5 * BDay(-10)), self.d + BDay(50)) | |
| def testRollback1(self): | |
| self.assertEqual(BDay(10).rollback(self.d), self.d) | |
| def testRollback2(self): | |
| - self.assertEqual( | |
| - BDay(10).rollback(datetime(2008, 1, 5)), datetime(2008, 1, 4)) | |
| + self.assertEqual(BDay(10).rollback(datetime(2008, 1, 5)), | |
| + datetime(2008, 1, 4)) | |
| def testRollforward1(self): | |
| self.assertEqual(BDay(10).rollforward(self.d), self.d) | |
| def testRollforward2(self): | |
| - self.assertEqual( | |
| - BDay(10).rollforward(datetime(2008, 1, 5)), datetime(2008, 1, 7)) | |
| + self.assertEqual(BDay(10).rollforward(datetime(2008, 1, 5)), | |
| + datetime(2008, 1, 7)) | |
| def test_roll_date_object(self): | |
| offset = BDay() | |
| @@ -566,43 +581,48 @@ | |
| def test_apply(self): | |
| tests = [] | |
| - tests.append((bday, | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 2), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 8)})) | |
| - | |
| - tests.append((2 * bday, | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 3), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 8), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 8), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 8), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 9)})) | |
| - | |
| - tests.append((-bday, | |
| - {datetime(2008, 1, 1): datetime(2007, 12, 31), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 3), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 4), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 4), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 4), | |
| - datetime(2008, 1, 8): datetime(2008, 1, 7)})) | |
| - | |
| - tests.append((-2 * bday, | |
| - {datetime(2008, 1, 1): datetime(2007, 12, 28), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 2), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 3), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 3), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 3), | |
| - datetime(2008, 1, 8): datetime(2008, 1, 4), | |
| - datetime(2008, 1, 9): datetime(2008, 1, 7)})) | |
| - | |
| - tests.append((BDay(0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 4), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 7)})) | |
| + tests.append((bday, { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 2), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 8) | |
| + })) | |
| + | |
| + tests.append((2 * bday, { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 3), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 8), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 8), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 8), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 9) | |
| + })) | |
| + | |
| + tests.append((-bday, { | |
| + datetime(2008, 1, 1): datetime(2007, 12, 31), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 3), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 4), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 4), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 4), | |
| + datetime(2008, 1, 8): datetime(2008, 1, 7) | |
| + })) | |
| + | |
| + tests.append((-2 * bday, { | |
| + datetime(2008, 1, 1): datetime(2007, 12, 28), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 2), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 3), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 3), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 3), | |
| + datetime(2008, 1, 8): datetime(2008, 1, 4), | |
| + datetime(2008, 1, 9): datetime(2008, 1, 7) | |
| + })) | |
| + | |
| + tests.append((BDay(0), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 4), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 7) | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -628,7 +648,7 @@ | |
| self.assertEqual(rs, xp) | |
| off = BDay() * 10 | |
| - rs = datetime(2014, 1, 5) + off # see #5890 | |
| + rs = datetime(2014, 1, 5) + off # see #5890 | |
| xp = datetime(2014, 1, 17) | |
| self.assertEqual(rs, xp) | |
| @@ -703,22 +723,21 @@ | |
| self.assertEqual(self.d + 10 * self.offset, self.d + CDay(10)) | |
| def testMult2(self): | |
| - self.assertEqual(self.d + (-5 * CDay(-10)), | |
| - self.d + CDay(50)) | |
| + self.assertEqual(self.d + (-5 * CDay(-10)), self.d + CDay(50)) | |
| def testRollback1(self): | |
| self.assertEqual(CDay(10).rollback(self.d), self.d) | |
| def testRollback2(self): | |
| - self.assertEqual( | |
| - CDay(10).rollback(datetime(2008, 1, 5)), datetime(2008, 1, 4)) | |
| + self.assertEqual(CDay(10).rollback(datetime(2008, 1, 5)), | |
| + datetime(2008, 1, 4)) | |
| def testRollforward1(self): | |
| self.assertEqual(CDay(10).rollforward(self.d), self.d) | |
| def testRollforward2(self): | |
| - self.assertEqual( | |
| - CDay(10).rollforward(datetime(2008, 1, 5)), datetime(2008, 1, 7)) | |
| + self.assertEqual(CDay(10).rollforward(datetime(2008, 1, 5)), | |
| + datetime(2008, 1, 7)) | |
| def test_roll_date_object(self): | |
| offset = CDay() | |
| @@ -749,43 +768,48 @@ | |
| from pandas.core.datetools import cday | |
| tests = [] | |
| - tests.append((cday, | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 2), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 8)})) | |
| - | |
| - tests.append((2 * cday, | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 3), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 8), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 8), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 8), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 9)})) | |
| - | |
| - tests.append((-cday, | |
| - {datetime(2008, 1, 1): datetime(2007, 12, 31), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 3), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 4), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 4), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 4), | |
| - datetime(2008, 1, 8): datetime(2008, 1, 7)})) | |
| - | |
| - tests.append((-2 * cday, | |
| - {datetime(2008, 1, 1): datetime(2007, 12, 28), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 2), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 3), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 3), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 3), | |
| - datetime(2008, 1, 8): datetime(2008, 1, 4), | |
| - datetime(2008, 1, 9): datetime(2008, 1, 7)})) | |
| - | |
| - tests.append((CDay(0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 4), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 7)})) | |
| + tests.append((cday, { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 2), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 8) | |
| + })) | |
| + | |
| + tests.append((2 * cday, { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 3), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 8), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 8), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 8), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 9) | |
| + })) | |
| + | |
| + tests.append((-cday, { | |
| + datetime(2008, 1, 1): datetime(2007, 12, 31), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 3), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 4), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 4), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 4), | |
| + datetime(2008, 1, 8): datetime(2008, 1, 7) | |
| + })) | |
| + | |
| + tests.append((-2 * cday, { | |
| + datetime(2008, 1, 1): datetime(2007, 12, 28), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 2), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 3), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 3), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 3), | |
| + datetime(2008, 1, 8): datetime(2008, 1, 4), | |
| + datetime(2008, 1, 9): datetime(2008, 1, 7) | |
| + })) | |
| + | |
| + tests.append((CDay(0), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 4), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 7) | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -832,8 +856,8 @@ | |
| def test_weekmask(self): | |
| weekmask_saudi = 'Sat Sun Mon Tue Wed' # Thu-Fri Weekend | |
| - weekmask_uae = '1111001' # Fri-Sat Weekend | |
| - weekmask_egypt = [1,1,1,1,0,0,1] # Fri-Sat Weekend | |
| + weekmask_uae = '1111001' # Fri-Sat Weekend | |
| + weekmask_egypt = [1, 1, 1, 1, 0, 0, 1] # Fri-Sat Weekend | |
| bday_saudi = CDay(weekmask=weekmask_saudi) | |
| bday_uae = CDay(weekmask=weekmask_uae) | |
| bday_egypt = CDay(weekmask=weekmask_egypt) | |
| @@ -867,18 +891,20 @@ | |
| def _check_roundtrip(obj): | |
| unpickled = self.round_trip_pickle(obj) | |
| self.assertEqual(unpickled, obj) | |
| + | |
| _check_roundtrip(self.offset) | |
| _check_roundtrip(self.offset2) | |
| - _check_roundtrip(self.offset*2) | |
| + _check_roundtrip(self.offset * 2) | |
| def test_pickle_compat_0_14_1(self): | |
| - hdays = [datetime(2013,1,1) for ele in range(4)] | |
| + hdays = [datetime(2013, 1, 1) for ele in range(4)] | |
| pth = tm.get_data_path() | |
| cday0_14_1 = read_pickle(os.path.join(pth, 'cday-0.14.1.pickle')) | |
| cday = CDay(holidays=hdays) | |
| self.assertEqual(cday, cday0_14_1) | |
| + | |
| class CustomBusinessMonthBase(object): | |
| _multiprocess_can_split_ = True | |
| @@ -907,15 +933,13 @@ | |
| self.assertRaises(Exception, off.__sub__, self.d) | |
| self.assertEqual(2 * off - off, off) | |
| - self.assertEqual(self.d - self.offset2, | |
| - self.d + self._object(-2)) | |
| + self.assertEqual(self.d - self.offset2, self.d + self._object(-2)) | |
| def testRSub(self): | |
| self.assertEqual(self.d - self.offset2, (-self.offset2).apply(self.d)) | |
| def testMult1(self): | |
| - self.assertEqual(self.d + 10 * self.offset, | |
| - self.d + self._object(10)) | |
| + self.assertEqual(self.d + 10 * self.offset, self.d + self._object(10)) | |
| def testMult2(self): | |
| self.assertEqual(self.d + (-5 * self._object(-10)), | |
| @@ -930,9 +954,10 @@ | |
| def _check_roundtrip(obj): | |
| unpickled = self.round_trip_pickle(obj) | |
| self.assertEqual(unpickled, obj) | |
| + | |
| _check_roundtrip(self._object()) | |
| _check_roundtrip(self._object(2)) | |
| - _check_roundtrip(self._object()*2) | |
| + _check_roundtrip(self._object() * 2) | |
| class TestCustomBusinessMonthEnd(CustomBusinessMonthBase, Base): | |
| @@ -953,15 +978,16 @@ | |
| self.assertEqual(self.offset2(self.d), datetime(2008, 2, 29)) | |
| def testRollback1(self): | |
| - self.assertEqual( | |
| - CDay(10).rollback(datetime(2007, 12, 31)), datetime(2007, 12, 31)) | |
| + self.assertEqual(CDay(10).rollback(datetime(2007, 12, 31)), | |
| + datetime(2007, 12, 31)) | |
| def testRollback2(self): | |
| self.assertEqual(CBMonthEnd(10).rollback(self.d), | |
| - datetime(2007,12,31)) | |
| + datetime(2007, 12, 31)) | |
| def testRollforward1(self): | |
| - self.assertEqual(CBMonthEnd(10).rollforward(self.d), datetime(2008,1,31)) | |
| + self.assertEqual(CBMonthEnd(10).rollforward(self.d), datetime(2008, 1, | |
| + 31)) | |
| def test_roll_date_object(self): | |
| offset = CBMonthEnd() | |
| @@ -988,30 +1014,34 @@ | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| - | |
| def test_apply(self): | |
| cbm = CBMonthEnd() | |
| tests = [] | |
| - tests.append((cbm, | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| - datetime(2008, 2, 7): datetime(2008, 2, 29)})) | |
| - | |
| - tests.append((2 * cbm, | |
| - {datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| - datetime(2008, 2, 7): datetime(2008, 3, 31)})) | |
| - | |
| - tests.append((-cbm, | |
| - {datetime(2008, 1, 1): datetime(2007, 12, 31), | |
| - datetime(2008, 2, 8): datetime(2008, 1, 31)})) | |
| - | |
| - tests.append((-2 * cbm, | |
| - {datetime(2008, 1, 1): datetime(2007, 11, 30), | |
| - datetime(2008, 2, 9): datetime(2007, 12, 31)})) | |
| - | |
| - tests.append((CBMonthEnd(0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| - datetime(2008, 2, 7): datetime(2008, 2, 29)})) | |
| + tests.append((cbm, { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| + datetime(2008, 2, 7): datetime(2008, 2, 29) | |
| + })) | |
| + | |
| + tests.append((2 * cbm, { | |
| + datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| + datetime(2008, 2, 7): datetime(2008, 3, 31) | |
| + })) | |
| + | |
| + tests.append((-cbm, { | |
| + datetime(2008, 1, 1): datetime(2007, 12, 31), | |
| + datetime(2008, 2, 8): datetime(2008, 1, 31) | |
| + })) | |
| + | |
| + tests.append((-2 * cbm, { | |
| + datetime(2008, 1, 1): datetime(2007, 11, 30), | |
| + datetime(2008, 2, 9): datetime(2007, 12, 31) | |
| + })) | |
| + | |
| + tests.append((CBMonthEnd(0), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| + datetime(2008, 2, 7): datetime(2008, 2, 29) | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1041,18 +1071,20 @@ | |
| holidays = ['2012-01-31', datetime(2012, 2, 28), | |
| np.datetime64('2012-02-29')] | |
| bm_offset = CBMonthEnd(holidays=holidays) | |
| - dt = datetime(2012,1,1) | |
| - self.assertEqual(dt + bm_offset,datetime(2012,1,30)) | |
| - self.assertEqual(dt + 2*bm_offset,datetime(2012,2,27)) | |
| + dt = datetime(2012, 1, 1) | |
| + self.assertEqual(dt + bm_offset, datetime(2012, 1, 30)) | |
| + self.assertEqual(dt + 2 * bm_offset, datetime(2012, 2, 27)) | |
| def test_datetimeindex(self): | |
| from pandas.tseries.holiday import USFederalHolidayCalendar | |
| hcal = USFederalHolidayCalendar() | |
| freq = CBMonthEnd(calendar=hcal) | |
| - self.assertEqual(DatetimeIndex(start='20120101',end='20130101', | |
| + self.assertEqual(DatetimeIndex(start='20120101', | |
| + end='20130101', | |
| freq=freq).tolist()[0], | |
| - datetime(2012,1,31)) | |
| + datetime(2012, 1, 31)) | |
| + | |
| class TestCustomBusinessMonthBegin(CustomBusinessMonthBase, Base): | |
| _object = CBMonthBegin | |
| @@ -1072,15 +1104,16 @@ | |
| self.assertEqual(self.offset2(self.d), datetime(2008, 3, 3)) | |
| def testRollback1(self): | |
| - self.assertEqual( | |
| - CDay(10).rollback(datetime(2007, 12, 31)), datetime(2007, 12, 31)) | |
| + self.assertEqual(CDay(10).rollback(datetime(2007, 12, 31)), | |
| + datetime(2007, 12, 31)) | |
| def testRollback2(self): | |
| self.assertEqual(CBMonthBegin(10).rollback(self.d), | |
| - datetime(2008,1,1)) | |
| + datetime(2008, 1, 1)) | |
| def testRollforward1(self): | |
| - self.assertEqual(CBMonthBegin(10).rollforward(self.d), datetime(2008,1,1)) | |
| + self.assertEqual(CBMonthBegin(10).rollforward(self.d), datetime(2008, | |
| + 1, 1)) | |
| def test_roll_date_object(self): | |
| offset = CBMonthBegin() | |
| @@ -1107,30 +1140,34 @@ | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| - | |
| def test_apply(self): | |
| cbm = CBMonthBegin() | |
| tests = [] | |
| - tests.append((cbm, | |
| - {datetime(2008, 1, 1): datetime(2008, 2, 1), | |
| - datetime(2008, 2, 7): datetime(2008, 3, 3)})) | |
| - | |
| - tests.append((2 * cbm, | |
| - {datetime(2008, 1, 1): datetime(2008, 3, 3), | |
| - datetime(2008, 2, 7): datetime(2008, 4, 1)})) | |
| - | |
| - tests.append((-cbm, | |
| - {datetime(2008, 1, 1): datetime(2007, 12, 3), | |
| - datetime(2008, 2, 8): datetime(2008, 2, 1)})) | |
| - | |
| - tests.append((-2 * cbm, | |
| - {datetime(2008, 1, 1): datetime(2007, 11, 1), | |
| - datetime(2008, 2, 9): datetime(2008, 1, 1)})) | |
| - | |
| - tests.append((CBMonthBegin(0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| - datetime(2008, 1, 7): datetime(2008, 2, 1)})) | |
| + tests.append((cbm, { | |
| + datetime(2008, 1, 1): datetime(2008, 2, 1), | |
| + datetime(2008, 2, 7): datetime(2008, 3, 3) | |
| + })) | |
| + | |
| + tests.append((2 * cbm, { | |
| + datetime(2008, 1, 1): datetime(2008, 3, 3), | |
| + datetime(2008, 2, 7): datetime(2008, 4, 1) | |
| + })) | |
| + | |
| + tests.append((-cbm, { | |
| + datetime(2008, 1, 1): datetime(2007, 12, 3), | |
| + datetime(2008, 2, 8): datetime(2008, 2, 1) | |
| + })) | |
| + | |
| + tests.append((-2 * cbm, { | |
| + datetime(2008, 1, 1): datetime(2007, 11, 1), | |
| + datetime(2008, 2, 9): datetime(2008, 1, 1) | |
| + })) | |
| + | |
| + tests.append((CBMonthBegin(0), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| + datetime(2008, 1, 7): datetime(2008, 2, 1) | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1160,16 +1197,17 @@ | |
| holidays = ['2012-02-01', datetime(2012, 2, 2), | |
| np.datetime64('2012-03-01')] | |
| bm_offset = CBMonthBegin(holidays=holidays) | |
| - dt = datetime(2012,1,1) | |
| - self.assertEqual(dt + bm_offset,datetime(2012,1,2)) | |
| - self.assertEqual(dt + 2*bm_offset,datetime(2012,2,3)) | |
| + dt = datetime(2012, 1, 1) | |
| + self.assertEqual(dt + bm_offset, datetime(2012, 1, 2)) | |
| + self.assertEqual(dt + 2 * bm_offset, datetime(2012, 2, 3)) | |
| def test_datetimeindex(self): | |
| hcal = USFederalHolidayCalendar() | |
| cbmb = CBMonthBegin(calendar=hcal) | |
| - self.assertEqual(DatetimeIndex(start='20120101', end='20130101', | |
| + self.assertEqual(DatetimeIndex(start='20120101', | |
| + end='20130101', | |
| freq=cbmb).tolist()[0], | |
| - datetime(2012,1,3)) | |
| + datetime(2012, 1, 3)) | |
| def assertOnOffset(offset, date, expected): | |
| @@ -1185,7 +1223,8 @@ | |
| def test_repr(self): | |
| self.assertEqual(repr(Week(weekday=0)), "<Week: weekday=0>") | |
| self.assertEqual(repr(Week(n=-1, weekday=0)), "<-1 * Week: weekday=0>") | |
| - self.assertEqual(repr(Week(n=-2, weekday=0)), "<-2 * Weeks: weekday=0>") | |
| + self.assertEqual(repr(Week(n=-2, | |
| + weekday=0)), "<-2 * Weeks: weekday=0>") | |
| def test_corner(self): | |
| self.assertRaises(ValueError, Week, weekday=7) | |
| @@ -1201,30 +1240,40 @@ | |
| tests = [] | |
| tests.append((Week(), # not business week | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 8), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 11), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 12), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 13), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 14)})) | |
| + { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 8), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 11), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 12), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 13), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 14) | |
| + })) | |
| tests.append((Week(weekday=0), # Mon | |
| - {datetime(2007, 12, 31): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 14)})) | |
| - | |
| - tests.append((Week(0, weekday=0), # n=0 -> roll forward. Mon | |
| - {datetime(2007, 12, 31): datetime(2007, 12, 31), | |
| - datetime(2008, 1, 4): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 5): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 6): datetime(2008, 1, 7), | |
| - datetime(2008, 1, 7): datetime(2008, 1, 7)})) | |
| - | |
| - tests.append((Week(-2, weekday=1), # n=0 -> roll forward. Mon | |
| - {datetime(2010, 4, 6): datetime(2010, 3, 23), | |
| - datetime(2010, 4, 8): datetime(2010, 3, 30), | |
| - datetime(2010, 4, 5): datetime(2010, 3, 23)})) | |
| + { | |
| + datetime(2007, 12, 31): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 14) | |
| + })) | |
| + | |
| + tests.append((Week(0, | |
| + weekday=0), # n=0 -> roll forward. Mon | |
| + { | |
| + datetime(2007, 12, 31): datetime(2007, 12, 31), | |
| + datetime(2008, 1, 4): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 5): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 6): datetime(2008, 1, 7), | |
| + datetime(2008, 1, 7): datetime(2008, 1, 7) | |
| + })) | |
| + | |
| + tests.append((Week(-2, | |
| + weekday=1), # n=0 -> roll forward. Mon | |
| + { | |
| + datetime(2010, 4, 6): datetime(2010, 3, 23), | |
| + datetime(2010, 4, 8): datetime(2010, 3, 30), | |
| + datetime(2010, 4, 5): datetime(2010, 3, 23) | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1254,14 +1303,31 @@ | |
| _offset = WeekOfMonth | |
| def test_constructor(self): | |
| - assertRaisesRegexp(ValueError, "^N cannot be 0", WeekOfMonth, n=0, week=1, weekday=1) | |
| - assertRaisesRegexp(ValueError, "^Week", WeekOfMonth, n=1, week=4, weekday=0) | |
| - assertRaisesRegexp(ValueError, "^Week", WeekOfMonth, n=1, week=-1, weekday=0) | |
| - assertRaisesRegexp(ValueError, "^Day", WeekOfMonth, n=1, week=0, weekday=-1) | |
| - assertRaisesRegexp(ValueError, "^Day", WeekOfMonth, n=1, week=0, weekday=7) | |
| + assertRaisesRegexp(ValueError, "^N cannot be 0", WeekOfMonth, | |
| + n=0, | |
| + week=1, | |
| + weekday=1) | |
| + assertRaisesRegexp(ValueError, "^Week", WeekOfMonth, | |
| + n=1, | |
| + week=4, | |
| + weekday=0) | |
| + assertRaisesRegexp(ValueError, "^Week", WeekOfMonth, | |
| + n=1, | |
| + week=-1, | |
| + weekday=0) | |
| + assertRaisesRegexp(ValueError, "^Day", WeekOfMonth, | |
| + n=1, | |
| + week=0, | |
| + weekday=-1) | |
| + assertRaisesRegexp(ValueError, "^Day", WeekOfMonth, | |
| + n=1, | |
| + week=0, | |
| + weekday=7) | |
| def test_repr(self): | |
| - self.assertEqual(repr(WeekOfMonth(weekday=1,week=2)), "<WeekOfMonth: week=2, weekday=1>") | |
| + self.assertEqual(repr(WeekOfMonth(weekday=1, | |
| + week=2)), | |
| + "<WeekOfMonth: week=2, weekday=1>") | |
| def test_offset(self): | |
| date1 = datetime(2011, 1, 4) # 1st Tuesday of Month | |
| @@ -1270,40 +1336,34 @@ | |
| date4 = datetime(2011, 1, 25) # 4th Tuesday of Month | |
| # see for loop for structure | |
| - test_cases = [ | |
| - (-2, 2, 1, date1, datetime(2010, 11, 16)), | |
| - (-2, 2, 1, date2, datetime(2010, 11, 16)), | |
| - (-2, 2, 1, date3, datetime(2010, 11, 16)), | |
| - (-2, 2, 1, date4, datetime(2010, 12, 21)), | |
| - | |
| - (-1, 2, 1, date1, datetime(2010, 12, 21)), | |
| - (-1, 2, 1, date2, datetime(2010, 12, 21)), | |
| - (-1, 2, 1, date3, datetime(2010, 12, 21)), | |
| - (-1, 2, 1, date4, datetime(2011, 1, 18)), | |
| - | |
| - (1, 0, 0, date1, datetime(2011, 2, 7)), | |
| - (1, 0, 0, date2, datetime(2011, 2, 7)), | |
| - (1, 0, 0, date3, datetime(2011, 2, 7)), | |
| - (1, 0, 0, date4, datetime(2011, 2, 7)), | |
| - (1, 0, 1, date1, datetime(2011, 2, 1)), | |
| - (1, 0, 1, date2, datetime(2011, 2, 1)), | |
| - (1, 0, 1, date3, datetime(2011, 2, 1)), | |
| - (1, 0, 1, date4, datetime(2011, 2, 1)), | |
| - (1, 0, 2, date1, datetime(2011, 1, 5)), | |
| - (1, 0, 2, date2, datetime(2011, 2, 2)), | |
| - (1, 0, 2, date3, datetime(2011, 2, 2)), | |
| - (1, 0, 2, date4, datetime(2011, 2, 2)), | |
| - | |
| - (1, 2, 1, date1, datetime(2011, 1, 18)), | |
| - (1, 2, 1, date2, datetime(2011, 1, 18)), | |
| - (1, 2, 1, date3, datetime(2011, 2, 15)), | |
| - (1, 2, 1, date4, datetime(2011, 2, 15)), | |
| - | |
| - (2, 2, 1, date1, datetime(2011, 2, 15)), | |
| - (2, 2, 1, date2, datetime(2011, 2, 15)), | |
| - (2, 2, 1, date3, datetime(2011, 3, 15)), | |
| - (2, 2, 1, date4, datetime(2011, 3, 15)), | |
| - ] | |
| + test_cases = [(-2, 2, 1, date1, datetime(2010, 11, 16)), | |
| + (-2, 2, 1, date2, datetime(2010, 11, 16)), | |
| + (-2, 2, 1, date3, datetime(2010, 11, 16)), | |
| + (-2, 2, 1, date4, datetime(2010, 12, 21)), | |
| + (-1, 2, 1, date1, datetime(2010, 12, 21)), | |
| + (-1, 2, 1, date2, datetime(2010, 12, 21)), | |
| + (-1, 2, 1, date3, datetime(2010, 12, 21)), | |
| + (-1, 2, 1, date4, datetime(2011, 1, 18)), | |
| + (1, 0, 0, date1, datetime(2011, 2, 7)), | |
| + (1, 0, 0, date2, datetime(2011, 2, 7)), | |
| + (1, 0, 0, date3, datetime(2011, 2, 7)), | |
| + (1, 0, 0, date4, datetime(2011, 2, 7)), | |
| + (1, 0, 1, date1, datetime(2011, 2, 1)), | |
| + (1, 0, 1, date2, datetime(2011, 2, 1)), | |
| + (1, 0, 1, date3, datetime(2011, 2, 1)), | |
| + (1, 0, 1, date4, datetime(2011, 2, 1)), | |
| + (1, 0, 2, date1, datetime(2011, 1, 5)), | |
| + (1, 0, 2, date2, datetime(2011, 2, 2)), | |
| + (1, 0, 2, date3, datetime(2011, 2, 2)), | |
| + (1, 0, 2, date4, datetime(2011, 2, 2)), | |
| + (1, 2, 1, date1, datetime(2011, 1, 18)), | |
| + (1, 2, 1, date2, datetime(2011, 1, 18)), | |
| + (1, 2, 1, date3, datetime(2011, 2, 15)), | |
| + (1, 2, 1, date4, datetime(2011, 2, 15)), | |
| + (2, 2, 1, date1, datetime(2011, 2, 15)), | |
| + (2, 2, 1, date2, datetime(2011, 2, 15)), | |
| + (2, 2, 1, date3, datetime(2011, 3, 15)), | |
| + (2, 2, 1, date4, datetime(2011, 3, 15)), ] | |
| for n, week, weekday, date, expected in test_cases: | |
| offset = WeekOfMonth(n, week=week, weekday=weekday) | |
| @@ -1316,19 +1376,18 @@ | |
| self.assertEqual(result, datetime(2011, 2, 2)) | |
| def test_onOffset(self): | |
| - test_cases = [ | |
| - (0, 0, datetime(2011, 2, 7), True), | |
| - (0, 0, datetime(2011, 2, 6), False), | |
| - (0, 0, datetime(2011, 2, 14), False), | |
| - (1, 0, datetime(2011, 2, 14), True), | |
| - (0, 1, datetime(2011, 2, 1), True), | |
| - (0, 1, datetime(2011, 2, 8), False), | |
| - ] | |
| + test_cases = [(0, 0, datetime(2011, 2, 7), True), | |
| + (0, 0, datetime(2011, 2, 6), False), | |
| + (0, 0, datetime(2011, 2, 14), False), | |
| + (1, 0, datetime(2011, 2, 14), True), | |
| + (0, 1, datetime(2011, 2, 1), True), | |
| + (0, 1, datetime(2011, 2, 8), False), ] | |
| for week, weekday, date, expected in test_cases: | |
| offset = WeekOfMonth(week=week, weekday=weekday) | |
| self.assertEqual(offset.onOffset(date), expected) | |
| + | |
| class TestLastWeekOfMonth(Base): | |
| _offset = LastWeekOfMonth | |
| @@ -1336,13 +1395,15 @@ | |
| assertRaisesRegexp(ValueError, "^N cannot be 0", \ | |
| LastWeekOfMonth, n=0, weekday=1) | |
| - assertRaisesRegexp(ValueError, "^Day", LastWeekOfMonth, n=1, weekday=-1) | |
| + assertRaisesRegexp(ValueError, "^Day", LastWeekOfMonth, | |
| + n=1, | |
| + weekday=-1) | |
| assertRaisesRegexp(ValueError, "^Day", LastWeekOfMonth, n=1, weekday=7) | |
| def test_offset(self): | |
| #### Saturday | |
| - last_sat = datetime(2013,8,31) | |
| - next_sat = datetime(2013,9,28) | |
| + last_sat = datetime(2013, 8, 31) | |
| + next_sat = datetime(2013, 9, 28) | |
| offset_sat = LastWeekOfMonth(n=1, weekday=5) | |
| one_day_before = (last_sat + timedelta(days=-1)) | |
| @@ -1357,8 +1418,8 @@ | |
| #### Thursday | |
| offset_thur = LastWeekOfMonth(n=1, weekday=3) | |
| - last_thurs = datetime(2013,1,31) | |
| - next_thurs = datetime(2013,2,28) | |
| + last_thurs = datetime(2013, 1, 31) | |
| + next_thurs = datetime(2013, 2, 28) | |
| one_day_before = last_thurs + timedelta(days=-1) | |
| self.assertEqual(one_day_before + offset_thur, last_thurs) | |
| @@ -1376,25 +1437,24 @@ | |
| self.assertEqual(two_after + offset_thur, next_thurs) | |
| offset_sunday = LastWeekOfMonth(n=1, weekday=WeekDay.SUN) | |
| - self.assertEqual(datetime(2013,7,31) + offset_sunday, datetime(2013,8,25)) | |
| + self.assertEqual(datetime(2013, 7, 31) + offset_sunday, | |
| + datetime(2013, 8, 25)) | |
| def test_onOffset(self): | |
| - test_cases = [ | |
| - (WeekDay.SUN, datetime(2013, 1, 27), True), | |
| - (WeekDay.SAT, datetime(2013, 3, 30), True), | |
| - (WeekDay.MON, datetime(2013, 2, 18), False), #Not the last Mon | |
| - (WeekDay.SUN, datetime(2013, 2, 25), False), #Not a SUN | |
| - (WeekDay.MON, datetime(2013, 2, 25), True), | |
| - (WeekDay.SAT, datetime(2013, 11, 30), True), | |
| - | |
| - (WeekDay.SAT, datetime(2006, 8, 26), True), | |
| - (WeekDay.SAT, datetime(2007, 8, 25), True), | |
| - (WeekDay.SAT, datetime(2008, 8, 30), True), | |
| - (WeekDay.SAT, datetime(2009, 8, 29), True), | |
| - (WeekDay.SAT, datetime(2010, 8, 28), True), | |
| - (WeekDay.SAT, datetime(2011, 8, 27), True), | |
| - (WeekDay.SAT, datetime(2019, 8, 31), True), | |
| - ] | |
| + test_cases = [(WeekDay.SUN, datetime(2013, 1, 27), True), | |
| + (WeekDay.SAT, datetime(2013, 3, 30), True), | |
| + (WeekDay.MON, datetime(2013, 2, 18), False), | |
| + #Not the last Mon | |
| + (WeekDay.SUN, datetime(2013, 2, 25), False), #Not a SUN | |
| + (WeekDay.MON, datetime(2013, 2, 25), True), | |
| + (WeekDay.SAT, datetime(2013, 11, 30), True), | |
| + (WeekDay.SAT, datetime(2006, 8, 26), True), | |
| + (WeekDay.SAT, datetime(2007, 8, 25), True), | |
| + (WeekDay.SAT, datetime(2008, 8, 30), True), | |
| + (WeekDay.SAT, datetime(2009, 8, 29), True), | |
| + (WeekDay.SAT, datetime(2010, 8, 28), True), | |
| + (WeekDay.SAT, datetime(2011, 8, 27), True), | |
| + (WeekDay.SAT, datetime(2019, 8, 31), True), ] | |
| for weekday, date, expected in test_cases: | |
| offset = LastWeekOfMonth(weekday=weekday) | |
| @@ -1407,40 +1467,44 @@ | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((BMonthBegin(), | |
| - {datetime(2008, 1, 1): datetime(2008, 2, 1), | |
| - datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| - datetime(2006, 12, 29): datetime(2007, 1, 1), | |
| - datetime(2006, 12, 31): datetime(2007, 1, 1), | |
| - datetime(2006, 9, 1): datetime(2006, 10, 2), | |
| - datetime(2007, 1, 1): datetime(2007, 2, 1), | |
| - datetime(2006, 12, 1): datetime(2007, 1, 1)})) | |
| - | |
| - tests.append((BMonthBegin(0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| - datetime(2006, 10, 2): datetime(2006, 10, 2), | |
| - datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| - datetime(2006, 12, 29): datetime(2007, 1, 1), | |
| - datetime(2006, 12, 31): datetime(2007, 1, 1), | |
| - datetime(2006, 9, 15): datetime(2006, 10, 2)})) | |
| - | |
| - tests.append((BMonthBegin(2), | |
| - {datetime(2008, 1, 1): datetime(2008, 3, 3), | |
| - datetime(2008, 1, 15): datetime(2008, 3, 3), | |
| - datetime(2006, 12, 29): datetime(2007, 2, 1), | |
| - datetime(2006, 12, 31): datetime(2007, 2, 1), | |
| - datetime(2007, 1, 1): datetime(2007, 3, 1), | |
| - datetime(2006, 11, 1): datetime(2007, 1, 1)})) | |
| - | |
| - tests.append((BMonthBegin(-1), | |
| - {datetime(2007, 1, 1): datetime(2006, 12, 1), | |
| - datetime(2008, 6, 30): datetime(2008, 6, 2), | |
| - datetime(2008, 6, 1): datetime(2008, 5, 1), | |
| - datetime(2008, 3, 10): datetime(2008, 3, 3), | |
| - datetime(2008, 12, 31): datetime(2008, 12, 1), | |
| - datetime(2006, 12, 29): datetime(2006, 12, 1), | |
| - datetime(2006, 12, 30): datetime(2006, 12, 1), | |
| - datetime(2007, 1, 1): datetime(2006, 12, 1)})) | |
| + tests.append((BMonthBegin(), { | |
| + datetime(2008, 1, 1): datetime(2008, 2, 1), | |
| + datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| + datetime(2006, 12, 29): datetime(2007, 1, 1), | |
| + datetime(2006, 12, 31): datetime(2007, 1, 1), | |
| + datetime(2006, 9, 1): datetime(2006, 10, 2), | |
| + datetime(2007, 1, 1): datetime(2007, 2, 1), | |
| + datetime(2006, 12, 1): datetime(2007, 1, 1) | |
| + })) | |
| + | |
| + tests.append((BMonthBegin(0), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| + datetime(2006, 10, 2): datetime(2006, 10, 2), | |
| + datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| + datetime(2006, 12, 29): datetime(2007, 1, 1), | |
| + datetime(2006, 12, 31): datetime(2007, 1, 1), | |
| + datetime(2006, 9, 15): datetime(2006, 10, 2) | |
| + })) | |
| + | |
| + tests.append((BMonthBegin(2), { | |
| + datetime(2008, 1, 1): datetime(2008, 3, 3), | |
| + datetime(2008, 1, 15): datetime(2008, 3, 3), | |
| + datetime(2006, 12, 29): datetime(2007, 2, 1), | |
| + datetime(2006, 12, 31): datetime(2007, 2, 1), | |
| + datetime(2007, 1, 1): datetime(2007, 3, 1), | |
| + datetime(2006, 11, 1): datetime(2007, 1, 1) | |
| + })) | |
| + | |
| + tests.append((BMonthBegin(-1), { | |
| + datetime(2007, 1, 1): datetime(2006, 12, 1), | |
| + datetime(2008, 6, 30): datetime(2008, 6, 2), | |
| + datetime(2008, 6, 1): datetime(2008, 5, 1), | |
| + datetime(2008, 3, 10): datetime(2008, 3, 3), | |
| + datetime(2008, 12, 31): datetime(2008, 12, 1), | |
| + datetime(2006, 12, 29): datetime(2006, 12, 1), | |
| + datetime(2006, 12, 30): datetime(2006, 12, 1), | |
| + datetime(2007, 1, 1): datetime(2006, 12, 1) | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1469,36 +1533,40 @@ | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((BMonthEnd(), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| - datetime(2008, 1, 31): datetime(2008, 2, 29), | |
| - datetime(2006, 12, 29): datetime(2007, 1, 31), | |
| - datetime(2006, 12, 31): datetime(2007, 1, 31), | |
| - datetime(2007, 1, 1): datetime(2007, 1, 31), | |
| - datetime(2006, 12, 1): datetime(2006, 12, 29)})) | |
| - | |
| - tests.append((BMonthEnd(0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| - datetime(2008, 1, 31): datetime(2008, 1, 31), | |
| - datetime(2006, 12, 29): datetime(2006, 12, 29), | |
| - datetime(2006, 12, 31): datetime(2007, 1, 31), | |
| - datetime(2007, 1, 1): datetime(2007, 1, 31)})) | |
| - | |
| - tests.append((BMonthEnd(2), | |
| - {datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| - datetime(2008, 1, 31): datetime(2008, 3, 31), | |
| - datetime(2006, 12, 29): datetime(2007, 2, 28), | |
| - datetime(2006, 12, 31): datetime(2007, 2, 28), | |
| - datetime(2007, 1, 1): datetime(2007, 2, 28), | |
| - datetime(2006, 11, 1): datetime(2006, 12, 29)})) | |
| - | |
| - tests.append((BMonthEnd(-1), | |
| - {datetime(2007, 1, 1): datetime(2006, 12, 29), | |
| - datetime(2008, 6, 30): datetime(2008, 5, 30), | |
| - datetime(2008, 12, 31): datetime(2008, 11, 28), | |
| - datetime(2006, 12, 29): datetime(2006, 11, 30), | |
| - datetime(2006, 12, 30): datetime(2006, 12, 29), | |
| - datetime(2007, 1, 1): datetime(2006, 12, 29)})) | |
| + tests.append((BMonthEnd(), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| + datetime(2008, 1, 31): datetime(2008, 2, 29), | |
| + datetime(2006, 12, 29): datetime(2007, 1, 31), | |
| + datetime(2006, 12, 31): datetime(2007, 1, 31), | |
| + datetime(2007, 1, 1): datetime(2007, 1, 31), | |
| + datetime(2006, 12, 1): datetime(2006, 12, 29) | |
| + })) | |
| + | |
| + tests.append((BMonthEnd(0), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| + datetime(2008, 1, 31): datetime(2008, 1, 31), | |
| + datetime(2006, 12, 29): datetime(2006, 12, 29), | |
| + datetime(2006, 12, 31): datetime(2007, 1, 31), | |
| + datetime(2007, 1, 1): datetime(2007, 1, 31) | |
| + })) | |
| + | |
| + tests.append((BMonthEnd(2), { | |
| + datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| + datetime(2008, 1, 31): datetime(2008, 3, 31), | |
| + datetime(2006, 12, 29): datetime(2007, 2, 28), | |
| + datetime(2006, 12, 31): datetime(2007, 2, 28), | |
| + datetime(2007, 1, 1): datetime(2007, 2, 28), | |
| + datetime(2006, 11, 1): datetime(2006, 12, 29) | |
| + })) | |
| + | |
| + tests.append((BMonthEnd(-1), { | |
| + datetime(2007, 1, 1): datetime(2006, 12, 29), | |
| + datetime(2008, 6, 30): datetime(2008, 5, 30), | |
| + datetime(2008, 12, 31): datetime(2008, 11, 28), | |
| + datetime(2006, 12, 29): datetime(2006, 11, 30), | |
| + datetime(2006, 12, 30): datetime(2006, 12, 29), | |
| + datetime(2007, 1, 1): datetime(2006, 12, 29) | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1534,33 +1602,37 @@ | |
| # NOTE: I'm not entirely happy with the logic here for Begin -ss | |
| # see thread 'offset conventions' on the ML | |
| - tests.append((MonthBegin(), | |
| - {datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| - datetime(2008, 2, 1): datetime(2008, 3, 1), | |
| - datetime(2006, 12, 31): datetime(2007, 1, 1), | |
| - datetime(2006, 12, 1): datetime(2007, 1, 1), | |
| - datetime(2007, 1, 31): datetime(2007, 2, 1)})) | |
| - | |
| - tests.append((MonthBegin(0), | |
| - {datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| - datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| - datetime(2006, 12, 3): datetime(2007, 1, 1), | |
| - datetime(2007, 1, 31): datetime(2007, 2, 1)})) | |
| - | |
| - tests.append((MonthBegin(2), | |
| - {datetime(2008, 2, 29): datetime(2008, 4, 1), | |
| - datetime(2008, 1, 31): datetime(2008, 3, 1), | |
| - datetime(2006, 12, 31): datetime(2007, 2, 1), | |
| - datetime(2007, 12, 28): datetime(2008, 2, 1), | |
| - datetime(2007, 1, 1): datetime(2007, 3, 1), | |
| - datetime(2006, 11, 1): datetime(2007, 1, 1)})) | |
| - | |
| - tests.append((MonthBegin(-1), | |
| - {datetime(2007, 1, 1): datetime(2006, 12, 1), | |
| - datetime(2008, 5, 31): datetime(2008, 5, 1), | |
| - datetime(2008, 12, 31): datetime(2008, 12, 1), | |
| - datetime(2006, 12, 29): datetime(2006, 12, 1), | |
| - datetime(2006, 1, 2): datetime(2006, 1, 1)})) | |
| + tests.append((MonthBegin(), { | |
| + datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| + datetime(2008, 2, 1): datetime(2008, 3, 1), | |
| + datetime(2006, 12, 31): datetime(2007, 1, 1), | |
| + datetime(2006, 12, 1): datetime(2007, 1, 1), | |
| + datetime(2007, 1, 31): datetime(2007, 2, 1) | |
| + })) | |
| + | |
| + tests.append((MonthBegin(0), { | |
| + datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| + datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| + datetime(2006, 12, 3): datetime(2007, 1, 1), | |
| + datetime(2007, 1, 31): datetime(2007, 2, 1) | |
| + })) | |
| + | |
| + tests.append((MonthBegin(2), { | |
| + datetime(2008, 2, 29): datetime(2008, 4, 1), | |
| + datetime(2008, 1, 31): datetime(2008, 3, 1), | |
| + datetime(2006, 12, 31): datetime(2007, 2, 1), | |
| + datetime(2007, 12, 28): datetime(2008, 2, 1), | |
| + datetime(2007, 1, 1): datetime(2007, 3, 1), | |
| + datetime(2006, 11, 1): datetime(2007, 1, 1) | |
| + })) | |
| + | |
| + tests.append((MonthBegin(-1), { | |
| + datetime(2007, 1, 1): datetime(2006, 12, 1), | |
| + datetime(2008, 5, 31): datetime(2008, 5, 1), | |
| + datetime(2008, 12, 31): datetime(2008, 12, 1), | |
| + datetime(2006, 12, 29): datetime(2006, 12, 1), | |
| + datetime(2006, 1, 2): datetime(2006, 1, 1) | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1573,36 +1645,40 @@ | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((MonthEnd(), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| - datetime(2008, 1, 31): datetime(2008, 2, 29), | |
| - datetime(2006, 12, 29): datetime(2006, 12, 31), | |
| - datetime(2006, 12, 31): datetime(2007, 1, 31), | |
| - datetime(2007, 1, 1): datetime(2007, 1, 31), | |
| - datetime(2006, 12, 1): datetime(2006, 12, 31)})) | |
| - | |
| - tests.append((MonthEnd(0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| - datetime(2008, 1, 31): datetime(2008, 1, 31), | |
| - datetime(2006, 12, 29): datetime(2006, 12, 31), | |
| - datetime(2006, 12, 31): datetime(2006, 12, 31), | |
| - datetime(2007, 1, 1): datetime(2007, 1, 31)})) | |
| - | |
| - tests.append((MonthEnd(2), | |
| - {datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| - datetime(2008, 1, 31): datetime(2008, 3, 31), | |
| - datetime(2006, 12, 29): datetime(2007, 1, 31), | |
| - datetime(2006, 12, 31): datetime(2007, 2, 28), | |
| - datetime(2007, 1, 1): datetime(2007, 2, 28), | |
| - datetime(2006, 11, 1): datetime(2006, 12, 31)})) | |
| - | |
| - tests.append((MonthEnd(-1), | |
| - {datetime(2007, 1, 1): datetime(2006, 12, 31), | |
| - datetime(2008, 6, 30): datetime(2008, 5, 31), | |
| - datetime(2008, 12, 31): datetime(2008, 11, 30), | |
| - datetime(2006, 12, 29): datetime(2006, 11, 30), | |
| - datetime(2006, 12, 30): datetime(2006, 11, 30), | |
| - datetime(2007, 1, 1): datetime(2006, 12, 31)})) | |
| + tests.append((MonthEnd(), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| + datetime(2008, 1, 31): datetime(2008, 2, 29), | |
| + datetime(2006, 12, 29): datetime(2006, 12, 31), | |
| + datetime(2006, 12, 31): datetime(2007, 1, 31), | |
| + datetime(2007, 1, 1): datetime(2007, 1, 31), | |
| + datetime(2006, 12, 1): datetime(2006, 12, 31) | |
| + })) | |
| + | |
| + tests.append((MonthEnd(0), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| + datetime(2008, 1, 31): datetime(2008, 1, 31), | |
| + datetime(2006, 12, 29): datetime(2006, 12, 31), | |
| + datetime(2006, 12, 31): datetime(2006, 12, 31), | |
| + datetime(2007, 1, 1): datetime(2007, 1, 31) | |
| + })) | |
| + | |
| + tests.append((MonthEnd(2), { | |
| + datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| + datetime(2008, 1, 31): datetime(2008, 3, 31), | |
| + datetime(2006, 12, 29): datetime(2007, 1, 31), | |
| + datetime(2006, 12, 31): datetime(2007, 2, 28), | |
| + datetime(2007, 1, 1): datetime(2007, 2, 28), | |
| + datetime(2006, 11, 1): datetime(2006, 12, 31) | |
| + })) | |
| + | |
| + tests.append((MonthEnd(-1), { | |
| + datetime(2007, 1, 1): datetime(2006, 12, 31), | |
| + datetime(2008, 6, 30): datetime(2008, 5, 31), | |
| + datetime(2008, 12, 31): datetime(2008, 11, 30), | |
| + datetime(2006, 12, 29): datetime(2006, 11, 30), | |
| + datetime(2006, 12, 30): datetime(2006, 11, 30), | |
| + datetime(2007, 1, 1): datetime(2006, 12, 31) | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1639,9 +1715,12 @@ | |
| _offset = BQuarterBegin | |
| def test_repr(self): | |
| - self.assertEqual(repr(BQuarterBegin()),"<BusinessQuarterBegin: startingMonth=3>") | |
| - self.assertEqual(repr(BQuarterBegin(startingMonth=3)), "<BusinessQuarterBegin: startingMonth=3>") | |
| - self.assertEqual(repr(BQuarterBegin(startingMonth=1)), "<BusinessQuarterBegin: startingMonth=1>") | |
| + self.assertEqual(repr(BQuarterBegin()), | |
| + "<BusinessQuarterBegin: startingMonth=3>") | |
| + self.assertEqual(repr(BQuarterBegin(startingMonth=3)), | |
| + "<BusinessQuarterBegin: startingMonth=3>") | |
| + self.assertEqual(repr(BQuarterBegin(startingMonth=1)), | |
| + "<BusinessQuarterBegin: startingMonth=1>") | |
| def test_isAnchored(self): | |
| self.assertTrue(BQuarterBegin(startingMonth=1).isAnchored()) | |
| @@ -1651,71 +1730,82 @@ | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((BQuarterBegin(startingMonth=1), | |
| - {datetime(2008, 1, 1): datetime(2008, 4, 1), | |
| - datetime(2008, 1, 31): datetime(2008, 4, 1), | |
| - datetime(2008, 2, 15): datetime(2008, 4, 1), | |
| - datetime(2008, 2, 29): datetime(2008, 4, 1), | |
| - datetime(2008, 3, 15): datetime(2008, 4, 1), | |
| - datetime(2008, 3, 31): datetime(2008, 4, 1), | |
| - datetime(2008, 4, 15): datetime(2008, 7, 1), | |
| - datetime(2007, 3, 15): datetime(2007, 4, 2), | |
| - datetime(2007, 2, 28): datetime(2007, 4, 2), | |
| - datetime(2007, 1, 1): datetime(2007, 4, 2), | |
| - datetime(2007, 4, 15): datetime(2007, 7, 2), | |
| - datetime(2007, 7, 1): datetime(2007, 7, 2), | |
| - datetime(2007, 4, 1): datetime(2007, 4, 2), | |
| - datetime(2007, 4, 2): datetime(2007, 7, 2), | |
| - datetime(2008, 4, 30): datetime(2008, 7, 1), })) | |
| - | |
| - tests.append((BQuarterBegin(startingMonth=2), | |
| - {datetime(2008, 1, 1): datetime(2008, 2, 1), | |
| - datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| - datetime(2008, 1, 15): datetime(2008, 2, 1), | |
| - datetime(2008, 2, 29): datetime(2008, 5, 1), | |
| - datetime(2008, 3, 15): datetime(2008, 5, 1), | |
| - datetime(2008, 3, 31): datetime(2008, 5, 1), | |
| - datetime(2008, 4, 15): datetime(2008, 5, 1), | |
| - datetime(2008, 8, 15): datetime(2008, 11, 3), | |
| - datetime(2008, 9, 15): datetime(2008, 11, 3), | |
| - datetime(2008, 11, 1): datetime(2008, 11, 3), | |
| - datetime(2008, 4, 30): datetime(2008, 5, 1), })) | |
| - | |
| - tests.append((BQuarterBegin(startingMonth=1, n=0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| - datetime(2007, 12, 31): datetime(2008, 1, 1), | |
| - datetime(2008, 2, 15): datetime(2008, 4, 1), | |
| - datetime(2008, 2, 29): datetime(2008, 4, 1), | |
| - datetime(2008, 1, 15): datetime(2008, 4, 1), | |
| - datetime(2008, 2, 27): datetime(2008, 4, 1), | |
| - datetime(2008, 3, 15): datetime(2008, 4, 1), | |
| - datetime(2007, 4, 1): datetime(2007, 4, 2), | |
| - datetime(2007, 4, 2): datetime(2007, 4, 2), | |
| - datetime(2007, 7, 1): datetime(2007, 7, 2), | |
| - datetime(2007, 4, 15): datetime(2007, 7, 2), | |
| - datetime(2007, 7, 2): datetime(2007, 7, 2), })) | |
| - | |
| - tests.append((BQuarterBegin(startingMonth=1, n=-1), | |
| - {datetime(2008, 1, 1): datetime(2007, 10, 1), | |
| - datetime(2008, 1, 31): datetime(2008, 1, 1), | |
| - datetime(2008, 2, 15): datetime(2008, 1, 1), | |
| - datetime(2008, 2, 29): datetime(2008, 1, 1), | |
| - datetime(2008, 3, 15): datetime(2008, 1, 1), | |
| - datetime(2008, 3, 31): datetime(2008, 1, 1), | |
| - datetime(2008, 4, 15): datetime(2008, 4, 1), | |
| - datetime(2007, 7, 3): datetime(2007, 7, 2), | |
| - datetime(2007, 4, 3): datetime(2007, 4, 2), | |
| - datetime(2007, 7, 2): datetime(2007, 4, 2), | |
| - datetime(2008, 4, 1): datetime(2008, 1, 1), })) | |
| - | |
| - tests.append((BQuarterBegin(startingMonth=1, n=2), | |
| - {datetime(2008, 1, 1): datetime(2008, 7, 1), | |
| - datetime(2008, 1, 15): datetime(2008, 7, 1), | |
| - datetime(2008, 2, 29): datetime(2008, 7, 1), | |
| - datetime(2008, 3, 15): datetime(2008, 7, 1), | |
| - datetime(2007, 3, 31): datetime(2007, 7, 2), | |
| - datetime(2007, 4, 15): datetime(2007, 10, 1), | |
| - datetime(2008, 4, 30): datetime(2008, 10, 1), })) | |
| + tests.append((BQuarterBegin(startingMonth=1), { | |
| + datetime(2008, 1, 1): datetime(2008, 4, 1), | |
| + datetime(2008, 1, 31): datetime(2008, 4, 1), | |
| + datetime(2008, 2, 15): datetime(2008, 4, 1), | |
| + datetime(2008, 2, 29): datetime(2008, 4, 1), | |
| + datetime(2008, 3, 15): datetime(2008, 4, 1), | |
| + datetime(2008, 3, 31): datetime(2008, 4, 1), | |
| + datetime(2008, 4, 15): datetime(2008, 7, 1), | |
| + datetime(2007, 3, 15): datetime(2007, 4, 2), | |
| + datetime(2007, 2, 28): datetime(2007, 4, 2), | |
| + datetime(2007, 1, 1): datetime(2007, 4, 2), | |
| + datetime(2007, 4, 15): datetime(2007, 7, 2), | |
| + datetime(2007, 7, 1): datetime(2007, 7, 2), | |
| + datetime(2007, 4, 1): datetime(2007, 4, 2), | |
| + datetime(2007, 4, 2): datetime(2007, 7, 2), | |
| + datetime(2008, 4, 30): datetime(2008, 7, 1), | |
| + })) | |
| + | |
| + tests.append((BQuarterBegin(startingMonth=2), { | |
| + datetime(2008, 1, 1): datetime(2008, 2, 1), | |
| + datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| + datetime(2008, 1, 15): datetime(2008, 2, 1), | |
| + datetime(2008, 2, 29): datetime(2008, 5, 1), | |
| + datetime(2008, 3, 15): datetime(2008, 5, 1), | |
| + datetime(2008, 3, 31): datetime(2008, 5, 1), | |
| + datetime(2008, 4, 15): datetime(2008, 5, 1), | |
| + datetime(2008, 8, 15): datetime(2008, 11, 3), | |
| + datetime(2008, 9, 15): datetime(2008, 11, 3), | |
| + datetime(2008, 11, 1): datetime(2008, 11, 3), | |
| + datetime(2008, 4, 30): datetime(2008, 5, 1), | |
| + })) | |
| + | |
| + tests.append((BQuarterBegin(startingMonth=1, | |
| + n=0), | |
| + { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| + datetime(2007, 12, 31): datetime(2008, 1, 1), | |
| + datetime(2008, 2, 15): datetime(2008, 4, 1), | |
| + datetime(2008, 2, 29): datetime(2008, 4, 1), | |
| + datetime(2008, 1, 15): datetime(2008, 4, 1), | |
| + datetime(2008, 2, 27): datetime(2008, 4, 1), | |
| + datetime(2008, 3, 15): datetime(2008, 4, 1), | |
| + datetime(2007, 4, 1): datetime(2007, 4, 2), | |
| + datetime(2007, 4, 2): datetime(2007, 4, 2), | |
| + datetime(2007, 7, 1): datetime(2007, 7, 2), | |
| + datetime(2007, 4, 15): datetime(2007, 7, 2), | |
| + datetime(2007, 7, 2): datetime(2007, 7, 2), | |
| + })) | |
| + | |
| + tests.append((BQuarterBegin(startingMonth=1, | |
| + n=-1), | |
| + { | |
| + datetime(2008, 1, 1): datetime(2007, 10, 1), | |
| + datetime(2008, 1, 31): datetime(2008, 1, 1), | |
| + datetime(2008, 2, 15): datetime(2008, 1, 1), | |
| + datetime(2008, 2, 29): datetime(2008, 1, 1), | |
| + datetime(2008, 3, 15): datetime(2008, 1, 1), | |
| + datetime(2008, 3, 31): datetime(2008, 1, 1), | |
| + datetime(2008, 4, 15): datetime(2008, 4, 1), | |
| + datetime(2007, 7, 3): datetime(2007, 7, 2), | |
| + datetime(2007, 4, 3): datetime(2007, 4, 2), | |
| + datetime(2007, 7, 2): datetime(2007, 4, 2), | |
| + datetime(2008, 4, 1): datetime(2008, 1, 1), | |
| + })) | |
| + | |
| + tests.append((BQuarterBegin(startingMonth=1, | |
| + n=2), | |
| + { | |
| + datetime(2008, 1, 1): datetime(2008, 7, 1), | |
| + datetime(2008, 1, 15): datetime(2008, 7, 1), | |
| + datetime(2008, 2, 29): datetime(2008, 7, 1), | |
| + datetime(2008, 3, 15): datetime(2008, 7, 1), | |
| + datetime(2007, 3, 31): datetime(2007, 7, 2), | |
| + datetime(2007, 4, 15): datetime(2007, 10, 1), | |
| + datetime(2008, 4, 30): datetime(2008, 10, 1), | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1730,9 +1820,12 @@ | |
| _offset = BQuarterEnd | |
| def test_repr(self): | |
| - self.assertEqual(repr(BQuarterEnd()),"<BusinessQuarterEnd: startingMonth=3>") | |
| - self.assertEqual(repr(BQuarterEnd(startingMonth=3)), "<BusinessQuarterEnd: startingMonth=3>") | |
| - self.assertEqual(repr(BQuarterEnd(startingMonth=1)), "<BusinessQuarterEnd: startingMonth=1>") | |
| + self.assertEqual(repr(BQuarterEnd()), | |
| + "<BusinessQuarterEnd: startingMonth=3>") | |
| + self.assertEqual(repr(BQuarterEnd(startingMonth=3)), | |
| + "<BusinessQuarterEnd: startingMonth=3>") | |
| + self.assertEqual(repr(BQuarterEnd(startingMonth=1)), | |
| + "<BusinessQuarterEnd: startingMonth=1>") | |
| def test_isAnchored(self): | |
| self.assertTrue(BQuarterEnd(startingMonth=1).isAnchored()) | |
| @@ -1742,54 +1835,65 @@ | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((BQuarterEnd(startingMonth=1), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| - datetime(2008, 1, 31): datetime(2008, 4, 30), | |
| - datetime(2008, 2, 15): datetime(2008, 4, 30), | |
| - datetime(2008, 2, 29): datetime(2008, 4, 30), | |
| - datetime(2008, 3, 15): datetime(2008, 4, 30), | |
| - datetime(2008, 3, 31): datetime(2008, 4, 30), | |
| - datetime(2008, 4, 15): datetime(2008, 4, 30), | |
| - datetime(2008, 4, 30): datetime(2008, 7, 31), })) | |
| - | |
| - tests.append((BQuarterEnd(startingMonth=2), | |
| - {datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| - datetime(2008, 1, 31): datetime(2008, 2, 29), | |
| - datetime(2008, 2, 15): datetime(2008, 2, 29), | |
| - datetime(2008, 2, 29): datetime(2008, 5, 30), | |
| - datetime(2008, 3, 15): datetime(2008, 5, 30), | |
| - datetime(2008, 3, 31): datetime(2008, 5, 30), | |
| - datetime(2008, 4, 15): datetime(2008, 5, 30), | |
| - datetime(2008, 4, 30): datetime(2008, 5, 30), })) | |
| - | |
| - tests.append((BQuarterEnd(startingMonth=1, n=0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| - datetime(2008, 1, 31): datetime(2008, 1, 31), | |
| - datetime(2008, 2, 15): datetime(2008, 4, 30), | |
| - datetime(2008, 2, 29): datetime(2008, 4, 30), | |
| - datetime(2008, 3, 15): datetime(2008, 4, 30), | |
| - datetime(2008, 3, 31): datetime(2008, 4, 30), | |
| - datetime(2008, 4, 15): datetime(2008, 4, 30), | |
| - datetime(2008, 4, 30): datetime(2008, 4, 30), })) | |
| - | |
| - tests.append((BQuarterEnd(startingMonth=1, n=-1), | |
| - {datetime(2008, 1, 1): datetime(2007, 10, 31), | |
| - datetime(2008, 1, 31): datetime(2007, 10, 31), | |
| - datetime(2008, 2, 15): datetime(2008, 1, 31), | |
| - datetime(2008, 2, 29): datetime(2008, 1, 31), | |
| - datetime(2008, 3, 15): datetime(2008, 1, 31), | |
| - datetime(2008, 3, 31): datetime(2008, 1, 31), | |
| - datetime(2008, 4, 15): datetime(2008, 1, 31), | |
| - datetime(2008, 4, 30): datetime(2008, 1, 31), })) | |
| - | |
| - tests.append((BQuarterEnd(startingMonth=1, n=2), | |
| - {datetime(2008, 1, 31): datetime(2008, 7, 31), | |
| - datetime(2008, 2, 15): datetime(2008, 7, 31), | |
| - datetime(2008, 2, 29): datetime(2008, 7, 31), | |
| - datetime(2008, 3, 15): datetime(2008, 7, 31), | |
| - datetime(2008, 3, 31): datetime(2008, 7, 31), | |
| - datetime(2008, 4, 15): datetime(2008, 7, 31), | |
| - datetime(2008, 4, 30): datetime(2008, 10, 31), })) | |
| + tests.append((BQuarterEnd(startingMonth=1), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| + datetime(2008, 1, 31): datetime(2008, 4, 30), | |
| + datetime(2008, 2, 15): datetime(2008, 4, 30), | |
| + datetime(2008, 2, 29): datetime(2008, 4, 30), | |
| + datetime(2008, 3, 15): datetime(2008, 4, 30), | |
| + datetime(2008, 3, 31): datetime(2008, 4, 30), | |
| + datetime(2008, 4, 15): datetime(2008, 4, 30), | |
| + datetime(2008, 4, 30): datetime(2008, 7, 31), | |
| + })) | |
| + | |
| + tests.append((BQuarterEnd(startingMonth=2), { | |
| + datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| + datetime(2008, 1, 31): datetime(2008, 2, 29), | |
| + datetime(2008, 2, 15): datetime(2008, 2, 29), | |
| + datetime(2008, 2, 29): datetime(2008, 5, 30), | |
| + datetime(2008, 3, 15): datetime(2008, 5, 30), | |
| + datetime(2008, 3, 31): datetime(2008, 5, 30), | |
| + datetime(2008, 4, 15): datetime(2008, 5, 30), | |
| + datetime(2008, 4, 30): datetime(2008, 5, 30), | |
| + })) | |
| + | |
| + tests.append((BQuarterEnd(startingMonth=1, | |
| + n=0), | |
| + { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| + datetime(2008, 1, 31): datetime(2008, 1, 31), | |
| + datetime(2008, 2, 15): datetime(2008, 4, 30), | |
| + datetime(2008, 2, 29): datetime(2008, 4, 30), | |
| + datetime(2008, 3, 15): datetime(2008, 4, 30), | |
| + datetime(2008, 3, 31): datetime(2008, 4, 30), | |
| + datetime(2008, 4, 15): datetime(2008, 4, 30), | |
| + datetime(2008, 4, 30): datetime(2008, 4, 30), | |
| + })) | |
| + | |
| + tests.append((BQuarterEnd(startingMonth=1, | |
| + n=-1), | |
| + { | |
| + datetime(2008, 1, 1): datetime(2007, 10, 31), | |
| + datetime(2008, 1, 31): datetime(2007, 10, 31), | |
| + datetime(2008, 2, 15): datetime(2008, 1, 31), | |
| + datetime(2008, 2, 29): datetime(2008, 1, 31), | |
| + datetime(2008, 3, 15): datetime(2008, 1, 31), | |
| + datetime(2008, 3, 31): datetime(2008, 1, 31), | |
| + datetime(2008, 4, 15): datetime(2008, 1, 31), | |
| + datetime(2008, 4, 30): datetime(2008, 1, 31), | |
| + })) | |
| + | |
| + tests.append((BQuarterEnd(startingMonth=1, | |
| + n=2), | |
| + { | |
| + datetime(2008, 1, 31): datetime(2008, 7, 31), | |
| + datetime(2008, 2, 15): datetime(2008, 7, 31), | |
| + datetime(2008, 2, 29): datetime(2008, 7, 31), | |
| + datetime(2008, 3, 15): datetime(2008, 7, 31), | |
| + datetime(2008, 3, 31): datetime(2008, 7, 31), | |
| + datetime(2008, 4, 15): datetime(2008, 7, 31), | |
| + datetime(2008, 4, 30): datetime(2008, 10, 31), | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -1801,57 +1905,90 @@ | |
| def test_onOffset(self): | |
| - tests = [ | |
| - (BQuarterEnd(1, startingMonth=1), datetime(2008, 1, 31), True), | |
| - (BQuarterEnd(1, startingMonth=1), datetime(2007, 12, 31), False), | |
| - (BQuarterEnd(1, startingMonth=1), datetime(2008, 2, 29), False), | |
| - (BQuarterEnd(1, startingMonth=1), datetime(2007, 3, 30), False), | |
| - (BQuarterEnd(1, startingMonth=1), datetime(2007, 3, 31), False), | |
| - (BQuarterEnd(1, startingMonth=1), datetime(2008, 4, 30), True), | |
| - (BQuarterEnd(1, startingMonth=1), datetime(2008, 5, 30), False), | |
| - (BQuarterEnd(1, startingMonth=1), datetime(2007, 6, 29), False), | |
| - (BQuarterEnd(1, startingMonth=1), datetime(2007, 6, 30), False), | |
| - (BQuarterEnd(1, startingMonth=2), datetime(2008, 1, 31), False), | |
| - (BQuarterEnd(1, startingMonth=2), datetime(2007, 12, 31), False), | |
| - (BQuarterEnd(1, startingMonth=2), datetime(2008, 2, 29), True), | |
| - (BQuarterEnd(1, startingMonth=2), datetime(2007, 3, 30), False), | |
| - (BQuarterEnd(1, startingMonth=2), datetime(2007, 3, 31), False), | |
| - (BQuarterEnd(1, startingMonth=2), datetime(2008, 4, 30), False), | |
| - (BQuarterEnd(1, startingMonth=2), datetime(2008, 5, 30), True), | |
| - (BQuarterEnd(1, startingMonth=2), datetime(2007, 6, 29), False), | |
| - (BQuarterEnd(1, startingMonth=2), datetime(2007, 6, 30), False), | |
| - (BQuarterEnd(1, startingMonth=3), datetime(2008, 1, 31), False), | |
| - (BQuarterEnd(1, startingMonth=3), datetime(2007, 12, 31), True), | |
| - (BQuarterEnd(1, startingMonth=3), datetime(2008, 2, 29), False), | |
| - (BQuarterEnd(1, startingMonth=3), datetime(2007, 3, 30), True), | |
| - (BQuarterEnd(1, startingMonth=3), datetime(2007, 3, 31), False), | |
| - (BQuarterEnd(1, startingMonth=3), datetime(2008, 4, 30), False), | |
| - (BQuarterEnd(1, startingMonth=3), datetime(2008, 5, 30), False), | |
| - (BQuarterEnd(1, startingMonth=3), datetime(2007, 6, 29), True), | |
| - (BQuarterEnd(1, startingMonth=3), datetime(2007, 6, 30), False), | |
| - ] | |
| + tests = [(BQuarterEnd(1, | |
| + startingMonth=1), datetime(2008, 1, 31), True), | |
| + (BQuarterEnd(1, | |
| + startingMonth=1), datetime(2007, 12, 31), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=1), datetime(2008, 2, 29), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=1), datetime(2007, 3, 30), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=1), datetime(2007, 3, 31), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=1), datetime(2008, 4, 30), True), | |
| + (BQuarterEnd(1, | |
| + startingMonth=1), datetime(2008, 5, 30), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=1), datetime(2007, 6, 29), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=1), datetime(2007, 6, 30), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=2), datetime(2008, 1, 31), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=2), datetime(2007, 12, 31), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=2), datetime(2008, 2, 29), True), | |
| + (BQuarterEnd(1, | |
| + startingMonth=2), datetime(2007, 3, 30), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=2), datetime(2007, 3, 31), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=2), datetime(2008, 4, 30), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=2), datetime(2008, 5, 30), True), | |
| + (BQuarterEnd(1, | |
| + startingMonth=2), datetime(2007, 6, 29), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=2), datetime(2007, 6, 30), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=3), datetime(2008, 1, 31), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=3), datetime(2007, 12, 31), True), | |
| + (BQuarterEnd(1, | |
| + startingMonth=3), datetime(2008, 2, 29), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=3), datetime(2007, 3, 30), True), | |
| + (BQuarterEnd(1, | |
| + startingMonth=3), datetime(2007, 3, 31), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=3), datetime(2008, 4, 30), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=3), datetime(2008, 5, 30), False), | |
| + (BQuarterEnd(1, | |
| + startingMonth=3), datetime(2007, 6, 29), True), | |
| + (BQuarterEnd(1, | |
| + startingMonth=3), datetime(2007, 6, 30), False), ] | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| + | |
| def makeFY5253LastOfMonthQuarter(*args, **kwds): | |
| return FY5253Quarter(*args, variation="last", **kwds) | |
| + | |
| def makeFY5253NearestEndMonthQuarter(*args, **kwds): | |
| return FY5253Quarter(*args, variation="nearest", **kwds) | |
| + | |
| def makeFY5253NearestEndMonth(*args, **kwds): | |
| return FY5253(*args, variation="nearest", **kwds) | |
| + | |
| def makeFY5253LastOfMonth(*args, **kwds): | |
| return FY5253(*args, variation="last", **kwds) | |
| + | |
| class TestFY5253LastOfMonth(Base): | |
| - | |
| def test_onOffset(self): | |
| - offset_lom_sat_aug = makeFY5253LastOfMonth(1, startingMonth=8, weekday=WeekDay.SAT) | |
| - offset_lom_sat_sep = makeFY5253LastOfMonth(1, startingMonth=9, weekday=WeekDay.SAT) | |
| + offset_lom_sat_aug = makeFY5253LastOfMonth(1, | |
| + startingMonth=8, | |
| + weekday=WeekDay.SAT) | |
| + offset_lom_sat_sep = makeFY5253LastOfMonth(1, | |
| + startingMonth=9, | |
| + weekday=WeekDay.SAT) | |
| tests = [ | |
| #From Wikipedia (see: http://en.wikipedia.org/wiki/4%E2%80%934%E2%80%935_calendar#Last_Saturday_of_the_month_at_fiscal_year_end) | |
| @@ -1869,14 +2006,12 @@ | |
| (offset_lom_sat_aug, datetime(2017, 8, 26), True), | |
| (offset_lom_sat_aug, datetime(2018, 8, 25), True), | |
| (offset_lom_sat_aug, datetime(2019, 8, 31), True), | |
| - | |
| (offset_lom_sat_aug, datetime(2006, 8, 27), False), | |
| (offset_lom_sat_aug, datetime(2007, 8, 28), False), | |
| (offset_lom_sat_aug, datetime(2008, 8, 31), False), | |
| (offset_lom_sat_aug, datetime(2009, 8, 30), False), | |
| (offset_lom_sat_aug, datetime(2010, 8, 29), False), | |
| (offset_lom_sat_aug, datetime(2011, 8, 28), False), | |
| - | |
| (offset_lom_sat_aug, datetime(2006, 8, 25), False), | |
| (offset_lom_sat_aug, datetime(2007, 8, 24), False), | |
| (offset_lom_sat_aug, datetime(2008, 8, 29), False), | |
| @@ -1884,20 +2019,21 @@ | |
| (offset_lom_sat_aug, datetime(2010, 8, 27), False), | |
| (offset_lom_sat_aug, datetime(2011, 8, 26), False), | |
| (offset_lom_sat_aug, datetime(2019, 8, 30), False), | |
| - | |
| #From GMCR (see for example: http://yahoo.brand.edgar-online.com/Default.aspx?companyid=3184&formtypeID=7) | |
| (offset_lom_sat_sep, datetime(2010, 9, 25), True), | |
| (offset_lom_sat_sep, datetime(2011, 9, 24), True), | |
| (offset_lom_sat_sep, datetime(2012, 9, 29), True), | |
| - | |
| ] | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| def test_apply(self): | |
| - offset_lom_aug_sat = makeFY5253LastOfMonth(startingMonth=8, weekday=WeekDay.SAT) | |
| - offset_lom_aug_sat_1 = makeFY5253LastOfMonth(n=1, startingMonth=8, weekday=WeekDay.SAT) | |
| + offset_lom_aug_sat = makeFY5253LastOfMonth(startingMonth=8, | |
| + weekday=WeekDay.SAT) | |
| + offset_lom_aug_sat_1 = makeFY5253LastOfMonth(n=1, | |
| + startingMonth=8, | |
| + weekday=WeekDay.SAT) | |
| date_seq_lom_aug_sat = [datetime(2006, 8, 26), datetime(2007, 8, 25), | |
| datetime(2008, 8, 30), datetime(2009, 8, 29), | |
| @@ -1906,13 +2042,16 @@ | |
| datetime(2014, 8, 30), datetime(2015, 8, 29), | |
| datetime(2016, 8, 27)] | |
| - tests = [ | |
| - (offset_lom_aug_sat, date_seq_lom_aug_sat), | |
| + tests = [(offset_lom_aug_sat, date_seq_lom_aug_sat), | |
| (offset_lom_aug_sat_1, date_seq_lom_aug_sat), | |
| - (offset_lom_aug_sat, [datetime(2006, 8, 25)] + date_seq_lom_aug_sat), | |
| - (offset_lom_aug_sat_1, [datetime(2006, 8, 27)] + date_seq_lom_aug_sat[1:]), | |
| - (makeFY5253LastOfMonth(n=-1, startingMonth=8, weekday=WeekDay.SAT), list(reversed(date_seq_lom_aug_sat))), | |
| - ] | |
| + (offset_lom_aug_sat, | |
| + [datetime(2006, 8, 25)] + date_seq_lom_aug_sat), | |
| + (offset_lom_aug_sat_1, | |
| + [datetime(2006, 8, 27)] + date_seq_lom_aug_sat[1:]), | |
| + (makeFY5253LastOfMonth(n=-1, | |
| + startingMonth=8, | |
| + weekday=WeekDay.SAT), | |
| + list(reversed(date_seq_lom_aug_sat))), ] | |
| for test in tests: | |
| offset, data = test | |
| current = data[0] | |
| @@ -1920,72 +2059,100 @@ | |
| current = current + offset | |
| self.assertEqual(current, datum) | |
| + | |
| class TestFY5253NearestEndMonth(Base): | |
| - | |
| def test_get_target_month_end(self): | |
| - self.assertEqual(makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SAT).get_target_month_end(datetime(2013,1,1)), datetime(2013,8,31)) | |
| - self.assertEqual(makeFY5253NearestEndMonth(startingMonth=12, weekday=WeekDay.SAT).get_target_month_end(datetime(2013,1,1)), datetime(2013,12,31)) | |
| - self.assertEqual(makeFY5253NearestEndMonth(startingMonth=2, weekday=WeekDay.SAT).get_target_month_end(datetime(2013,1,1)), datetime(2013,2,28)) | |
| + self.assertEqual(makeFY5253NearestEndMonth( | |
| + startingMonth=8, | |
| + weekday=WeekDay.SAT).get_target_month_end(datetime(2013, 1, 1)), | |
| + datetime(2013, 8, 31)) | |
| + self.assertEqual(makeFY5253NearestEndMonth( | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT).get_target_month_end(datetime(2013, 1, 1)), | |
| + datetime(2013, 12, 31)) | |
| + self.assertEqual(makeFY5253NearestEndMonth( | |
| + startingMonth=2, | |
| + weekday=WeekDay.SAT).get_target_month_end(datetime(2013, 1, 1)), | |
| + datetime(2013, 2, 28)) | |
| def test_get_year_end(self): | |
| - self.assertEqual(makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SAT).get_year_end(datetime(2013,1,1)), datetime(2013,8,31)) | |
| - self.assertEqual(makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SUN).get_year_end(datetime(2013,1,1)), datetime(2013,9,1)) | |
| - self.assertEqual(makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.FRI).get_year_end(datetime(2013,1,1)), datetime(2013,8,30)) | |
| - | |
| - offset_n = FY5253(weekday=WeekDay.TUE, startingMonth=12, | |
| - variation="nearest") | |
| - self.assertEqual(offset_n.get_year_end(datetime(2012,1,1)), datetime(2013,1,1)) | |
| - self.assertEqual(offset_n.get_year_end(datetime(2012,1,10)), datetime(2013,1,1)) | |
| - | |
| - self.assertEqual(offset_n.get_year_end(datetime(2013,1,1)), datetime(2013,12,31)) | |
| - self.assertEqual(offset_n.get_year_end(datetime(2013,1,2)), datetime(2013,12,31)) | |
| - self.assertEqual(offset_n.get_year_end(datetime(2013,1,3)), datetime(2013,12,31)) | |
| - self.assertEqual(offset_n.get_year_end(datetime(2013,1,10)), datetime(2013,12,31)) | |
| + self.assertEqual(makeFY5253NearestEndMonth( | |
| + startingMonth=8, | |
| + weekday=WeekDay.SAT).get_year_end(datetime(2013, 1, 1)), | |
| + datetime(2013, 8, 31)) | |
| + self.assertEqual(makeFY5253NearestEndMonth( | |
| + startingMonth=8, | |
| + weekday=WeekDay.SUN).get_year_end(datetime(2013, 1, 1)), | |
| + datetime(2013, 9, 1)) | |
| + self.assertEqual(makeFY5253NearestEndMonth( | |
| + startingMonth=8, | |
| + weekday=WeekDay.FRI).get_year_end(datetime(2013, 1, 1)), | |
| + datetime(2013, 8, 30)) | |
| + | |
| + offset_n = FY5253(weekday=WeekDay.TUE, | |
| + startingMonth=12, | |
| + variation="nearest") | |
| + self.assertEqual(offset_n.get_year_end(datetime(2012, 1, 1)), | |
| + datetime(2013, 1, 1)) | |
| + self.assertEqual(offset_n.get_year_end(datetime(2012, 1, 10)), | |
| + datetime(2013, 1, 1)) | |
| + | |
| + self.assertEqual(offset_n.get_year_end(datetime(2013, 1, 1)), | |
| + datetime(2013, 12, 31)) | |
| + self.assertEqual(offset_n.get_year_end(datetime(2013, 1, 2)), | |
| + datetime(2013, 12, 31)) | |
| + self.assertEqual(offset_n.get_year_end(datetime(2013, 1, 3)), | |
| + datetime(2013, 12, 31)) | |
| + self.assertEqual(offset_n.get_year_end(datetime(2013, 1, 10)), | |
| + datetime(2013, 12, 31)) | |
| JNJ = FY5253(n=1, startingMonth=12, weekday=6, variation="nearest") | |
| - self.assertEqual(JNJ.get_year_end(datetime(2006, 1, 1)), datetime(2006, 12, 31)) | |
| + self.assertEqual(JNJ.get_year_end(datetime(2006, 1, 1)), | |
| + datetime(2006, 12, 31)) | |
| def test_onOffset(self): | |
| - offset_lom_aug_sat = makeFY5253NearestEndMonth(1, startingMonth=8, weekday=WeekDay.SAT) | |
| - offset_lom_aug_thu = makeFY5253NearestEndMonth(1, startingMonth=8, weekday=WeekDay.THU) | |
| - offset_n = FY5253(weekday=WeekDay.TUE, startingMonth=12, | |
| - variation="nearest") | |
| + offset_lom_aug_sat = makeFY5253NearestEndMonth(1, | |
| + startingMonth=8, | |
| + weekday=WeekDay.SAT) | |
| + offset_lom_aug_thu = makeFY5253NearestEndMonth(1, | |
| + startingMonth=8, | |
| + weekday=WeekDay.THU) | |
| + offset_n = FY5253(weekday=WeekDay.TUE, | |
| + startingMonth=12, | |
| + variation="nearest") | |
| tests = [ | |
| -# From Wikipedia (see: http://en.wikipedia.org/wiki/4%E2%80%934%E2%80%935_calendar#Saturday_nearest_the_end_of_month) | |
| -# 2006-09-02 2006 September 2 | |
| -# 2007-09-01 2007 September 1 | |
| -# 2008-08-30 2008 August 30 (leap year) | |
| -# 2009-08-29 2009 August 29 | |
| -# 2010-08-28 2010 August 28 | |
| -# 2011-09-03 2011 September 3 | |
| -# 2012-09-01 2012 September 1 (leap year) | |
| -# 2013-08-31 2013 August 31 | |
| -# 2014-08-30 2014 August 30 | |
| -# 2015-08-29 2015 August 29 | |
| -# 2016-09-03 2016 September 3 (leap year) | |
| -# 2017-09-02 2017 September 2 | |
| -# 2018-09-01 2018 September 1 | |
| -# 2019-08-31 2019 August 31 | |
| + # From Wikipedia (see: http://en.wikipedia.org/wiki/4%E2%80%934%E2%80%935_calendar#Saturday_nearest_the_end_of_month) | |
| + # 2006-09-02 2006 September 2 | |
| + # 2007-09-01 2007 September 1 | |
| + # 2008-08-30 2008 August 30 (leap year) | |
| + # 2009-08-29 2009 August 29 | |
| + # 2010-08-28 2010 August 28 | |
| + # 2011-09-03 2011 September 3 | |
| + # 2012-09-01 2012 September 1 (leap year) | |
| + # 2013-08-31 2013 August 31 | |
| + # 2014-08-30 2014 August 30 | |
| + # 2015-08-29 2015 August 29 | |
| + # 2016-09-03 2016 September 3 (leap year) | |
| + # 2017-09-02 2017 September 2 | |
| + # 2018-09-01 2018 September 1 | |
| + # 2019-08-31 2019 August 31 | |
| (offset_lom_aug_sat, datetime(2006, 9, 2), True), | |
| (offset_lom_aug_sat, datetime(2007, 9, 1), True), | |
| (offset_lom_aug_sat, datetime(2008, 8, 30), True), | |
| (offset_lom_aug_sat, datetime(2009, 8, 29), True), | |
| (offset_lom_aug_sat, datetime(2010, 8, 28), True), | |
| (offset_lom_aug_sat, datetime(2011, 9, 3), True), | |
| - | |
| (offset_lom_aug_sat, datetime(2016, 9, 3), True), | |
| (offset_lom_aug_sat, datetime(2017, 9, 2), True), | |
| (offset_lom_aug_sat, datetime(2018, 9, 1), True), | |
| (offset_lom_aug_sat, datetime(2019, 8, 31), True), | |
| - | |
| (offset_lom_aug_sat, datetime(2006, 8, 27), False), | |
| (offset_lom_aug_sat, datetime(2007, 8, 28), False), | |
| (offset_lom_aug_sat, datetime(2008, 8, 31), False), | |
| (offset_lom_aug_sat, datetime(2009, 8, 30), False), | |
| (offset_lom_aug_sat, datetime(2010, 8, 29), False), | |
| (offset_lom_aug_sat, datetime(2011, 8, 28), False), | |
| - | |
| (offset_lom_aug_sat, datetime(2006, 8, 25), False), | |
| (offset_lom_aug_sat, datetime(2007, 8, 24), False), | |
| (offset_lom_aug_sat, datetime(2008, 8, 29), False), | |
| @@ -1993,11 +2160,9 @@ | |
| (offset_lom_aug_sat, datetime(2010, 8, 27), False), | |
| (offset_lom_aug_sat, datetime(2011, 8, 26), False), | |
| (offset_lom_aug_sat, datetime(2019, 8, 30), False), | |
| - | |
| #From Micron, see: http://google.brand.edgar-online.com/?sym=MU&formtypeID=7 | |
| (offset_lom_aug_thu, datetime(2012, 8, 30), True), | |
| (offset_lom_aug_thu, datetime(2011, 9, 1), True), | |
| - | |
| (offset_n, datetime(2012, 12, 31), False), | |
| (offset_n, datetime(2013, 1, 1), True), | |
| (offset_n, datetime(2013, 1, 2), False), | |
| @@ -2017,20 +2182,45 @@ | |
| datetime(2011, 1, 2), datetime(2012, 1, 1), | |
| datetime(2012, 12, 30)] | |
| - DEC_SAT = FY5253(n=-1, startingMonth=12, weekday=5, variation="nearest") | |
| - | |
| - tests = [ | |
| - (makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SAT), date_seq_nem_8_sat), | |
| - (makeFY5253NearestEndMonth(n=1, startingMonth=8, weekday=WeekDay.SAT), date_seq_nem_8_sat), | |
| - (makeFY5253NearestEndMonth(startingMonth=8, weekday=WeekDay.SAT), [datetime(2006, 9, 1)] + date_seq_nem_8_sat), | |
| - (makeFY5253NearestEndMonth(n=1, startingMonth=8, weekday=WeekDay.SAT), [datetime(2006, 9, 3)] + date_seq_nem_8_sat[1:]), | |
| - (makeFY5253NearestEndMonth(n=-1, startingMonth=8, weekday=WeekDay.SAT), list(reversed(date_seq_nem_8_sat))), | |
| - (makeFY5253NearestEndMonth(n=1, startingMonth=12, weekday=WeekDay.SUN), JNJ), | |
| - (makeFY5253NearestEndMonth(n=-1, startingMonth=12, weekday=WeekDay.SUN), list(reversed(JNJ))), | |
| - (makeFY5253NearestEndMonth(n=1, startingMonth=12, weekday=WeekDay.SUN), [datetime(2005,1,2), datetime(2006, 1, 1)]), | |
| - (makeFY5253NearestEndMonth(n=1, startingMonth=12, weekday=WeekDay.SUN), [datetime(2006,1,2), datetime(2006, 12, 31)]), | |
| - (DEC_SAT, [datetime(2013,1,15), datetime(2012,12,29)]) | |
| - ] | |
| + DEC_SAT = FY5253(n=-1, | |
| + startingMonth=12, | |
| + weekday=5, | |
| + variation="nearest") | |
| + | |
| + tests = [(makeFY5253NearestEndMonth(startingMonth=8, | |
| + weekday=WeekDay.SAT), | |
| + date_seq_nem_8_sat), | |
| + (makeFY5253NearestEndMonth(n=1, | |
| + startingMonth=8, | |
| + weekday=WeekDay.SAT), | |
| + date_seq_nem_8_sat), | |
| + (makeFY5253NearestEndMonth(startingMonth=8, | |
| + weekday=WeekDay.SAT), | |
| + [datetime(2006, 9, 1)] + date_seq_nem_8_sat), | |
| + (makeFY5253NearestEndMonth(n=1, | |
| + startingMonth=8, | |
| + weekday=WeekDay.SAT), | |
| + [datetime(2006, 9, 3)] + date_seq_nem_8_sat[1:]), | |
| + (makeFY5253NearestEndMonth(n=-1, | |
| + startingMonth=8, | |
| + weekday=WeekDay.SAT), | |
| + list(reversed(date_seq_nem_8_sat))), | |
| + (makeFY5253NearestEndMonth(n=1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SUN), JNJ), | |
| + (makeFY5253NearestEndMonth(n=-1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SUN), | |
| + list(reversed(JNJ))), | |
| + (makeFY5253NearestEndMonth(n=1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SUN), | |
| + [datetime(2005, 1, 2), datetime(2006, 1, 1)]), | |
| + (makeFY5253NearestEndMonth(n=1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SUN), | |
| + [datetime(2006, 1, 2), datetime(2006, 12, 31)]), | |
| + (DEC_SAT, [datetime(2013, 1, 15), datetime(2012, 12, 29)])] | |
| for test in tests: | |
| offset, data = test | |
| current = data[0] | |
| @@ -2038,51 +2228,87 @@ | |
| current = current + offset | |
| self.assertEqual(current, datum) | |
| + | |
| class TestFY5253LastOfMonthQuarter(Base): | |
| - | |
| def test_isAnchored(self): | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4).isAnchored()) | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(weekday=WeekDay.SAT, startingMonth=3, qtr_with_extra_week=4).isAnchored()) | |
| - self.assertFalse(makeFY5253LastOfMonthQuarter(2, startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4).isAnchored()) | |
| + self.assertTrue( | |
| + makeFY5253LastOfMonthQuarter(startingMonth=1, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4).isAnchored()) | |
| + self.assertTrue( | |
| + makeFY5253LastOfMonthQuarter(weekday=WeekDay.SAT, | |
| + startingMonth=3, | |
| + qtr_with_extra_week=4).isAnchored()) | |
| + self.assertFalse( | |
| + makeFY5253LastOfMonthQuarter(2, | |
| + startingMonth=1, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4).isAnchored()) | |
| def test_equality(self): | |
| - self.assertEqual(makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4), makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4)) | |
| - self.assertNotEqual(makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4), makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SUN, qtr_with_extra_week=4)) | |
| - self.assertNotEqual(makeFY5253LastOfMonthQuarter(startingMonth=1, weekday=WeekDay.SAT, qtr_with_extra_week=4), makeFY5253LastOfMonthQuarter(startingMonth=2, weekday=WeekDay.SAT, qtr_with_extra_week=4)) | |
| + self.assertEqual(makeFY5253LastOfMonthQuarter(startingMonth=1, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4), | |
| + makeFY5253LastOfMonthQuarter(startingMonth=1, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4)) | |
| + self.assertNotEqual(makeFY5253LastOfMonthQuarter(startingMonth=1, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4), | |
| + makeFY5253LastOfMonthQuarter(startingMonth=1, | |
| + weekday=WeekDay.SUN, | |
| + qtr_with_extra_week=4)) | |
| + self.assertNotEqual(makeFY5253LastOfMonthQuarter(startingMonth=1, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4), | |
| + makeFY5253LastOfMonthQuarter(startingMonth=2, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4)) | |
| def test_offset(self): | |
| - offset = makeFY5253LastOfMonthQuarter(1, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - offset2 = makeFY5253LastOfMonthQuarter(2, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - offset4 = makeFY5253LastOfMonthQuarter(4, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - | |
| - offset_neg1 = makeFY5253LastOfMonthQuarter(-1, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - offset_neg2 = makeFY5253LastOfMonthQuarter(-2, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - | |
| - GMCR = [datetime(2010, 3, 27), | |
| - datetime(2010, 6, 26), | |
| - datetime(2010, 9, 25), | |
| - datetime(2010, 12, 25), | |
| - datetime(2011, 3, 26), | |
| - datetime(2011, 6, 25), | |
| - datetime(2011, 9, 24), | |
| - datetime(2011, 12, 24), | |
| - datetime(2012, 3, 24), | |
| - datetime(2012, 6, 23), | |
| - datetime(2012, 9, 29), | |
| - datetime(2012, 12, 29), | |
| - datetime(2013, 3, 30), | |
| - datetime(2013, 6, 29)] | |
| - | |
| + offset = makeFY5253LastOfMonthQuarter(1, | |
| + startingMonth=9, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4) | |
| + offset2 = makeFY5253LastOfMonthQuarter(2, | |
| + startingMonth=9, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4) | |
| + offset4 = makeFY5253LastOfMonthQuarter(4, | |
| + startingMonth=9, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4) | |
| + | |
| + offset_neg1 = makeFY5253LastOfMonthQuarter(-1, | |
| + startingMonth=9, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4) | |
| + offset_neg2 = makeFY5253LastOfMonthQuarter(-2, | |
| + startingMonth=9, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4) | |
| + | |
| + GMCR = [datetime(2010, 3, 27), datetime(2010, 6, 26), | |
| + datetime(2010, 9, 25), datetime(2010, 12, 25), | |
| + datetime(2011, 3, 26), datetime(2011, 6, 25), | |
| + datetime(2011, 9, 24), datetime(2011, 12, 24), | |
| + datetime(2012, 3, 24), datetime(2012, 6, 23), | |
| + datetime(2012, 9, 29), datetime(2012, 12, 29), | |
| + datetime(2013, 3, 30), datetime(2013, 6, 29)] | |
| assertEq(offset, base=GMCR[0], expected=GMCR[1]) | |
| - assertEq(offset, base=GMCR[0] + relativedelta(days=-1), expected=GMCR[0]) | |
| + assertEq(offset, | |
| + base=GMCR[0] + relativedelta(days=-1), | |
| + expected=GMCR[0]) | |
| assertEq(offset, base=GMCR[1], expected=GMCR[2]) | |
| assertEq(offset2, base=GMCR[0], expected=GMCR[2]) | |
| assertEq(offset4, base=GMCR[0], expected=GMCR[4]) | |
| assertEq(offset_neg1, base=GMCR[-1], expected=GMCR[-2]) | |
| - assertEq(offset_neg1, base=GMCR[-1] + relativedelta(days=+1), expected=GMCR[-1]) | |
| + assertEq(offset_neg1, | |
| + base=GMCR[-1] + relativedelta(days=+1), | |
| + expected=GMCR[-1]) | |
| assertEq(offset_neg2, base=GMCR[-1], expected=GMCR[-3]) | |
| date = GMCR[0] + relativedelta(days=-1) | |
| @@ -2095,13 +2321,17 @@ | |
| assertEq(offset_neg1, date, expected) | |
| date = date + offset_neg1 | |
| - | |
| def test_onOffset(self): | |
| - lomq_aug_sat_4 = makeFY5253LastOfMonthQuarter(1, startingMonth=8, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - lomq_sep_sat_4 = makeFY5253LastOfMonthQuarter(1, startingMonth=9, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - | |
| - tests = [ | |
| - #From Wikipedia | |
| + lomq_aug_sat_4 = makeFY5253LastOfMonthQuarter(1, | |
| + startingMonth=8, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4) | |
| + lomq_sep_sat_4 = makeFY5253LastOfMonthQuarter(1, | |
| + startingMonth=9, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4) | |
| + | |
| + tests = [ #From Wikipedia | |
| (lomq_aug_sat_4, datetime(2006, 8, 26), True), | |
| (lomq_aug_sat_4, datetime(2007, 8, 25), True), | |
| (lomq_aug_sat_4, datetime(2008, 8, 30), True), | |
| @@ -2109,14 +2339,12 @@ | |
| (lomq_aug_sat_4, datetime(2010, 8, 28), True), | |
| (lomq_aug_sat_4, datetime(2011, 8, 27), True), | |
| (lomq_aug_sat_4, datetime(2019, 8, 31), True), | |
| - | |
| (lomq_aug_sat_4, datetime(2006, 8, 27), False), | |
| (lomq_aug_sat_4, datetime(2007, 8, 28), False), | |
| (lomq_aug_sat_4, datetime(2008, 8, 31), False), | |
| (lomq_aug_sat_4, datetime(2009, 8, 30), False), | |
| (lomq_aug_sat_4, datetime(2010, 8, 29), False), | |
| (lomq_aug_sat_4, datetime(2011, 8, 28), False), | |
| - | |
| (lomq_aug_sat_4, datetime(2006, 8, 25), False), | |
| (lomq_aug_sat_4, datetime(2007, 8, 24), False), | |
| (lomq_aug_sat_4, datetime(2008, 8, 29), False), | |
| @@ -2124,31 +2352,40 @@ | |
| (lomq_aug_sat_4, datetime(2010, 8, 27), False), | |
| (lomq_aug_sat_4, datetime(2011, 8, 26), False), | |
| (lomq_aug_sat_4, datetime(2019, 8, 30), False), | |
| - | |
| #From GMCR | |
| (lomq_sep_sat_4, datetime(2010, 9, 25), True), | |
| (lomq_sep_sat_4, datetime(2011, 9, 24), True), | |
| (lomq_sep_sat_4, datetime(2012, 9, 29), True), | |
| - | |
| (lomq_sep_sat_4, datetime(2013, 6, 29), True), | |
| (lomq_sep_sat_4, datetime(2012, 6, 23), True), | |
| (lomq_sep_sat_4, datetime(2012, 6, 30), False), | |
| - | |
| (lomq_sep_sat_4, datetime(2013, 3, 30), True), | |
| (lomq_sep_sat_4, datetime(2012, 3, 24), True), | |
| - | |
| (lomq_sep_sat_4, datetime(2012, 12, 29), True), | |
| (lomq_sep_sat_4, datetime(2011, 12, 24), True), | |
| - | |
| #INTC (extra week in Q1) | |
| #See: http://www.intc.com/releasedetail.cfm?ReleaseID=542844 | |
| - (makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1), datetime(2011, 4, 2), True), | |
| - | |
| + (makeFY5253LastOfMonthQuarter(1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1), | |
| + datetime(2011, 4, 2), True), | |
| #see: http://google.brand.edgar-online.com/?sym=INTC&formtypeID=7 | |
| - (makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1), datetime(2012, 12, 29), True), | |
| - (makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1), datetime(2011, 12, 31), True), | |
| - (makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1), datetime(2010, 12, 25), True), | |
| - | |
| + (makeFY5253LastOfMonthQuarter(1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1), | |
| + datetime(2012, 12, 29), True), | |
| + (makeFY5253LastOfMonthQuarter(1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1), | |
| + datetime(2011, 12, 31), True), | |
| + (makeFY5253LastOfMonthQuarter(1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1), | |
| + datetime(2010, 12, 25), True), | |
| ] | |
| for offset, date, expected in tests: | |
| @@ -2156,60 +2393,105 @@ | |
| def test_year_has_extra_week(self): | |
| #End of long Q1 | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2011, 4, 2))) | |
| + self.assertTrue(makeFY5253LastOfMonthQuarter( | |
| + 1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1).year_has_extra_week(datetime(2011, 4, 2))) | |
| #Start of long Q1 | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2010, 12, 26))) | |
| + self.assertTrue(makeFY5253LastOfMonthQuarter( | |
| + 1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1).year_has_extra_week(datetime(2010, 12, 26))) | |
| #End of year before year with long Q1 | |
| - self.assertFalse(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2010, 12, 25))) | |
| - | |
| - for year in [x for x in range(1994, 2011+1) if x not in [2011, 2005, 2000, 1994]]: | |
| - self.assertFalse(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(year, 4, 2))) | |
| + self.assertFalse(makeFY5253LastOfMonthQuarter( | |
| + 1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1).year_has_extra_week(datetime(2010, 12, 25))) | |
| + | |
| + for year in [x for x in range(1994, 2011 + 1) | |
| + if x not in [2011, 2005, 2000, 1994]]: | |
| + self.assertFalse(makeFY5253LastOfMonthQuarter( | |
| + 1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1).year_has_extra_week(datetime(year, 4, | |
| + 2))) | |
| #Other long years | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2005, 4, 2))) | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(2000, 4, 2))) | |
| - self.assertTrue(makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1).year_has_extra_week(datetime(1994, 4, 2))) | |
| + self.assertTrue(makeFY5253LastOfMonthQuarter( | |
| + 1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1).year_has_extra_week(datetime(2005, 4, 2))) | |
| + self.assertTrue(makeFY5253LastOfMonthQuarter( | |
| + 1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1).year_has_extra_week(datetime(2000, 4, 2))) | |
| + self.assertTrue(makeFY5253LastOfMonthQuarter( | |
| + 1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1).year_has_extra_week(datetime(1994, 4, 2))) | |
| def test_get_weeks(self): | |
| - sat_dec_1 = makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=1) | |
| - sat_dec_4 = makeFY5253LastOfMonthQuarter(1, startingMonth=12, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - | |
| - self.assertEqual(sat_dec_1.get_weeks(datetime(2011, 4, 2)), [14, 13, 13, 13]) | |
| - self.assertEqual(sat_dec_4.get_weeks(datetime(2011, 4, 2)), [13, 13, 13, 14]) | |
| - self.assertEqual(sat_dec_1.get_weeks(datetime(2010, 12, 25)), [13, 13, 13, 13]) | |
| + sat_dec_1 = makeFY5253LastOfMonthQuarter(1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=1) | |
| + sat_dec_4 = makeFY5253LastOfMonthQuarter(1, | |
| + startingMonth=12, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4) | |
| + | |
| + self.assertEqual(sat_dec_1.get_weeks(datetime(2011, 4, 2)), [14, 13, | |
| + 13, 13]) | |
| + self.assertEqual(sat_dec_4.get_weeks(datetime(2011, 4, 2)), [13, 13, | |
| + 13, 14]) | |
| + self.assertEqual(sat_dec_1.get_weeks(datetime(2010, 12, 25)), [13, 13, | |
| + 13, 13]) | |
| + | |
| class TestFY5253NearestEndMonthQuarter(Base): | |
| - | |
| def test_onOffset(self): | |
| - offset_nem_sat_aug_4 = makeFY5253NearestEndMonthQuarter(1, startingMonth=8, weekday=WeekDay.SAT, qtr_with_extra_week=4) | |
| - offset_nem_thu_aug_4 = makeFY5253NearestEndMonthQuarter(1, startingMonth=8, weekday=WeekDay.THU, qtr_with_extra_week=4) | |
| - offset_n = FY5253(weekday=WeekDay.TUE, startingMonth=12, | |
| - variation="nearest", qtr_with_extra_week=4) | |
| - | |
| - tests = [ | |
| - #From Wikipedia | |
| + offset_nem_sat_aug_4 = makeFY5253NearestEndMonthQuarter( | |
| + 1, | |
| + startingMonth=8, | |
| + weekday=WeekDay.SAT, | |
| + qtr_with_extra_week=4) | |
| + offset_nem_thu_aug_4 = makeFY5253NearestEndMonthQuarter( | |
| + 1, | |
| + startingMonth=8, | |
| + weekday=WeekDay.THU, | |
| + qtr_with_extra_week=4) | |
| + offset_n = FY5253(weekday=WeekDay.TUE, | |
| + startingMonth=12, | |
| + variation="nearest", | |
| + qtr_with_extra_week=4) | |
| + | |
| + tests = [ #From Wikipedia | |
| (offset_nem_sat_aug_4, datetime(2006, 9, 2), True), | |
| (offset_nem_sat_aug_4, datetime(2007, 9, 1), True), | |
| (offset_nem_sat_aug_4, datetime(2008, 8, 30), True), | |
| (offset_nem_sat_aug_4, datetime(2009, 8, 29), True), | |
| (offset_nem_sat_aug_4, datetime(2010, 8, 28), True), | |
| (offset_nem_sat_aug_4, datetime(2011, 9, 3), True), | |
| - | |
| (offset_nem_sat_aug_4, datetime(2016, 9, 3), True), | |
| (offset_nem_sat_aug_4, datetime(2017, 9, 2), True), | |
| (offset_nem_sat_aug_4, datetime(2018, 9, 1), True), | |
| (offset_nem_sat_aug_4, datetime(2019, 8, 31), True), | |
| - | |
| (offset_nem_sat_aug_4, datetime(2006, 8, 27), False), | |
| (offset_nem_sat_aug_4, datetime(2007, 8, 28), False), | |
| (offset_nem_sat_aug_4, datetime(2008, 8, 31), False), | |
| (offset_nem_sat_aug_4, datetime(2009, 8, 30), False), | |
| (offset_nem_sat_aug_4, datetime(2010, 8, 29), False), | |
| (offset_nem_sat_aug_4, datetime(2011, 8, 28), False), | |
| - | |
| (offset_nem_sat_aug_4, datetime(2006, 8, 25), False), | |
| (offset_nem_sat_aug_4, datetime(2007, 8, 24), False), | |
| (offset_nem_sat_aug_4, datetime(2008, 8, 29), False), | |
| @@ -2217,11 +2499,9 @@ | |
| (offset_nem_sat_aug_4, datetime(2010, 8, 27), False), | |
| (offset_nem_sat_aug_4, datetime(2011, 8, 26), False), | |
| (offset_nem_sat_aug_4, datetime(2019, 8, 30), False), | |
| - | |
| #From Micron, see: http://google.brand.edgar-online.com/?sym=MU&formtypeID=7 | |
| (offset_nem_thu_aug_4, datetime(2012, 8, 30), True), | |
| (offset_nem_thu_aug_4, datetime(2011, 9, 1), True), | |
| - | |
| #See: http://google.brand.edgar-online.com/?sym=MU&formtypeID=13 | |
| (offset_nem_thu_aug_4, datetime(2013, 5, 30), True), | |
| (offset_nem_thu_aug_4, datetime(2013, 2, 28), True), | |
| @@ -2229,7 +2509,6 @@ | |
| (offset_nem_thu_aug_4, datetime(2012, 5, 31), True), | |
| (offset_nem_thu_aug_4, datetime(2007, 3, 1), True), | |
| (offset_nem_thu_aug_4, datetime(1994, 3, 3), True), | |
| - | |
| (offset_n, datetime(2012, 12, 31), False), | |
| (offset_n, datetime(2013, 1, 1), True), | |
| (offset_n, datetime(2013, 1, 2), False) | |
| @@ -2239,9 +2518,14 @@ | |
| assertOnOffset(offset, date, expected) | |
| def test_offset(self): | |
| - offset = makeFY5253NearestEndMonthQuarter(1, startingMonth=8, weekday=WeekDay.THU, qtr_with_extra_week=4) | |
| - | |
| - MU = [datetime(2012, 5, 31), datetime(2012, 8, 30), datetime(2012, 11, 29), datetime(2013, 2, 28), datetime(2013, 5, 30)] | |
| + offset = makeFY5253NearestEndMonthQuarter(1, | |
| + startingMonth=8, | |
| + weekday=WeekDay.THU, | |
| + qtr_with_extra_week=4) | |
| + | |
| + MU = [datetime(2012, 5, 31), datetime(2012, 8, 30), | |
| + datetime(2012, 11, 29), datetime(2013, 2, 28), | |
| + datetime(2013, 5, 30)] | |
| date = MU[0] + relativedelta(days=-1) | |
| for expected in MU: | |
| @@ -2251,17 +2535,22 @@ | |
| assertEq(offset, datetime(2012, 5, 31), datetime(2012, 8, 30)) | |
| assertEq(offset, datetime(2012, 5, 30), datetime(2012, 5, 31)) | |
| - offset2 = FY5253Quarter(weekday=5, startingMonth=12, | |
| - variation="last", qtr_with_extra_week=4) | |
| - | |
| - assertEq(offset2, datetime(2013,1,15), datetime(2013, 3, 30)) | |
| + offset2 = FY5253Quarter(weekday=5, | |
| + startingMonth=12, | |
| + variation="last", | |
| + qtr_with_extra_week=4) | |
| + | |
| + assertEq(offset2, datetime(2013, 1, 15), datetime(2013, 3, 30)) | |
| + | |
| class TestQuarterBegin(Base): | |
| - | |
| def test_repr(self): | |
| - self.assertEqual(repr(QuarterBegin()), "<QuarterBegin: startingMonth=3>") | |
| - self.assertEqual(repr(QuarterBegin(startingMonth=3)), "<QuarterBegin: startingMonth=3>") | |
| - self.assertEqual(repr(QuarterBegin(startingMonth=1)),"<QuarterBegin: startingMonth=1>") | |
| + self.assertEqual(repr(QuarterBegin()), | |
| + "<QuarterBegin: startingMonth=3>") | |
| + self.assertEqual(repr(QuarterBegin(startingMonth=3)), | |
| + "<QuarterBegin: startingMonth=3>") | |
| + self.assertEqual(repr(QuarterBegin(startingMonth=1)), | |
| + "<QuarterBegin: startingMonth=1>") | |
| def test_isAnchored(self): | |
| self.assertTrue(QuarterBegin(startingMonth=1).isAnchored()) | |
| @@ -2271,56 +2560,67 @@ | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((QuarterBegin(startingMonth=1), | |
| - {datetime(2007, 12, 1): datetime(2008, 1, 1), | |
| - datetime(2008, 1, 1): datetime(2008, 4, 1), | |
| - datetime(2008, 2, 15): datetime(2008, 4, 1), | |
| - datetime(2008, 2, 29): datetime(2008, 4, 1), | |
| - datetime(2008, 3, 15): datetime(2008, 4, 1), | |
| - datetime(2008, 3, 31): datetime(2008, 4, 1), | |
| - datetime(2008, 4, 15): datetime(2008, 7, 1), | |
| - datetime(2008, 4, 1): datetime(2008, 7, 1), })) | |
| - | |
| - tests.append((QuarterBegin(startingMonth=2), | |
| - {datetime(2008, 1, 1): datetime(2008, 2, 1), | |
| - datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| - datetime(2008, 1, 15): datetime(2008, 2, 1), | |
| - datetime(2008, 2, 29): datetime(2008, 5, 1), | |
| - datetime(2008, 3, 15): datetime(2008, 5, 1), | |
| - datetime(2008, 3, 31): datetime(2008, 5, 1), | |
| - datetime(2008, 4, 15): datetime(2008, 5, 1), | |
| - datetime(2008, 4, 30): datetime(2008, 5, 1), })) | |
| - | |
| - tests.append((QuarterBegin(startingMonth=1, n=0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| - datetime(2008, 12, 1): datetime(2009, 1, 1), | |
| - datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| - datetime(2008, 2, 15): datetime(2008, 4, 1), | |
| - datetime(2008, 2, 29): datetime(2008, 4, 1), | |
| - datetime(2008, 3, 15): datetime(2008, 4, 1), | |
| - datetime(2008, 3, 31): datetime(2008, 4, 1), | |
| - datetime(2008, 4, 15): datetime(2008, 4, 1), | |
| - datetime(2008, 4, 30): datetime(2008, 4, 1), })) | |
| - | |
| - tests.append((QuarterBegin(startingMonth=1, n=-1), | |
| - {datetime(2008, 1, 1): datetime(2007, 10, 1), | |
| - datetime(2008, 1, 31): datetime(2008, 1, 1), | |
| - datetime(2008, 2, 15): datetime(2008, 1, 1), | |
| - datetime(2008, 2, 29): datetime(2008, 1, 1), | |
| - datetime(2008, 3, 15): datetime(2008, 1, 1), | |
| - datetime(2008, 3, 31): datetime(2008, 1, 1), | |
| - datetime(2008, 4, 15): datetime(2008, 4, 1), | |
| - datetime(2008, 4, 30): datetime(2008, 4, 1), | |
| - datetime(2008, 7, 1): datetime(2008, 4, 1)})) | |
| - | |
| - tests.append((QuarterBegin(startingMonth=1, n=2), | |
| - {datetime(2008, 1, 1): datetime(2008, 7, 1), | |
| - datetime(2008, 2, 15): datetime(2008, 7, 1), | |
| - datetime(2008, 2, 29): datetime(2008, 7, 1), | |
| - datetime(2008, 3, 15): datetime(2008, 7, 1), | |
| - datetime(2008, 3, 31): datetime(2008, 7, 1), | |
| - datetime(2008, 4, 15): datetime(2008, 10, 1), | |
| - datetime(2008, 4, 1): datetime(2008, 10, 1), })) | |
| + tests.append((QuarterBegin(startingMonth=1), { | |
| + datetime(2007, 12, 1): datetime(2008, 1, 1), | |
| + datetime(2008, 1, 1): datetime(2008, 4, 1), | |
| + datetime(2008, 2, 15): datetime(2008, 4, 1), | |
| + datetime(2008, 2, 29): datetime(2008, 4, 1), | |
| + datetime(2008, 3, 15): datetime(2008, 4, 1), | |
| + datetime(2008, 3, 31): datetime(2008, 4, 1), | |
| + datetime(2008, 4, 15): datetime(2008, 7, 1), | |
| + datetime(2008, 4, 1): datetime(2008, 7, 1), | |
| + })) | |
| + | |
| + tests.append((QuarterBegin(startingMonth=2), { | |
| + datetime(2008, 1, 1): datetime(2008, 2, 1), | |
| + datetime(2008, 1, 31): datetime(2008, 2, 1), | |
| + datetime(2008, 1, 15): datetime(2008, 2, 1), | |
| + datetime(2008, 2, 29): datetime(2008, 5, 1), | |
| + datetime(2008, 3, 15): datetime(2008, 5, 1), | |
| + datetime(2008, 3, 31): datetime(2008, 5, 1), | |
| + datetime(2008, 4, 15): datetime(2008, 5, 1), | |
| + datetime(2008, 4, 30): datetime(2008, 5, 1), | |
| + })) | |
| + | |
| + tests.append((QuarterBegin(startingMonth=1, | |
| + n=0), | |
| + { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| + datetime(2008, 12, 1): datetime(2009, 1, 1), | |
| + datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| + datetime(2008, 2, 15): datetime(2008, 4, 1), | |
| + datetime(2008, 2, 29): datetime(2008, 4, 1), | |
| + datetime(2008, 3, 15): datetime(2008, 4, 1), | |
| + datetime(2008, 3, 31): datetime(2008, 4, 1), | |
| + datetime(2008, 4, 15): datetime(2008, 4, 1), | |
| + datetime(2008, 4, 30): datetime(2008, 4, 1), | |
| + })) | |
| + | |
| + tests.append((QuarterBegin(startingMonth=1, | |
| + n=-1), | |
| + { | |
| + datetime(2008, 1, 1): datetime(2007, 10, 1), | |
| + datetime(2008, 1, 31): datetime(2008, 1, 1), | |
| + datetime(2008, 2, 15): datetime(2008, 1, 1), | |
| + datetime(2008, 2, 29): datetime(2008, 1, 1), | |
| + datetime(2008, 3, 15): datetime(2008, 1, 1), | |
| + datetime(2008, 3, 31): datetime(2008, 1, 1), | |
| + datetime(2008, 4, 15): datetime(2008, 4, 1), | |
| + datetime(2008, 4, 30): datetime(2008, 4, 1), | |
| + datetime(2008, 7, 1): datetime(2008, 4, 1) | |
| + })) | |
| + | |
| + tests.append((QuarterBegin(startingMonth=1, | |
| + n=2), | |
| + { | |
| + datetime(2008, 1, 1): datetime(2008, 7, 1), | |
| + datetime(2008, 2, 15): datetime(2008, 7, 1), | |
| + datetime(2008, 2, 29): datetime(2008, 7, 1), | |
| + datetime(2008, 3, 15): datetime(2008, 7, 1), | |
| + datetime(2008, 3, 31): datetime(2008, 7, 1), | |
| + datetime(2008, 4, 15): datetime(2008, 10, 1), | |
| + datetime(2008, 4, 1): datetime(2008, 10, 1), | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -2336,8 +2636,10 @@ | |
| def test_repr(self): | |
| self.assertEqual(repr(QuarterEnd()), "<QuarterEnd: startingMonth=3>") | |
| - self.assertEqual(repr(QuarterEnd(startingMonth=3)), "<QuarterEnd: startingMonth=3>") | |
| - self.assertEqual(repr(QuarterEnd(startingMonth=1)), "<QuarterEnd: startingMonth=1>") | |
| + self.assertEqual(repr(QuarterEnd(startingMonth=3)), | |
| + "<QuarterEnd: startingMonth=3>") | |
| + self.assertEqual(repr(QuarterEnd(startingMonth=1)), | |
| + "<QuarterEnd: startingMonth=1>") | |
| def test_isAnchored(self): | |
| self.assertTrue(QuarterEnd(startingMonth=1).isAnchored()) | |
| @@ -2347,55 +2649,66 @@ | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((QuarterEnd(startingMonth=1), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| - datetime(2008, 1, 31): datetime(2008, 4, 30), | |
| - datetime(2008, 2, 15): datetime(2008, 4, 30), | |
| - datetime(2008, 2, 29): datetime(2008, 4, 30), | |
| - datetime(2008, 3, 15): datetime(2008, 4, 30), | |
| - datetime(2008, 3, 31): datetime(2008, 4, 30), | |
| - datetime(2008, 4, 15): datetime(2008, 4, 30), | |
| - datetime(2008, 4, 30): datetime(2008, 7, 31), })) | |
| - | |
| - tests.append((QuarterEnd(startingMonth=2), | |
| - {datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| - datetime(2008, 1, 31): datetime(2008, 2, 29), | |
| - datetime(2008, 2, 15): datetime(2008, 2, 29), | |
| - datetime(2008, 2, 29): datetime(2008, 5, 31), | |
| - datetime(2008, 3, 15): datetime(2008, 5, 31), | |
| - datetime(2008, 3, 31): datetime(2008, 5, 31), | |
| - datetime(2008, 4, 15): datetime(2008, 5, 31), | |
| - datetime(2008, 4, 30): datetime(2008, 5, 31), })) | |
| - | |
| - tests.append((QuarterEnd(startingMonth=1, n=0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| - datetime(2008, 1, 31): datetime(2008, 1, 31), | |
| - datetime(2008, 2, 15): datetime(2008, 4, 30), | |
| - datetime(2008, 2, 29): datetime(2008, 4, 30), | |
| - datetime(2008, 3, 15): datetime(2008, 4, 30), | |
| - datetime(2008, 3, 31): datetime(2008, 4, 30), | |
| - datetime(2008, 4, 15): datetime(2008, 4, 30), | |
| - datetime(2008, 4, 30): datetime(2008, 4, 30), })) | |
| - | |
| - tests.append((QuarterEnd(startingMonth=1, n=-1), | |
| - {datetime(2008, 1, 1): datetime(2007, 10, 31), | |
| - datetime(2008, 1, 31): datetime(2007, 10, 31), | |
| - datetime(2008, 2, 15): datetime(2008, 1, 31), | |
| - datetime(2008, 2, 29): datetime(2008, 1, 31), | |
| - datetime(2008, 3, 15): datetime(2008, 1, 31), | |
| - datetime(2008, 3, 31): datetime(2008, 1, 31), | |
| - datetime(2008, 4, 15): datetime(2008, 1, 31), | |
| - datetime(2008, 4, 30): datetime(2008, 1, 31), | |
| - datetime(2008, 7, 1): datetime(2008, 4, 30)})) | |
| - | |
| - tests.append((QuarterEnd(startingMonth=1, n=2), | |
| - {datetime(2008, 1, 31): datetime(2008, 7, 31), | |
| - datetime(2008, 2, 15): datetime(2008, 7, 31), | |
| - datetime(2008, 2, 29): datetime(2008, 7, 31), | |
| - datetime(2008, 3, 15): datetime(2008, 7, 31), | |
| - datetime(2008, 3, 31): datetime(2008, 7, 31), | |
| - datetime(2008, 4, 15): datetime(2008, 7, 31), | |
| - datetime(2008, 4, 30): datetime(2008, 10, 31), })) | |
| + tests.append((QuarterEnd(startingMonth=1), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| + datetime(2008, 1, 31): datetime(2008, 4, 30), | |
| + datetime(2008, 2, 15): datetime(2008, 4, 30), | |
| + datetime(2008, 2, 29): datetime(2008, 4, 30), | |
| + datetime(2008, 3, 15): datetime(2008, 4, 30), | |
| + datetime(2008, 3, 31): datetime(2008, 4, 30), | |
| + datetime(2008, 4, 15): datetime(2008, 4, 30), | |
| + datetime(2008, 4, 30): datetime(2008, 7, 31), | |
| + })) | |
| + | |
| + tests.append((QuarterEnd(startingMonth=2), { | |
| + datetime(2008, 1, 1): datetime(2008, 2, 29), | |
| + datetime(2008, 1, 31): datetime(2008, 2, 29), | |
| + datetime(2008, 2, 15): datetime(2008, 2, 29), | |
| + datetime(2008, 2, 29): datetime(2008, 5, 31), | |
| + datetime(2008, 3, 15): datetime(2008, 5, 31), | |
| + datetime(2008, 3, 31): datetime(2008, 5, 31), | |
| + datetime(2008, 4, 15): datetime(2008, 5, 31), | |
| + datetime(2008, 4, 30): datetime(2008, 5, 31), | |
| + })) | |
| + | |
| + tests.append((QuarterEnd(startingMonth=1, | |
| + n=0), | |
| + { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 31), | |
| + datetime(2008, 1, 31): datetime(2008, 1, 31), | |
| + datetime(2008, 2, 15): datetime(2008, 4, 30), | |
| + datetime(2008, 2, 29): datetime(2008, 4, 30), | |
| + datetime(2008, 3, 15): datetime(2008, 4, 30), | |
| + datetime(2008, 3, 31): datetime(2008, 4, 30), | |
| + datetime(2008, 4, 15): datetime(2008, 4, 30), | |
| + datetime(2008, 4, 30): datetime(2008, 4, 30), | |
| + })) | |
| + | |
| + tests.append((QuarterEnd(startingMonth=1, | |
| + n=-1), | |
| + { | |
| + datetime(2008, 1, 1): datetime(2007, 10, 31), | |
| + datetime(2008, 1, 31): datetime(2007, 10, 31), | |
| + datetime(2008, 2, 15): datetime(2008, 1, 31), | |
| + datetime(2008, 2, 29): datetime(2008, 1, 31), | |
| + datetime(2008, 3, 15): datetime(2008, 1, 31), | |
| + datetime(2008, 3, 31): datetime(2008, 1, 31), | |
| + datetime(2008, 4, 15): datetime(2008, 1, 31), | |
| + datetime(2008, 4, 30): datetime(2008, 1, 31), | |
| + datetime(2008, 7, 1): datetime(2008, 4, 30) | |
| + })) | |
| + | |
| + tests.append((QuarterEnd(startingMonth=1, | |
| + n=2), | |
| + { | |
| + datetime(2008, 1, 31): datetime(2008, 7, 31), | |
| + datetime(2008, 2, 15): datetime(2008, 7, 31), | |
| + datetime(2008, 2, 29): datetime(2008, 7, 31), | |
| + datetime(2008, 3, 15): datetime(2008, 7, 31), | |
| + datetime(2008, 3, 31): datetime(2008, 7, 31), | |
| + datetime(2008, 4, 15): datetime(2008, 7, 31), | |
| + datetime(2008, 4, 30): datetime(2008, 10, 31), | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -2407,63 +2720,66 @@ | |
| def test_onOffset(self): | |
| - tests = [(QuarterEnd(1, startingMonth=1), datetime(2008, 1, 31), True), | |
| - (QuarterEnd( | |
| - 1, startingMonth=1), datetime(2007, 12, 31), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=1), datetime(2008, 2, 29), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=1), datetime(2007, 3, 30), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=1), datetime(2007, 3, 31), False), | |
| - (QuarterEnd(1, startingMonth=1), datetime(2008, 4, 30), True), | |
| - (QuarterEnd( | |
| - 1, startingMonth=1), datetime(2008, 5, 30), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=1), datetime(2008, 5, 31), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=1), datetime(2007, 6, 29), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=1), datetime(2007, 6, 30), False), | |
| - | |
| - (QuarterEnd( | |
| - 1, startingMonth=2), datetime(2008, 1, 31), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=2), datetime(2007, 12, 31), False), | |
| - (QuarterEnd(1, startingMonth=2), datetime(2008, 2, 29), True), | |
| - (QuarterEnd( | |
| - 1, startingMonth=2), datetime(2007, 3, 30), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=2), datetime(2007, 3, 31), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=2), datetime(2008, 4, 30), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=2), datetime(2008, 5, 30), False), | |
| - (QuarterEnd(1, startingMonth=2), datetime(2008, 5, 31), True), | |
| - (QuarterEnd( | |
| - 1, startingMonth=2), datetime(2007, 6, 29), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=2), datetime(2007, 6, 30), False), | |
| - | |
| - (QuarterEnd( | |
| - 1, startingMonth=3), datetime(2008, 1, 31), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=3), datetime(2007, 12, 31), True), | |
| - (QuarterEnd( | |
| - 1, startingMonth=3), datetime(2008, 2, 29), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=3), datetime(2007, 3, 30), False), | |
| - (QuarterEnd(1, startingMonth=3), datetime(2007, 3, 31), True), | |
| - (QuarterEnd( | |
| - 1, startingMonth=3), datetime(2008, 4, 30), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=3), datetime(2008, 5, 30), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=3), datetime(2008, 5, 31), False), | |
| - (QuarterEnd( | |
| - 1, startingMonth=3), datetime(2007, 6, 29), False), | |
| - (QuarterEnd(1, startingMonth=3), datetime(2007, 6, 30), True), | |
| - ] | |
| + tests = [(QuarterEnd(1, | |
| + startingMonth=1), datetime(2008, 1, 31), True), | |
| + (QuarterEnd(1, | |
| + startingMonth=1), datetime(2007, 12, 31), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=1), datetime(2008, 2, 29), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=1), datetime(2007, 3, 30), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=1), datetime(2007, 3, 31), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=1), datetime(2008, 4, 30), True), | |
| + (QuarterEnd(1, | |
| + startingMonth=1), datetime(2008, 5, 30), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=1), datetime(2008, 5, 31), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=1), datetime(2007, 6, 29), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=1), datetime(2007, 6, 30), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=2), datetime(2008, 1, 31), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=2), datetime(2007, 12, 31), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=2), datetime(2008, 2, 29), True), | |
| + (QuarterEnd(1, | |
| + startingMonth=2), datetime(2007, 3, 30), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=2), datetime(2007, 3, 31), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=2), datetime(2008, 4, 30), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=2), datetime(2008, 5, 30), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=2), datetime(2008, 5, 31), True), | |
| + (QuarterEnd(1, | |
| + startingMonth=2), datetime(2007, 6, 29), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=2), datetime(2007, 6, 30), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=3), datetime(2008, 1, 31), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=3), datetime(2007, 12, 31), True), | |
| + (QuarterEnd(1, | |
| + startingMonth=3), datetime(2008, 2, 29), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=3), datetime(2007, 3, 30), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=3), datetime(2007, 3, 31), True), | |
| + (QuarterEnd(1, | |
| + startingMonth=3), datetime(2008, 4, 30), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=3), datetime(2008, 5, 30), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=3), datetime(2008, 5, 31), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=3), datetime(2007, 6, 29), False), | |
| + (QuarterEnd(1, | |
| + startingMonth=3), datetime(2007, 6, 30), True), ] | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| @@ -2479,38 +2795,40 @@ | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((BYearBegin(), | |
| - {datetime(2008, 1, 1): datetime(2009, 1, 1), | |
| - datetime(2008, 6, 30): datetime(2009, 1, 1), | |
| - datetime(2008, 12, 31): datetime(2009, 1, 1), | |
| - datetime(2011, 1, 1): datetime(2011, 1, 3), | |
| - datetime(2011, 1, 3): datetime(2012, 1, 2), | |
| - datetime(2005, 12, 30): datetime(2006, 1, 2), | |
| - datetime(2005, 12, 31): datetime(2006, 1, 2) | |
| - } | |
| - )) | |
| - | |
| - tests.append((BYearBegin(0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| - datetime(2008, 6, 30): datetime(2009, 1, 1), | |
| - datetime(2008, 12, 31): datetime(2009, 1, 1), | |
| - datetime(2005, 12, 30): datetime(2006, 1, 2), | |
| - datetime(2005, 12, 31): datetime(2006, 1, 2), })) | |
| - | |
| - tests.append((BYearBegin(-1), | |
| - {datetime(2007, 1, 1): datetime(2006, 1, 2), | |
| - datetime(2009, 1, 4): datetime(2009, 1, 1), | |
| - datetime(2009, 1, 1): datetime(2008, 1, 1), | |
| - datetime(2008, 6, 30): datetime(2008, 1, 1), | |
| - datetime(2008, 12, 31): datetime(2008, 1, 1), | |
| - datetime(2006, 12, 29): datetime(2006, 1, 2), | |
| - datetime(2006, 12, 30): datetime(2006, 1, 2), | |
| - datetime(2006, 1, 1): datetime(2005, 1, 3), })) | |
| - | |
| - tests.append((BYearBegin(-2), | |
| - {datetime(2007, 1, 1): datetime(2005, 1, 3), | |
| - datetime(2007, 6, 30): datetime(2006, 1, 2), | |
| - datetime(2008, 12, 31): datetime(2007, 1, 1), })) | |
| + tests.append((BYearBegin(), { | |
| + datetime(2008, 1, 1): datetime(2009, 1, 1), | |
| + datetime(2008, 6, 30): datetime(2009, 1, 1), | |
| + datetime(2008, 12, 31): datetime(2009, 1, 1), | |
| + datetime(2011, 1, 1): datetime(2011, 1, 3), | |
| + datetime(2011, 1, 3): datetime(2012, 1, 2), | |
| + datetime(2005, 12, 30): datetime(2006, 1, 2), | |
| + datetime(2005, 12, 31): datetime(2006, 1, 2) | |
| + })) | |
| + | |
| + tests.append((BYearBegin(0), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| + datetime(2008, 6, 30): datetime(2009, 1, 1), | |
| + datetime(2008, 12, 31): datetime(2009, 1, 1), | |
| + datetime(2005, 12, 30): datetime(2006, 1, 2), | |
| + datetime(2005, 12, 31): datetime(2006, 1, 2), | |
| + })) | |
| + | |
| + tests.append((BYearBegin(-1), { | |
| + datetime(2007, 1, 1): datetime(2006, 1, 2), | |
| + datetime(2009, 1, 4): datetime(2009, 1, 1), | |
| + datetime(2009, 1, 1): datetime(2008, 1, 1), | |
| + datetime(2008, 6, 30): datetime(2008, 1, 1), | |
| + datetime(2008, 12, 31): datetime(2008, 1, 1), | |
| + datetime(2006, 12, 29): datetime(2006, 1, 2), | |
| + datetime(2006, 12, 30): datetime(2006, 1, 2), | |
| + datetime(2006, 1, 1): datetime(2005, 1, 3), | |
| + })) | |
| + | |
| + tests.append((BYearBegin(-2), { | |
| + datetime(2007, 1, 1): datetime(2005, 1, 3), | |
| + datetime(2007, 6, 30): datetime(2006, 1, 2), | |
| + datetime(2008, 12, 31): datetime(2007, 1, 1), | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -2526,72 +2844,90 @@ | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((YearBegin(), | |
| - {datetime(2008, 1, 1): datetime(2009, 1, 1), | |
| - datetime(2008, 6, 30): datetime(2009, 1, 1), | |
| - datetime(2008, 12, 31): datetime(2009, 1, 1), | |
| - datetime(2005, 12, 30): datetime(2006, 1, 1), | |
| - datetime(2005, 12, 31): datetime(2006, 1, 1), })) | |
| - | |
| - tests.append((YearBegin(0), | |
| - {datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| - datetime(2008, 6, 30): datetime(2009, 1, 1), | |
| - datetime(2008, 12, 31): datetime(2009, 1, 1), | |
| - datetime(2005, 12, 30): datetime(2006, 1, 1), | |
| - datetime(2005, 12, 31): datetime(2006, 1, 1), })) | |
| - | |
| - tests.append((YearBegin(3), | |
| - {datetime(2008, 1, 1): datetime(2011, 1, 1), | |
| - datetime(2008, 6, 30): datetime(2011, 1, 1), | |
| - datetime(2008, 12, 31): datetime(2011, 1, 1), | |
| - datetime(2005, 12, 30): datetime(2008, 1, 1), | |
| - datetime(2005, 12, 31): datetime(2008, 1, 1), })) | |
| - | |
| - tests.append((YearBegin(-1), | |
| - {datetime(2007, 1, 1): datetime(2006, 1, 1), | |
| - datetime(2007, 1, 15): datetime(2007, 1, 1), | |
| - datetime(2008, 6, 30): datetime(2008, 1, 1), | |
| - datetime(2008, 12, 31): datetime(2008, 1, 1), | |
| - datetime(2006, 12, 29): datetime(2006, 1, 1), | |
| - datetime(2006, 12, 30): datetime(2006, 1, 1), | |
| - datetime(2007, 1, 1): datetime(2006, 1, 1), })) | |
| - | |
| - tests.append((YearBegin(-2), | |
| - {datetime(2007, 1, 1): datetime(2005, 1, 1), | |
| - datetime(2008, 6, 30): datetime(2007, 1, 1), | |
| - datetime(2008, 12, 31): datetime(2007, 1, 1), })) | |
| - | |
| - tests.append((YearBegin(month=4), | |
| - {datetime(2007, 4, 1): datetime(2008, 4, 1), | |
| - datetime(2007, 4, 15): datetime(2008, 4, 1), | |
| - datetime(2007, 3, 1): datetime(2007, 4, 1), | |
| - datetime(2007, 12, 15): datetime(2008, 4, 1), | |
| - datetime(2012, 1, 31): datetime(2012, 4, 1), })) | |
| - | |
| - tests.append((YearBegin(0, month=4), | |
| - {datetime(2007, 4, 1): datetime(2007, 4, 1), | |
| - datetime(2007, 3, 1): datetime(2007, 4, 1), | |
| - datetime(2007, 12, 15): datetime(2008, 4, 1), | |
| - datetime(2012, 1, 31): datetime(2012, 4, 1), })) | |
| - | |
| - tests.append((YearBegin(4, month=4), | |
| - {datetime(2007, 4, 1): datetime(2011, 4, 1), | |
| - datetime(2007, 4, 15): datetime(2011, 4, 1), | |
| - datetime(2007, 3, 1): datetime(2010, 4, 1), | |
| - datetime(2007, 12, 15): datetime(2011, 4, 1), | |
| - datetime(2012, 1, 31): datetime(2015, 4, 1), })) | |
| - | |
| - tests.append((YearBegin(-1, month=4), | |
| - {datetime(2007, 4, 1): datetime(2006, 4, 1), | |
| - datetime(2007, 3, 1): datetime(2006, 4, 1), | |
| - datetime(2007, 12, 15): datetime(2007, 4, 1), | |
| - datetime(2012, 1, 31): datetime(2011, 4, 1), })) | |
| - | |
| - tests.append((YearBegin(-3, month=4), | |
| - {datetime(2007, 4, 1): datetime(2004, 4, 1), | |
| - datetime(2007, 3, 1): datetime(2004, 4, 1), | |
| - datetime(2007, 12, 15): datetime(2005, 4, 1), | |
| - datetime(2012, 1, 31): datetime(2009, 4, 1), })) | |
| + tests.append((YearBegin(), { | |
| + datetime(2008, 1, 1): datetime(2009, 1, 1), | |
| + datetime(2008, 6, 30): datetime(2009, 1, 1), | |
| + datetime(2008, 12, 31): datetime(2009, 1, 1), | |
| + datetime(2005, 12, 30): datetime(2006, 1, 1), | |
| + datetime(2005, 12, 31): datetime(2006, 1, 1), | |
| + })) | |
| + | |
| + tests.append((YearBegin(0), { | |
| + datetime(2008, 1, 1): datetime(2008, 1, 1), | |
| + datetime(2008, 6, 30): datetime(2009, 1, 1), | |
| + datetime(2008, 12, 31): datetime(2009, 1, 1), | |
| + datetime(2005, 12, 30): datetime(2006, 1, 1), | |
| + datetime(2005, 12, 31): datetime(2006, 1, 1), | |
| + })) | |
| + | |
| + tests.append((YearBegin(3), { | |
| + datetime(2008, 1, 1): datetime(2011, 1, 1), | |
| + datetime(2008, 6, 30): datetime(2011, 1, 1), | |
| + datetime(2008, 12, 31): datetime(2011, 1, 1), | |
| + datetime(2005, 12, 30): datetime(2008, 1, 1), | |
| + datetime(2005, 12, 31): datetime(2008, 1, 1), | |
| + })) | |
| + | |
| + tests.append((YearBegin(-1), { | |
| + datetime(2007, 1, 1): datetime(2006, 1, 1), | |
| + datetime(2007, 1, 15): datetime(2007, 1, 1), | |
| + datetime(2008, 6, 30): datetime(2008, 1, 1), | |
| + datetime(2008, 12, 31): datetime(2008, 1, 1), | |
| + datetime(2006, 12, 29): datetime(2006, 1, 1), | |
| + datetime(2006, 12, 30): datetime(2006, 1, 1), | |
| + datetime(2007, 1, 1): datetime(2006, 1, 1), | |
| + })) | |
| + | |
| + tests.append((YearBegin(-2), { | |
| + datetime(2007, 1, 1): datetime(2005, 1, 1), | |
| + datetime(2008, 6, 30): datetime(2007, 1, 1), | |
| + datetime(2008, 12, 31): datetime(2007, 1, 1), | |
| + })) | |
| + | |
| + tests.append((YearBegin(month=4), { | |
| + datetime(2007, 4, 1): datetime(2008, 4, 1), | |
| + datetime(2007, 4, 15): datetime(2008, 4, 1), | |
| + datetime(2007, 3, 1): datetime(2007, 4, 1), | |
| + datetime(2007, 12, 15): datetime(2008, 4, 1), | |
| + datetime(2012, 1, 31): datetime(2012, 4, 1), | |
| + })) | |
| + | |
| + tests.append((YearBegin(0, | |
| + month=4), | |
| + { | |
| + datetime(2007, 4, 1): datetime(2007, 4, 1), | |
| + datetime(2007, 3, 1): datetime(2007, 4, 1), | |
| + datetime(2007, 12, 15): datetime(2008, 4, 1), | |
| + datetime(2012, 1, 31): datetime(2012, 4, 1), | |
| + })) | |
| + | |
| + tests.append((YearBegin(4, | |
| + month=4), | |
| + { | |
| + datetime(2007, 4, 1): datetime(2011, 4, 1), | |
| + datetime(2007, 4, 15): datetime(2011, 4, 1), | |
| + datetime(2007, 3, 1): datetime(2010, 4, 1), | |
| + datetime(2007, 12, 15): datetime(2011, 4, 1), | |
| + datetime(2012, 1, 31): datetime(2015, 4, 1), | |
| + })) | |
| + | |
| + tests.append((YearBegin(-1, | |
| + month=4), | |
| + { | |
| + datetime(2007, 4, 1): datetime(2006, 4, 1), | |
| + datetime(2007, 3, 1): datetime(2006, 4, 1), | |
| + datetime(2007, 12, 15): datetime(2007, 4, 1), | |
| + datetime(2012, 1, 31): datetime(2011, 4, 1), | |
| + })) | |
| + | |
| + tests.append((YearBegin(-3, | |
| + month=4), | |
| + { | |
| + datetime(2007, 4, 1): datetime(2004, 4, 1), | |
| + datetime(2007, 3, 1): datetime(2004, 4, 1), | |
| + datetime(2007, 12, 15): datetime(2005, 4, 1), | |
| + datetime(2012, 1, 31): datetime(2009, 4, 1), | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -2599,19 +2935,16 @@ | |
| def test_onOffset(self): | |
| - tests = [ | |
| - (YearBegin(), datetime(2007, 1, 3), False), | |
| - (YearBegin(), datetime(2008, 1, 1), True), | |
| - (YearBegin(), datetime(2006, 12, 31), False), | |
| - (YearBegin(), datetime(2006, 1, 2), False), | |
| - ] | |
| + tests = [(YearBegin(), datetime(2007, 1, 3), False), | |
| + (YearBegin(), datetime(2008, 1, 1), True), | |
| + (YearBegin(), datetime(2006, 12, 31), False), | |
| + (YearBegin(), datetime(2006, 1, 2), False), ] | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| class TestBYearEndLagged(Base): | |
| - | |
| def test_bad_month_fail(self): | |
| self.assertRaises(Exception, BYearEnd, month=13) | |
| self.assertRaises(Exception, BYearEnd, month=0) | |
| @@ -2619,15 +2952,16 @@ | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((BYearEnd(month=6), | |
| - {datetime(2008, 1, 1): datetime(2008, 6, 30), | |
| - datetime(2007, 6, 30): datetime(2008, 6, 30)}, | |
| - )) | |
| - | |
| - tests.append((BYearEnd(n=-1, month=6), | |
| - {datetime(2008, 1, 1): datetime(2007, 6, 29), | |
| - datetime(2007, 6, 30): datetime(2007, 6, 29)}, | |
| - )) | |
| + tests.append((BYearEnd(month=6), { | |
| + datetime(2008, 1, 1): datetime(2008, 6, 30), | |
| + datetime(2007, 6, 30): datetime(2008, 6, 30) | |
| + }, )) | |
| + | |
| + tests.append((BYearEnd(n=-1, | |
| + month=6), { | |
| + datetime(2008, 1, 1): datetime(2007, 6, 29), | |
| + datetime(2007, 6, 30): datetime(2007, 6, 29) | |
| + }, )) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -2642,10 +2976,8 @@ | |
| def test_onOffset(self): | |
| - tests = [ | |
| - (BYearEnd(month=2), datetime(2007, 2, 28), True), | |
| - (BYearEnd(month=6), datetime(2007, 6, 30), False), | |
| - ] | |
| + tests = [(BYearEnd(month=2), datetime(2007, 2, 28), True), | |
| + (BYearEnd(month=6), datetime(2007, 6, 30), False), ] | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| @@ -2657,31 +2989,35 @@ | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((BYearEnd(), | |
| - {datetime(2008, 1, 1): datetime(2008, 12, 31), | |
| - datetime(2008, 6, 30): datetime(2008, 12, 31), | |
| - datetime(2008, 12, 31): datetime(2009, 12, 31), | |
| - datetime(2005, 12, 30): datetime(2006, 12, 29), | |
| - datetime(2005, 12, 31): datetime(2006, 12, 29), })) | |
| - | |
| - tests.append((BYearEnd(0), | |
| - {datetime(2008, 1, 1): datetime(2008, 12, 31), | |
| - datetime(2008, 6, 30): datetime(2008, 12, 31), | |
| - datetime(2008, 12, 31): datetime(2008, 12, 31), | |
| - datetime(2005, 12, 31): datetime(2006, 12, 29), })) | |
| - | |
| - tests.append((BYearEnd(-1), | |
| - {datetime(2007, 1, 1): datetime(2006, 12, 29), | |
| - datetime(2008, 6, 30): datetime(2007, 12, 31), | |
| - datetime(2008, 12, 31): datetime(2007, 12, 31), | |
| - datetime(2006, 12, 29): datetime(2005, 12, 30), | |
| - datetime(2006, 12, 30): datetime(2006, 12, 29), | |
| - datetime(2007, 1, 1): datetime(2006, 12, 29), })) | |
| - | |
| - tests.append((BYearEnd(-2), | |
| - {datetime(2007, 1, 1): datetime(2005, 12, 30), | |
| - datetime(2008, 6, 30): datetime(2006, 12, 29), | |
| - datetime(2008, 12, 31): datetime(2006, 12, 29), })) | |
| + tests.append((BYearEnd(), { | |
| + datetime(2008, 1, 1): datetime(2008, 12, 31), | |
| + datetime(2008, 6, 30): datetime(2008, 12, 31), | |
| + datetime(2008, 12, 31): datetime(2009, 12, 31), | |
| + datetime(2005, 12, 30): datetime(2006, 12, 29), | |
| + datetime(2005, 12, 31): datetime(2006, 12, 29), | |
| + })) | |
| + | |
| + tests.append((BYearEnd(0), { | |
| + datetime(2008, 1, 1): datetime(2008, 12, 31), | |
| + datetime(2008, 6, 30): datetime(2008, 12, 31), | |
| + datetime(2008, 12, 31): datetime(2008, 12, 31), | |
| + datetime(2005, 12, 31): datetime(2006, 12, 29), | |
| + })) | |
| + | |
| + tests.append((BYearEnd(-1), { | |
| + datetime(2007, 1, 1): datetime(2006, 12, 29), | |
| + datetime(2008, 6, 30): datetime(2007, 12, 31), | |
| + datetime(2008, 12, 31): datetime(2007, 12, 31), | |
| + datetime(2006, 12, 29): datetime(2005, 12, 30), | |
| + datetime(2006, 12, 30): datetime(2006, 12, 29), | |
| + datetime(2007, 1, 1): datetime(2006, 12, 29), | |
| + })) | |
| + | |
| + tests.append((BYearEnd(-2), { | |
| + datetime(2007, 1, 1): datetime(2005, 12, 30), | |
| + datetime(2008, 6, 30): datetime(2006, 12, 29), | |
| + datetime(2008, 12, 31): datetime(2006, 12, 29), | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -2689,12 +3025,10 @@ | |
| def test_onOffset(self): | |
| - tests = [ | |
| - (BYearEnd(), datetime(2007, 12, 31), True), | |
| - (BYearEnd(), datetime(2008, 1, 1), False), | |
| - (BYearEnd(), datetime(2006, 12, 31), False), | |
| - (BYearEnd(), datetime(2006, 12, 29), True), | |
| - ] | |
| + tests = [(BYearEnd(), datetime(2007, 12, 31), True), | |
| + (BYearEnd(), datetime(2008, 1, 1), False), | |
| + (BYearEnd(), datetime(2006, 12, 31), False), | |
| + (BYearEnd(), datetime(2006, 12, 29), True), ] | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| @@ -2709,31 +3043,35 @@ | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((YearEnd(), | |
| - {datetime(2008, 1, 1): datetime(2008, 12, 31), | |
| - datetime(2008, 6, 30): datetime(2008, 12, 31), | |
| - datetime(2008, 12, 31): datetime(2009, 12, 31), | |
| - datetime(2005, 12, 30): datetime(2005, 12, 31), | |
| - datetime(2005, 12, 31): datetime(2006, 12, 31), })) | |
| - | |
| - tests.append((YearEnd(0), | |
| - {datetime(2008, 1, 1): datetime(2008, 12, 31), | |
| - datetime(2008, 6, 30): datetime(2008, 12, 31), | |
| - datetime(2008, 12, 31): datetime(2008, 12, 31), | |
| - datetime(2005, 12, 30): datetime(2005, 12, 31), })) | |
| - | |
| - tests.append((YearEnd(-1), | |
| - {datetime(2007, 1, 1): datetime(2006, 12, 31), | |
| - datetime(2008, 6, 30): datetime(2007, 12, 31), | |
| - datetime(2008, 12, 31): datetime(2007, 12, 31), | |
| - datetime(2006, 12, 29): datetime(2005, 12, 31), | |
| - datetime(2006, 12, 30): datetime(2005, 12, 31), | |
| - datetime(2007, 1, 1): datetime(2006, 12, 31), })) | |
| - | |
| - tests.append((YearEnd(-2), | |
| - {datetime(2007, 1, 1): datetime(2005, 12, 31), | |
| - datetime(2008, 6, 30): datetime(2006, 12, 31), | |
| - datetime(2008, 12, 31): datetime(2006, 12, 31), })) | |
| + tests.append((YearEnd(), { | |
| + datetime(2008, 1, 1): datetime(2008, 12, 31), | |
| + datetime(2008, 6, 30): datetime(2008, 12, 31), | |
| + datetime(2008, 12, 31): datetime(2009, 12, 31), | |
| + datetime(2005, 12, 30): datetime(2005, 12, 31), | |
| + datetime(2005, 12, 31): datetime(2006, 12, 31), | |
| + })) | |
| + | |
| + tests.append((YearEnd(0), { | |
| + datetime(2008, 1, 1): datetime(2008, 12, 31), | |
| + datetime(2008, 6, 30): datetime(2008, 12, 31), | |
| + datetime(2008, 12, 31): datetime(2008, 12, 31), | |
| + datetime(2005, 12, 30): datetime(2005, 12, 31), | |
| + })) | |
| + | |
| + tests.append((YearEnd(-1), { | |
| + datetime(2007, 1, 1): datetime(2006, 12, 31), | |
| + datetime(2008, 6, 30): datetime(2007, 12, 31), | |
| + datetime(2008, 12, 31): datetime(2007, 12, 31), | |
| + datetime(2006, 12, 29): datetime(2005, 12, 31), | |
| + datetime(2006, 12, 30): datetime(2005, 12, 31), | |
| + datetime(2007, 1, 1): datetime(2006, 12, 31), | |
| + })) | |
| + | |
| + tests.append((YearEnd(-2), { | |
| + datetime(2007, 1, 1): datetime(2005, 12, 31), | |
| + datetime(2008, 6, 30): datetime(2006, 12, 31), | |
| + datetime(2008, 12, 31): datetime(2006, 12, 31), | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -2741,48 +3079,52 @@ | |
| def test_onOffset(self): | |
| - tests = [ | |
| - (YearEnd(), datetime(2007, 12, 31), True), | |
| - (YearEnd(), datetime(2008, 1, 1), False), | |
| - (YearEnd(), datetime(2006, 12, 31), True), | |
| - (YearEnd(), datetime(2006, 12, 29), False), | |
| - ] | |
| + tests = [(YearEnd(), datetime(2007, 12, 31), True), | |
| + (YearEnd(), datetime(2008, 1, 1), False), | |
| + (YearEnd(), datetime(2006, 12, 31), True), | |
| + (YearEnd(), datetime(2006, 12, 29), False), ] | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| class TestYearEndDiffMonth(Base): | |
| - | |
| def test_offset(self): | |
| tests = [] | |
| - tests.append((YearEnd(month=3), | |
| - {datetime(2008, 1, 1): datetime(2008, 3, 31), | |
| - datetime(2008, 2, 15): datetime(2008, 3, 31), | |
| - datetime(2008, 3, 31): datetime(2009, 3, 31), | |
| - datetime(2008, 3, 30): datetime(2008, 3, 31), | |
| - datetime(2005, 3, 31): datetime(2006, 3, 31), | |
| - datetime(2006, 7, 30): datetime(2007, 3, 31)})) | |
| - | |
| - tests.append((YearEnd(0, month=3), | |
| - {datetime(2008, 1, 1): datetime(2008, 3, 31), | |
| - datetime(2008, 2, 28): datetime(2008, 3, 31), | |
| - datetime(2008, 3, 31): datetime(2008, 3, 31), | |
| - datetime(2005, 3, 30): datetime(2005, 3, 31), })) | |
| - | |
| - tests.append((YearEnd(-1, month=3), | |
| - {datetime(2007, 1, 1): datetime(2006, 3, 31), | |
| - datetime(2008, 2, 28): datetime(2007, 3, 31), | |
| - datetime(2008, 3, 31): datetime(2007, 3, 31), | |
| - datetime(2006, 3, 29): datetime(2005, 3, 31), | |
| - datetime(2006, 3, 30): datetime(2005, 3, 31), | |
| - datetime(2007, 3, 1): datetime(2006, 3, 31), })) | |
| - | |
| - tests.append((YearEnd(-2, month=3), | |
| - {datetime(2007, 1, 1): datetime(2005, 3, 31), | |
| - datetime(2008, 6, 30): datetime(2007, 3, 31), | |
| - datetime(2008, 3, 31): datetime(2006, 3, 31), })) | |
| + tests.append((YearEnd(month=3), { | |
| + datetime(2008, 1, 1): datetime(2008, 3, 31), | |
| + datetime(2008, 2, 15): datetime(2008, 3, 31), | |
| + datetime(2008, 3, 31): datetime(2009, 3, 31), | |
| + datetime(2008, 3, 30): datetime(2008, 3, 31), | |
| + datetime(2005, 3, 31): datetime(2006, 3, 31), | |
| + datetime(2006, 7, 30): datetime(2007, 3, 31) | |
| + })) | |
| + | |
| + tests.append((YearEnd(0, | |
| + month=3), { | |
| + datetime(2008, 1, 1): datetime(2008, 3, 31), | |
| + datetime(2008, 2, 28): datetime(2008, 3, 31), | |
| + datetime(2008, 3, 31): datetime(2008, 3, 31), | |
| + datetime(2005, 3, 30): datetime(2005, 3, 31), | |
| + })) | |
| + | |
| + tests.append((YearEnd(-1, | |
| + month=3), { | |
| + datetime(2007, 1, 1): datetime(2006, 3, 31), | |
| + datetime(2008, 2, 28): datetime(2007, 3, 31), | |
| + datetime(2008, 3, 31): datetime(2007, 3, 31), | |
| + datetime(2006, 3, 29): datetime(2005, 3, 31), | |
| + datetime(2006, 3, 30): datetime(2005, 3, 31), | |
| + datetime(2007, 3, 1): datetime(2006, 3, 31), | |
| + })) | |
| + | |
| + tests.append((YearEnd(-2, | |
| + month=3), { | |
| + datetime(2007, 1, 1): datetime(2005, 3, 31), | |
| + datetime(2008, 6, 30): datetime(2007, 3, 31), | |
| + datetime(2008, 3, 31): datetime(2006, 3, 31), | |
| + })) | |
| for offset, cases in tests: | |
| for base, expected in compat.iteritems(cases): | |
| @@ -2790,12 +3132,10 @@ | |
| def test_onOffset(self): | |
| - tests = [ | |
| - (YearEnd(month=3), datetime(2007, 3, 31), True), | |
| - (YearEnd(month=3), datetime(2008, 1, 1), False), | |
| - (YearEnd(month=3), datetime(2006, 3, 31), True), | |
| - (YearEnd(month=3), datetime(2006, 3, 29), False), | |
| - ] | |
| + tests = [(YearEnd(month=3), datetime(2007, 3, 31), True), | |
| + (YearEnd(month=3), datetime(2008, 1, 1), False), | |
| + (YearEnd(month=3), datetime(2006, 3, 31), True), | |
| + (YearEnd(month=3), datetime(2006, 3, 29), False), ] | |
| for offset, date, expected in tests: | |
| assertOnOffset(offset, date, expected) | |
| @@ -2812,7 +3152,8 @@ | |
| except AssertionError: | |
| raise AssertionError("\nExpected: %s\nActual: %s\nFor Offset: %s)" | |
| "\nAt Date: %s" % | |
| - (expected, actual, offset, base)) | |
| + (expected, actual, offset, base)) | |
| + | |
| def test_Easter(): | |
| assertEq(Easter(), datetime(2010, 1, 1), datetime(2010, 4, 4)) | |
| @@ -2835,12 +3176,16 @@ | |
| ticks = [Hour, Minute, Second, Milli, Micro, Nano] | |
| def test_ticks(self): | |
| - offsets = [(Hour, Timedelta(hours=5)), | |
| - (Minute, Timedelta(hours=2, minutes=3)), | |
| - (Second, Timedelta(hours=2, seconds=3)), | |
| - (Milli, Timedelta(hours=2, milliseconds=3)), | |
| - (Micro, Timedelta(hours=2, microseconds=3)), | |
| - (Nano, Timedelta(hours=2, nanoseconds=3))] | |
| + offsets = [(Hour, Timedelta(hours=5)), (Minute, Timedelta(hours=2, | |
| + minutes=3)), | |
| + (Second, Timedelta(hours=2, | |
| + seconds=3)), | |
| + (Milli, Timedelta(hours=2, | |
| + milliseconds=3)), | |
| + (Micro, Timedelta(hours=2, | |
| + microseconds=3)), | |
| + (Nano, Timedelta(hours=2, | |
| + nanoseconds=3))] | |
| for kls, expected in offsets: | |
| offset = kls(3) | |
| @@ -2863,7 +3208,8 @@ | |
| assertEq(Minute(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 1)) | |
| assertEq(Minute(-1), datetime(2010, 1, 1, 0, 1), datetime(2010, 1, 1)) | |
| assertEq(2 * Minute(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 2)) | |
| - assertEq(-1 * Minute(), datetime(2010, 1, 1, 0, 1), datetime(2010, 1, 1)) | |
| + assertEq(-1 * Minute(), datetime(2010, 1, 1, 0, 1), datetime(2010, 1, | |
| + 1)) | |
| self.assertEqual(Minute(3) + Minute(2), Minute(5)) | |
| self.assertEqual(Minute(3) - Minute(2), Minute()) | |
| @@ -2871,33 +3217,46 @@ | |
| def test_Second(self): | |
| assertEq(Second(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 1)) | |
| - assertEq(Second(-1), datetime(2010, 1, 1, 0, 0, 1), datetime(2010, 1, 1)) | |
| - assertEq(2 * Second(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 2)) | |
| - assertEq( | |
| - -1 * Second(), datetime(2010, 1, 1, 0, 0, 1), datetime(2010, 1, 1)) | |
| + assertEq(Second(-1), datetime(2010, 1, 1, 0, 0, 1), datetime(2010, 1, | |
| + 1)) | |
| + assertEq(2 * Second(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, | |
| + 2)) | |
| + assertEq(-1 * Second(), datetime(2010, 1, 1, 0, 0, 1), | |
| + datetime(2010, 1, 1)) | |
| self.assertEqual(Second(3) + Second(2), Second(5)) | |
| self.assertEqual(Second(3) - Second(2), Second()) | |
| def test_Millisecond(self): | |
| - assertEq(Milli(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 1000)) | |
| - assertEq(Milli(-1), datetime(2010, 1, 1, 0, 0, 0, 1000), datetime(2010, 1, 1)) | |
| - assertEq(Milli(2), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 2000)) | |
| - assertEq(2 * Milli(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 2000)) | |
| - assertEq(-1 * Milli(), datetime(2010, 1, 1, 0, 0, 0, 1000), datetime(2010, 1, 1)) | |
| + assertEq(Milli(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, | |
| + 1000)) | |
| + assertEq(Milli(-1), datetime(2010, 1, 1, 0, 0, 0, 1000), | |
| + datetime(2010, 1, 1)) | |
| + assertEq(Milli(2), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, | |
| + 2000)) | |
| + assertEq(2 * Milli(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, | |
| + 0, 2000)) | |
| + assertEq(-1 * Milli(), datetime(2010, 1, 1, 0, 0, 0, 1000), | |
| + datetime(2010, 1, 1)) | |
| self.assertEqual(Milli(3) + Milli(2), Milli(5)) | |
| self.assertEqual(Milli(3) - Milli(2), Milli()) | |
| def test_MillisecondTimestampArithmetic(self): | |
| - assertEq(Milli(), Timestamp('2010-01-01'), Timestamp('2010-01-01 00:00:00.001')) | |
| - assertEq(Milli(-1), Timestamp('2010-01-01 00:00:00.001'), Timestamp('2010-01-01')) | |
| + assertEq(Milli(), Timestamp('2010-01-01'), | |
| + Timestamp('2010-01-01 00:00:00.001')) | |
| + assertEq(Milli(-1), Timestamp('2010-01-01 00:00:00.001'), | |
| + Timestamp('2010-01-01')) | |
| def test_Microsecond(self): | |
| - assertEq(Micro(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 1)) | |
| - assertEq(Micro(-1), datetime(2010, 1, 1, 0, 0, 0, 1), datetime(2010, 1, 1)) | |
| - assertEq(2 * Micro(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 2)) | |
| - assertEq(-1 * Micro(), datetime(2010, 1, 1, 0, 0, 0, 1), datetime(2010, 1, 1)) | |
| + assertEq(Micro(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, | |
| + 1)) | |
| + assertEq(Micro(-1), datetime(2010, 1, 1, 0, 0, 0, 1), datetime(2010, 1, | |
| + 1)) | |
| + assertEq(2 * Micro(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, | |
| + 0, 2)) | |
| + assertEq(-1 * Micro(), datetime(2010, 1, 1, 0, 0, 0, 1), | |
| + datetime(2010, 1, 1)) | |
| self.assertEqual(Micro(3) + Micro(2), Micro(5)) | |
| self.assertEqual(Micro(3) - Micro(2), Micro()) | |
| @@ -2974,7 +3333,8 @@ | |
| class TestOffsetNames(tm.TestCase): | |
| def test_get_offset_name(self): | |
| - assertRaisesRegexp(ValueError, 'Bad rule.*BusinessDays', get_offset_name, BDay(2)) | |
| + assertRaisesRegexp(ValueError, 'Bad rule.*BusinessDays', | |
| + get_offset_name, BDay(2)) | |
| assert get_offset_name(BDay()) == 'B' | |
| assert get_offset_name(BMonthEnd()) == 'BM' | |
| @@ -2984,25 +3344,47 @@ | |
| assert get_offset_name(Week(weekday=3)) == 'W-THU' | |
| assert get_offset_name(Week(weekday=4)) == 'W-FRI' | |
| - self.assertEqual(get_offset_name(LastWeekOfMonth(weekday=WeekDay.SUN)), "LWOM-SUN") | |
| - self.assertEqual(get_offset_name(makeFY5253LastOfMonthQuarter(weekday=1, startingMonth=3, qtr_with_extra_week=4)),"REQ-L-MAR-TUE-4") | |
| - self.assertEqual(get_offset_name(makeFY5253NearestEndMonthQuarter(weekday=1, startingMonth=3, qtr_with_extra_week=3)), "REQ-N-MAR-TUE-3") | |
| + self.assertEqual(get_offset_name(LastWeekOfMonth(weekday=WeekDay.SUN)), | |
| + "LWOM-SUN") | |
| + self.assertEqual(get_offset_name(makeFY5253LastOfMonthQuarter( | |
| + weekday=1, | |
| + startingMonth=3, | |
| + qtr_with_extra_week=4)), "REQ-L-MAR-TUE-4") | |
| + self.assertEqual(get_offset_name(makeFY5253NearestEndMonthQuarter( | |
| + weekday=1, | |
| + startingMonth=3, | |
| + qtr_with_extra_week=3)), "REQ-N-MAR-TUE-3") | |
| + | |
| def test_get_offset(): | |
| assertRaisesRegexp(ValueError, "rule.*GIBBERISH", get_offset, 'gibberish') | |
| assertRaisesRegexp(ValueError, "rule.*QS-JAN-B", get_offset, 'QS-JAN-B') | |
| - pairs = [ | |
| - ('B', BDay()), ('b', BDay()), ('bm', BMonthEnd()), | |
| - ('Bm', BMonthEnd()), ('W-MON', Week(weekday=0)), | |
| - ('W-TUE', Week(weekday=1)), ('W-WED', Week(weekday=2)), | |
| - ('W-THU', Week(weekday=3)), ('W-FRI', Week(weekday=4)), | |
| + pairs = [('B', BDay()), | |
| + ('b', BDay()), | |
| + ('bm', BMonthEnd()), | |
| + ('Bm', BMonthEnd()), | |
| + ('W-MON', Week(weekday=0)), | |
| + ('W-TUE', Week(weekday=1)), | |
| + ('W-WED', Week(weekday=2)), | |
| + ('W-THU', Week(weekday=3)), | |
| + ('W-FRI', Week(weekday=4)), | |
| ('w@Sat', Week(weekday=5)), | |
| - ("RE-N-DEC-MON", makeFY5253NearestEndMonth(weekday=0, startingMonth=12)), | |
| - ("RE-L-DEC-TUE", makeFY5253LastOfMonth(weekday=1, startingMonth=12)), | |
| - ("REQ-L-MAR-TUE-4", makeFY5253LastOfMonthQuarter(weekday=1, startingMonth=3, qtr_with_extra_week=4)), | |
| - ("REQ-L-DEC-MON-3", makeFY5253LastOfMonthQuarter(weekday=0, startingMonth=12, qtr_with_extra_week=3)), | |
| - ("REQ-N-DEC-MON-3", makeFY5253NearestEndMonthQuarter(weekday=0, startingMonth=12, qtr_with_extra_week=3)), | |
| - ] | |
| + ("RE-N-DEC-MON", makeFY5253NearestEndMonth(weekday=0, | |
| + startingMonth=12)), | |
| + ("RE-L-DEC-TUE", makeFY5253LastOfMonth(weekday=1, | |
| + startingMonth=12)), | |
| + ("REQ-L-MAR-TUE-4", | |
| + makeFY5253LastOfMonthQuarter(weekday=1, | |
| + startingMonth=3, | |
| + qtr_with_extra_week=4)), | |
| + ("REQ-L-DEC-MON-3", | |
| + makeFY5253LastOfMonthQuarter(weekday=0, | |
| + startingMonth=12, | |
| + qtr_with_extra_week=3)), | |
| + ("REQ-N-DEC-MON-3", | |
| + makeFY5253NearestEndMonthQuarter(weekday=0, | |
| + startingMonth=12, | |
| + qtr_with_extra_week=3)), ] | |
| for name, expected in pairs: | |
| offset = get_offset(name) | |
| @@ -3011,7 +3393,6 @@ | |
| class TestParseTimeString(tm.TestCase): | |
| - | |
| def test_parse_time_string(self): | |
| (date, parsed, reso) = parse_time_string('4Q1984') | |
| (date_lower, parsed_lower, reso_lower) = parse_time_string('4q1984') | |
| @@ -3021,10 +3402,7 @@ | |
| def test_parse_time_quarter_w_dash(self): | |
| # https://github.com/pydata/pandas/issue/9688 | |
| - pairs = [ | |
| - ('1988-Q2', '1988Q2'), | |
| - ('2Q-1988', '2Q1988'), | |
| - ] | |
| + pairs = [('1988-Q2', '1988Q2'), ('2Q-1988', '2Q1988'), ] | |
| for dashed, normal in pairs: | |
| (date_dash, parsed_dash, reso_dash) = parse_time_string(dashed) | |
| @@ -3059,11 +3437,10 @@ | |
| for klass in offsets: | |
| result = date + klass() | |
| - assert(result.time() == date.time()) | |
| + assert (result.time() == date.time()) | |
| class TestOffsetAliases(tm.TestCase): | |
| - | |
| def setUp(self): | |
| _offset_map.clear() | |
| @@ -3101,14 +3478,14 @@ | |
| def test_apply_ticks(): | |
| result = offsets.Hour(3).apply(offsets.Hour(4)) | |
| exp = offsets.Hour(7) | |
| - assert(result == exp) | |
| + assert (result == exp) | |
| def test_delta_to_tick(): | |
| delta = timedelta(3) | |
| tick = offsets._delta_to_tick(delta) | |
| - assert(tick == offsets.Day(3)) | |
| + assert (tick == offsets.Day(3)) | |
| def test_dateoffset_misc(): | |
| @@ -3116,15 +3493,15 @@ | |
| # it works | |
| result = oset.freqstr | |
| - assert(not offsets.DateOffset(months=2) == 2) | |
| + assert (not offsets.DateOffset(months=2) == 2) | |
| def test_freq_offsets(): | |
| off = BDay(1, offset=timedelta(0, 1800)) | |
| - assert(off.freqstr == 'B+30Min') | |
| + assert (off.freqstr == 'B+30Min') | |
| off = BDay(1, offset=timedelta(0, -1800)) | |
| - assert(off.freqstr == 'B-30Min') | |
| + assert (off.freqstr == 'B-30Min') | |
| def get_all_subclasses(cls): | |
| @@ -3135,6 +3512,7 @@ | |
| ret | get_all_subclasses(this_subclass) | |
| return ret | |
| + | |
| class TestCaching(tm.TestCase): | |
| # as of GH 6479 (in 0.14.0), offset caching is turned off | |
| @@ -3152,7 +3530,10 @@ | |
| self.assertTrue(inst1._should_cache(), cls) | |
| - DatetimeIndex(start=datetime(2013,1,31), end=datetime(2013,3,31), freq=inst1, normalize=True) | |
| + DatetimeIndex(start=datetime(2013, 1, 31), | |
| + end=datetime(2013, 3, 31), | |
| + freq=inst1, | |
| + normalize=True) | |
| self.assertTrue(cls() in _daterange_cache, cls) | |
| def test_should_cache_month_end(self): | |
| @@ -3172,32 +3553,42 @@ | |
| self.run_X_index_creation(subclass) | |
| def test_month_end_index_creation(self): | |
| - DatetimeIndex(start=datetime(2013,1,31), end=datetime(2013,3,31), freq=MonthEnd(), normalize=True) | |
| + DatetimeIndex(start=datetime(2013, 1, 31), | |
| + end=datetime(2013, 3, 31), | |
| + freq=MonthEnd(), | |
| + normalize=True) | |
| self.assertFalse(MonthEnd() in _daterange_cache) | |
| def test_bmonth_end_index_creation(self): | |
| - DatetimeIndex(start=datetime(2013,1,31), end=datetime(2013,3,29), freq=BusinessMonthEnd(), normalize=True) | |
| + DatetimeIndex(start=datetime(2013, 1, 31), | |
| + end=datetime(2013, 3, 29), | |
| + freq=BusinessMonthEnd(), | |
| + normalize=True) | |
| self.assertFalse(BusinessMonthEnd() in _daterange_cache) | |
| def test_week_of_month_index_creation(self): | |
| inst1 = WeekOfMonth(weekday=1, week=2) | |
| - DatetimeIndex(start=datetime(2013,1,31), end=datetime(2013,3,29), freq=inst1, normalize=True) | |
| + DatetimeIndex(start=datetime(2013, 1, 31), | |
| + end=datetime(2013, 3, 29), | |
| + freq=inst1, | |
| + normalize=True) | |
| inst2 = WeekOfMonth(weekday=1, week=2) | |
| self.assertFalse(inst2 in _daterange_cache) | |
| + | |
| class TestReprNames(tm.TestCase): | |
| def test_str_for_named_is_name(self): | |
| # look at all the amazing combinations! | |
| month_prefixes = ['A', 'AS', 'BA', 'BAS', 'Q', 'BQ', 'BQS', 'QS'] | |
| - names = [prefix + '-' + month for prefix in month_prefixes | |
| - for month in ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', | |
| - 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC']] | |
| + names = [prefix + '-' + month for prefix in month_prefixes for month in | |
| + ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', | |
| + 'SEP', 'OCT', 'NOV', 'DEC']] | |
| days = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'] | |
| names += ['W-' + day for day in days] | |
| - names += ['WOM-' + week + day for week in ('1', '2', '3', '4') | |
| - for day in days] | |
| + names += ['WOM-' + week + day | |
| + for week in ('1', '2', '3', '4') for day in days] | |
| #singletons | |
| - names += ['S', 'T', 'U', 'BM', 'BMS', 'BQ', 'QS'] # No 'Q' | |
| + names += ['S', 'T', 'U', 'BM', 'BMS', 'BQ', 'QS'] # No 'Q' | |
| _offset_map.clear() | |
| for name in names: | |
| offset = get_offset(name) | |
| @@ -3221,23 +3612,15 @@ | |
| # test both basic names and dateutil timezones | |
| timezone_utc_offsets = { | |
| - 'US/Eastern': dict( | |
| - utc_offset_daylight=-4, | |
| - utc_offset_standard=-5, | |
| - ), | |
| - 'dateutil/US/Pacific': dict( | |
| - utc_offset_daylight=-7, | |
| - utc_offset_standard=-8, | |
| - ) | |
| - } | |
| - valid_date_offsets_singular = [ | |
| - 'weekday', 'day', 'hour', 'minute', 'second', 'microsecond' | |
| - ] | |
| - valid_date_offsets_plural = [ | |
| - 'weeks', 'days', | |
| - 'hours', 'minutes', 'seconds', | |
| - 'milliseconds', 'microseconds' | |
| - ] | |
| + 'US/Eastern': dict(utc_offset_daylight=-4, | |
| + utc_offset_standard=-5, ), | |
| + 'dateutil/US/Pacific': dict(utc_offset_daylight=-7, | |
| + utc_offset_standard=-8, ) | |
| + } | |
| + valid_date_offsets_singular = ['weekday', 'day', 'hour', 'minute', | |
| + 'second', 'microsecond'] | |
| + valid_date_offsets_plural = ['weeks', 'days', 'hours', 'minutes', | |
| + 'seconds', 'milliseconds', 'microseconds'] | |
| def _test_all_offsets(self, n, **kwds): | |
| valid_offsets = self.valid_date_offsets_plural if n > 1 \ | |
| @@ -3256,33 +3639,28 @@ | |
| # dates should match | |
| self.assertTrue( | |
| t.date() == | |
| - timedelta(days=7 * offset.kwds['weeks']) + tstart.date() | |
| - ) | |
| + timedelta(days=7 * offset.kwds['weeks']) + tstart.date()) | |
| # expect the same day of week, hour of day, minute, second, ... | |
| self.assertTrue( | |
| - t.dayofweek == tstart.dayofweek and | |
| - t.hour == tstart.hour and | |
| - t.minute == tstart.minute and | |
| - t.second == tstart.second | |
| - ) | |
| + t.dayofweek == tstart.dayofweek and t.hour == tstart.hour and | |
| + t.minute == tstart.minute and t.second == tstart.second) | |
| elif offset_name == 'days': | |
| # dates should match | |
| - self.assertTrue(timedelta(offset.kwds['days']) + tstart.date() == t.date()) | |
| + self.assertTrue(timedelta(offset.kwds['days']) + tstart.date() == | |
| + t.date()) | |
| # expect the same hour of day, minute, second, ... | |
| - self.assertTrue( | |
| - t.hour == tstart.hour and | |
| - t.minute == tstart.minute and | |
| - t.second == tstart.second | |
| - ) | |
| + self.assertTrue(t.hour == tstart.hour and t.minute == tstart.minute | |
| + and t.second == tstart.second) | |
| elif offset_name in self.valid_date_offsets_singular: | |
| # expect the signular offset value to match between tstart and t | |
| - datepart_offset = getattr(t, offset_name if offset_name != 'weekday' else 'dayofweek') | |
| + datepart_offset = getattr(t, offset_name if offset_name != | |
| + 'weekday' else 'dayofweek') | |
| self.assertTrue(datepart_offset == offset.kwds[offset_name]) | |
| else: | |
| # the offset should be the same as if it was done in UTC | |
| self.assertTrue( | |
| - t == (tstart.tz_convert('UTC') + offset).tz_convert('US/Pacific') | |
| - ) | |
| + t == | |
| + (tstart.tz_convert('UTC') + offset).tz_convert('US/Pacific')) | |
| def _make_timestamp(self, string, hrs_offset, tz): | |
| offset_string = '{hrs:02d}00'.format(hrs=hrs_offset) if hrs_offset >= 0 else \ | |
| @@ -3297,8 +3675,7 @@ | |
| self._test_all_offsets( | |
| n=3, | |
| tstart=self._make_timestamp(self.ts_pre_fallback, hrs_pre, tz), | |
| - expected_utc_offset=hrs_post | |
| - ) | |
| + expected_utc_offset=hrs_post) | |
| def test_springforward_plural(self): | |
| """test moving from standard to daylight savings""" | |
| @@ -3308,8 +3685,7 @@ | |
| self._test_all_offsets( | |
| n=3, | |
| tstart=self._make_timestamp(self.ts_pre_springfwd, hrs_pre, tz), | |
| - expected_utc_offset=hrs_post | |
| - ) | |
| + expected_utc_offset=hrs_post) | |
| def test_fallback_singular(self): | |
| # in the case of signular offsets, we dont neccesarily know which utc offset | |
| @@ -3320,8 +3696,7 @@ | |
| self._test_all_offsets( | |
| n=1, | |
| tstart=self._make_timestamp(self.ts_pre_fallback, hrs_pre, tz), | |
| - expected_utc_offset=None | |
| - ) | |
| + expected_utc_offset=None) | |
| def test_springforward_singular(self): | |
| for tz, utc_offsets in self.timezone_utc_offsets.items(): | |
| @@ -3329,33 +3704,34 @@ | |
| self._test_all_offsets( | |
| n=1, | |
| tstart=self._make_timestamp(self.ts_pre_springfwd, hrs_pre, tz), | |
| - expected_utc_offset=None | |
| - ) | |
| + expected_utc_offset=None) | |
| def test_all_offset_classes(self): | |
| - tests = {MonthBegin: ['11/2/2012', '12/1/2012'], | |
| - MonthEnd: ['11/2/2012', '11/30/2012'], | |
| - BMonthBegin: ['11/2/2012', '12/3/2012'], | |
| - BMonthEnd: ['11/2/2012', '11/30/2012'], | |
| - CBMonthBegin: ['11/2/2012', '12/3/2012'], | |
| - CBMonthEnd: ['11/2/2012', '11/30/2012'], | |
| - Week: ['11/2/2012', '11/9/2012'], | |
| - YearBegin: ['11/2/2012', '1/1/2013'], | |
| - YearEnd: ['11/2/2012', '12/31/2012'], | |
| - BYearBegin: ['11/2/2012', '1/1/2013'], | |
| - BYearEnd: ['11/2/2012', '12/31/2012'], | |
| - QuarterBegin: ['11/2/2012', '12/1/2012'], | |
| - QuarterEnd: ['11/2/2012', '12/31/2012'], | |
| - BQuarterBegin: ['11/2/2012', '12/3/2012'], | |
| - BQuarterEnd: ['11/2/2012', '12/31/2012'], | |
| - Day: ['11/4/2012', '11/4/2012 23:00'] | |
| - } | |
| + tests = { | |
| + MonthBegin: ['11/2/2012', '12/1/2012'], | |
| + MonthEnd: ['11/2/2012', '11/30/2012'], | |
| + BMonthBegin: ['11/2/2012', '12/3/2012'], | |
| + BMonthEnd: ['11/2/2012', '11/30/2012'], | |
| + CBMonthBegin: ['11/2/2012', '12/3/2012'], | |
| + CBMonthEnd: ['11/2/2012', '11/30/2012'], | |
| + Week: ['11/2/2012', '11/9/2012'], | |
| + YearBegin: ['11/2/2012', '1/1/2013'], | |
| + YearEnd: ['11/2/2012', '12/31/2012'], | |
| + BYearBegin: ['11/2/2012', '1/1/2013'], | |
| + BYearEnd: ['11/2/2012', '12/31/2012'], | |
| + QuarterBegin: ['11/2/2012', '12/1/2012'], | |
| + QuarterEnd: ['11/2/2012', '12/31/2012'], | |
| + BQuarterBegin: ['11/2/2012', '12/3/2012'], | |
| + BQuarterEnd: ['11/2/2012', '12/31/2012'], | |
| + Day: ['11/4/2012', '11/4/2012 23:00'] | |
| + } | |
| for offset, test_values in iteritems(tests): | |
| first = Timestamp(test_values[0], tz='US/Eastern') + offset() | |
| second = Timestamp(test_values[1], tz='US/Eastern') | |
| self.assertEqual(first, second, str(offset)) | |
| + | |
| if __name__ == '__main__': | |
| nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'], | |
| exit=False) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment