Skip to content

Commit 8c41e62

Browse files
sinhrksjreback
authored andcommitted
TST: Add name vaidation for dt accessor
closes #10712 closes #12479
1 parent 56e285a commit 8c41e62

File tree

1 file changed

+69
-55
lines changed

1 file changed

+69
-55
lines changed

pandas/tests/series/test_datetime_values.py

+69-55
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def get_expected(s, name):
5252
result = result.astype('int64')
5353
elif not com.is_list_like(result):
5454
return result
55-
return Series(result, index=s.index)
55+
return Series(result, index=s.index, name=s.name)
5656

5757
def compare(s, name):
5858
a = getattr(s.dt, prop)
@@ -63,10 +63,12 @@ def compare(s, name):
6363
tm.assert_series_equal(a, b)
6464

6565
# datetimeindex
66-
for s in [Series(date_range('20130101', periods=5)),
67-
Series(date_range('20130101', periods=5, freq='s')),
68-
Series(date_range('20130101 00:00:00', periods=5, freq='ms'))
69-
]:
66+
cases = [Series(date_range('20130101', periods=5), name='xxx'),
67+
Series(date_range('20130101', periods=5, freq='s'),
68+
name='xxx'),
69+
Series(date_range('20130101 00:00:00', periods=5, freq='ms'),
70+
name='xxx')]
71+
for s in cases:
7072
for prop in ok_for_dt:
7173
# we test freq below
7274
if prop != 'freq':
@@ -80,9 +82,8 @@ def compare(s, name):
8082
self.assertTrue(result.dtype == object)
8183

8284
result = s.dt.tz_localize('US/Eastern')
83-
expected = Series(
84-
DatetimeIndex(s.values).tz_localize('US/Eastern'),
85-
index=s.index)
85+
exp_values = DatetimeIndex(s.values).tz_localize('US/Eastern')
86+
expected = Series(exp_values, index=s.index, name='xxx')
8687
tm.assert_series_equal(result, expected)
8788

8889
tz_result = result.dt.tz
@@ -93,48 +94,50 @@ def compare(s, name):
9394

9495
# let's localize, then convert
9596
result = s.dt.tz_localize('UTC').dt.tz_convert('US/Eastern')
96-
expected = Series(
97-
DatetimeIndex(s.values).tz_localize('UTC').tz_convert(
98-
'US/Eastern'), index=s.index)
97+
exp_values = (DatetimeIndex(s.values).tz_localize('UTC')
98+
.tz_convert('US/Eastern'))
99+
expected = Series(exp_values, index=s.index, name='xxx')
99100
tm.assert_series_equal(result, expected)
100101

101102
# round
102-
s = Series(pd.to_datetime(
103-
['2012-01-01 13:00:00', '2012-01-01 12:01:00',
104-
'2012-01-01 08:00:00']))
103+
s = Series(pd.to_datetime(['2012-01-01 13:00:00',
104+
'2012-01-01 12:01:00',
105+
'2012-01-01 08:00:00']), name='xxx')
105106
result = s.dt.round('D')
106107
expected = Series(pd.to_datetime(['2012-01-02', '2012-01-02',
107-
'2012-01-01']))
108+
'2012-01-01']), name='xxx')
108109
tm.assert_series_equal(result, expected)
109110

110111
# round with tz
111-
result = s.dt.tz_localize('UTC').dt.tz_convert('US/Eastern').dt.round(
112-
'D')
113-
expected = Series(pd.to_datetime(['2012-01-01', '2012-01-01',
114-
'2012-01-01']).tz_localize(
115-
'US/Eastern'))
112+
result = (s.dt.tz_localize('UTC')
113+
.dt.tz_convert('US/Eastern')
114+
.dt.round('D'))
115+
exp_values = pd.to_datetime(['2012-01-01', '2012-01-01',
116+
'2012-01-01']).tz_localize('US/Eastern')
117+
expected = Series(exp_values, name='xxx')
116118
tm.assert_series_equal(result, expected)
117119

118120
# floor
119-
s = Series(pd.to_datetime(
120-
['2012-01-01 13:00:00', '2012-01-01 12:01:00',
121-
'2012-01-01 08:00:00']))
121+
s = Series(pd.to_datetime(['2012-01-01 13:00:00',
122+
'2012-01-01 12:01:00',
123+
'2012-01-01 08:00:00']), name='xxx')
122124
result = s.dt.floor('D')
123125
expected = Series(pd.to_datetime(['2012-01-01', '2012-01-01',
124-
'2012-01-01']))
126+
'2012-01-01']), name='xxx')
125127
tm.assert_series_equal(result, expected)
126128

127129
# ceil
128-
s = Series(pd.to_datetime(
129-
['2012-01-01 13:00:00', '2012-01-01 12:01:00',
130-
'2012-01-01 08:00:00']))
130+
s = Series(pd.to_datetime(['2012-01-01 13:00:00',
131+
'2012-01-01 12:01:00',
132+
'2012-01-01 08:00:00']), name='xxx')
131133
result = s.dt.ceil('D')
132134
expected = Series(pd.to_datetime(['2012-01-02', '2012-01-02',
133-
'2012-01-02']))
135+
'2012-01-02']), name='xxx')
134136
tm.assert_series_equal(result, expected)
135137

136138
# datetimeindex with tz
137-
s = Series(date_range('20130101', periods=5, tz='US/Eastern'))
139+
s = Series(date_range('20130101', periods=5, tz='US/Eastern'),
140+
name='xxx')
138141
for prop in ok_for_dt:
139142

