Skip to content

Instantly share code, notes, and snippets.

@hayd
Created April 20, 2015 06:05
Show Gist options
  • Select an option

  • Save hayd/0a11147544b71f343160 to your computer and use it in GitHub Desktop.

Select an option

Save hayd/0a11147544b71f343160 to your computer and use it in GitHub Desktop.
offsets_yapf_autopep8
--- 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'],
--- 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