140143
# we test freq below
@@ -149,7 +152,8 @@ def compare(s, name):
149152
self.assertTrue(result.dtype == object)
150153

151154
result = s.dt.tz_convert('CET')
152-
expected = Series(s._values.tz_convert('CET'), index=s.index)
155+
expected = Series(s._values.tz_convert('CET'),
156+
index=s.index, name='xxx')
153157
tm.assert_series_equal(result, expected)
154158

155159
tz_result = result.dt.tz
@@ -159,11 +163,13 @@ def compare(s, name):
159163
freq='infer').freq)
160164

161165
# timedeltaindex
162-
for s in [Series(
163-
timedelta_range('1 day', periods=5), index=list('abcde')),
164-
Series(timedelta_range('1 day 01:23:45', periods=5, freq='s')),
165-
Series(timedelta_range('2 days 01:23:45.012345', periods=5,
166-
freq='ms'))]:
166+
cases = [Series(timedelta_range('1 day', periods=5),
167+
index=list('abcde'), name='xxx'),
168+
Series(timedelta_range('1 day 01:23:45', periods=5,
169+
freq='s'), name='xxx'),
170+
Series(timedelta_range('2 days 01:23:45.012345', periods=5,
171+
freq='ms'), name='xxx')]
172+
for s in cases:
167173
for prop in ok_for_td:
168174
# we test freq below
169175
if prop != 'freq':
@@ -190,21 +196,27 @@ def compare(s, name):
190196

191197
# both
192198
index = date_range('20130101', periods=3, freq='D')
193-
s = Series(date_range('20140204', periods=3, freq='s'), index=index)
194-
tm.assert_series_equal(s.dt.year, Series(
195-
np.array(
196-
[2014, 2014, 2014], dtype='int64'), index=index))
197-
tm.assert_series_equal(s.dt.month, Series(
198-
np.array(
199-
[2, 2, 2], dtype='int64'), index=index))
200-
tm.assert_series_equal(s.dt.second, Series(
201-
np.array(
202-
[0, 1, 2], dtype='int64'), index=index))
203-
tm.assert_series_equal(s.dt.normalize(), pd.Series(
204-
[s[0]] * 3, index=index))
199+
s = Series(date_range('20140204', periods=3, freq='s'),
200+
index=index, name='xxx')
201+
exp = Series(np.array([2014, 2014, 2014], dtype='int64'),
202+
index=index, name='xxx')
203+
tm.assert_series_equal(s.dt.year, exp)
204+
205+
exp = Series(np.array([2, 2, 2], dtype='int64'),
206+
index=index, name='xxx')
207+
tm.assert_series_equal(s.dt.month, exp)
208+
209+
exp = Series(np.array([0, 1, 2], dtype='int64'),
210+
index=index, name='xxx')
211+
tm.assert_series_equal(s.dt.second, exp)
212+
213+
exp = pd.Series([s[0]] * 3, index=index, name='xxx')
214+
tm.assert_series_equal(s.dt.normalize(), exp)
205215

206216
# periodindex
207-
for s in [Series(period_range('20130101', periods=5, freq='D'))]:
217+
cases = [Series(period_range('20130101', periods=5, freq='D'),
218+
name='xxx')]
219+
for s in cases:
208220
for prop in ok_for_period:
209221
# we test freq below
210222
if prop != 'freq':
@@ -221,30 +233,32 @@ def get_dir(s):
221233
results = [r for r in s.dt.__dir__() if not r.startswith('_')]
222234
return list(sorted(set(results)))
223235

224-
s = Series(date_range('20130101', periods=5, freq='D'))
236+
s = Series(date_range('20130101', periods=5, freq='D'), name='xxx')
225237
results = get_dir(s)
226238
tm.assert_almost_equal(
227239
results, list(sorted(set(ok_for_dt + ok_for_dt_methods))))
228240

229-
s = Series(period_range('20130101', periods=5, freq='D').asobject)
241+
s = Series(period_range('20130101', periods=5,
242+
freq='D', name='xxx').asobject)
230243
results = get_dir(s)
231244
tm.assert_almost_equal(
232245
results, list(sorted(set(ok_for_period + ok_for_period_methods))))
233246

234247
# 11295
235248
# ambiguous time error on the conversions
236-
s = Series(pd.date_range('2015-01-01', '2016-01-01', freq='T'))
249+
s = Series(pd.date_range('2015-01-01', '2016-01-01',
250+
freq='T'), name='xxx')
237251
s = s.dt.tz_localize('UTC').dt.tz_convert('America/Chicago')
238252
results = get_dir(s)
239253
tm.assert_almost_equal(
240254
results, list(sorted(set(ok_for_dt + ok_for_dt_methods))))
241-
expected = Series(pd.date_range('2015-01-01', '2016-01-01', freq='T',
242-
tz='UTC').tz_convert(
243-
'America/Chicago'))
255+
exp_values = pd.date_range('2015-01-01', '2016-01-01', freq='T',
256+
tz='UTC').tz_convert('America/Chicago')
257+
expected = Series(exp_values, name='xxx')
244258
tm.assert_series_equal(s, expected)
245259

246260
# no setting allowed
247-
s = Series(date_range('20130101', periods=5, freq='D'))
261+
s = Series(date_range('20130101', periods=5, freq='D'), name='xxx')
248262
with tm.assertRaisesRegexp(ValueError, "modifications"):
249263
s.dt.hour = 5
250264

0 commit comments

Comments
 (0)