Skip to content

Commit 6e37f87

Browse files
jbrockmendeljreback
authored andcommitted
collect index formatting tests (#19661)
1 parent 192bd46 commit 6e37f87

File tree

8 files changed

+431
-415
lines changed

8 files changed

+431
-415
lines changed

pandas/tests/indexes/datetimes/test_formats.py

+174-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
from pandas import DatetimeIndex
1+
from datetime import datetime
2+
from pandas import DatetimeIndex, Series
23

34
import numpy as np
5+
import dateutil.tz
6+
import pytz
7+
import pytest
48

59
import pandas.util.testing as tm
610
import pandas as pd
@@ -45,3 +49,172 @@ def test_to_native_types():
4549

4650
result = index.to_native_types(na_rep='pandas')
4751
tm.assert_numpy_array_equal(result, expected)
52+
53+
54+
class TestDatetimeIndexRendering(object):
55+
def test_dti_repr_short(self):
56+
dr = pd.date_range(start='1/1/2012', periods=1)
57+
repr(dr)
58+
59+
dr = pd.date_range(start='1/1/2012', periods=2)
60+
repr(dr)
61+
62+
dr = pd.date_range(start='1/1/2012', periods=3)
63+
repr(dr)
64+
65+
@pytest.mark.parametrize('method', ['__repr__', '__unicode__', '__str__'])
66+
def test_dti_representation(self, method):
67+
idxs = []
68+
idxs.append(DatetimeIndex([], freq='D'))
69+
idxs.append(DatetimeIndex(['2011-01-01'], freq='D'))
70+
idxs.append(DatetimeIndex(['2011-01-01', '2011-01-02'], freq='D'))
71+
idxs.append(DatetimeIndex(['2011-01-01', '2011-01-02', '2011-01-03'],
72+
freq='D'))
73+
idxs.append(DatetimeIndex(
74+
['2011-01-01 09:00', '2011-01-01 10:00', '2011-01-01 11:00'
75+
], freq='H', tz='Asia/Tokyo'))
76+
idxs.append(DatetimeIndex(
77+
['2011-01-01 09:00', '2011-01-01 10:00', pd.NaT], tz='US/Eastern'))
78+
idxs.append(DatetimeIndex(
79+
['2011-01-01 09:00', '2011-01-01 10:00', pd.NaT], tz='UTC'))
80+
81+
exp = []
82+
exp.append("""DatetimeIndex([], dtype='datetime64[ns]', freq='D')""")
83+
exp.append("DatetimeIndex(['2011-01-01'], dtype='datetime64[ns]', "
84+
"freq='D')")
85+
exp.append("DatetimeIndex(['2011-01-01', '2011-01-02'], "
86+
"dtype='datetime64[ns]', freq='D')")
87+
exp.append("DatetimeIndex(['2011-01-01', '2011-01-02', '2011-01-03'], "
88+
"dtype='datetime64[ns]', freq='D')")
89+
exp.append("DatetimeIndex(['2011-01-01 09:00:00+09:00', "
90+
"'2011-01-01 10:00:00+09:00', '2011-01-01 11:00:00+09:00']"
91+
", dtype='datetime64[ns, Asia/Tokyo]', freq='H')")
92+
exp.append("DatetimeIndex(['2011-01-01 09:00:00-05:00', "
93+
"'2011-01-01 10:00:00-05:00', 'NaT'], "
94+
"dtype='datetime64[ns, US/Eastern]', freq=None)")
95+
exp.append("DatetimeIndex(['2011-01-01 09:00:00+00:00', "
96+
"'2011-01-01 10:00:00+00:00', 'NaT'], "
97+
"dtype='datetime64[ns, UTC]', freq=None)""")
98+
99+
with pd.option_context('display.width', 300):
100+
for indx, expected in zip(idxs, exp):
101+
result = getattr(indx, method)()
102+
assert result == expected
103+
104+
def test_dti_representation_to_series(self):
105+
idx1 = DatetimeIndex([], freq='D')
106+
idx2 = DatetimeIndex(['2011-01-01'], freq='D')
107+
idx3 = DatetimeIndex(['2011-01-01', '2011-01-02'], freq='D')
108+
idx4 = DatetimeIndex(
109+
['2011-01-01', '2011-01-02', '2011-01-03'], freq='D')
110+
idx5 = DatetimeIndex(['2011-01-01 09:00', '2011-01-01 10:00',
111+
'2011-01-01 11:00'], freq='H', tz='Asia/Tokyo')
112+
idx6 = DatetimeIndex(['2011-01-01 09:00', '2011-01-01 10:00', pd.NaT],
113+
tz='US/Eastern')
114+
idx7 = DatetimeIndex(['2011-01-01 09:00', '2011-01-02 10:15'])
115+
116+
exp1 = """Series([], dtype: datetime64[ns])"""
117+
118+
exp2 = ("0 2011-01-01\n"
119+
"dtype: datetime64[ns]")
120+
121+
exp3 = ("0 2011-01-01\n"
122+
"1 2011-01-02\n"
123+
"dtype: datetime64[ns]")
124+
125+
exp4 = ("0 2011-01-01\n"
126+
"1 2011-01-02\n"
127+
"2 2011-01-03\n"
128+
"dtype: datetime64[ns]")
129+
130+
exp5 = ("0 2011-01-01 09:00:00+09:00\n"
131+
"1 2011-01-01 10:00:00+09:00\n"
132+
"2 2011-01-01 11:00:00+09:00\n"
133+
"dtype: datetime64[ns, Asia/Tokyo]")
134+
135+
exp6 = ("0 2011-01-01 09:00:00-05:00\n"
136+
"1 2011-01-01 10:00:00-05:00\n"
137+
"2 NaT\n"
138+
"dtype: datetime64[ns, US/Eastern]")
139+
140+
exp7 = ("0 2011-01-01 09:00:00\n"
141+
"1 2011-01-02 10:15:00\n"
142+
"dtype: datetime64[ns]")
143+
144+
with pd.option_context('display.width', 300):
145+
for idx, expected in zip([idx1, idx2, idx3, idx4,
146+
idx5, idx6, idx7],
147+
[exp1, exp2, exp3, exp4,
148+
exp5, exp6, exp7]):
149+
result = repr(Series(idx))
150+
assert result == expected
151+
152+
def test_dti_summary(self):
153+
# GH#9116
154+
idx1 = DatetimeIndex([], freq='D')
155+
idx2 = DatetimeIndex(['2011-01-01'], freq='D')
156+
idx3 = DatetimeIndex(['2011-01-01', '2011-01-02'], freq='D')
157+
idx4 = DatetimeIndex(
158+
['2011-01-01', '2011-01-02', '2011-01-03'], freq='D')
159+
idx5 = DatetimeIndex(['2011-01-01 09:00', '2011-01-01 10:00',
160+
'2011-01-01 11:00'],
161+
freq='H', tz='Asia/Tokyo')
162+
idx6 = DatetimeIndex(['2011-01-01 09:00', '2011-01-01 10:00', pd.NaT],
163+
tz='US/Eastern')
164+
165+
exp1 = ("DatetimeIndex: 0 entries\n"
166+
"Freq: D")
167+
168+
exp2 = ("DatetimeIndex: 1 entries, 2011-01-01 to 2011-01-01\n"
169+
"Freq: D")
170+
171+
exp3 = ("DatetimeIndex: 2 entries, 2011-01-01 to 2011-01-02\n"
172+
"Freq: D")
173+
174+
exp4 = ("DatetimeIndex: 3 entries, 2011-01-01 to 2011-01-03\n"
175+
"Freq: D")
176+
177+
exp5 = ("DatetimeIndex: 3 entries, 2011-01-01 09:00:00+09:00 "
178+
"to 2011-01-01 11:00:00+09:00\n"
179+
"Freq: H")
180+
181+
exp6 = """DatetimeIndex: 3 entries, 2011-01-01 09:00:00-05:00 to NaT"""
182+
183+
for idx, expected in zip([idx1, idx2, idx3, idx4, idx5, idx6],
184+
[exp1, exp2, exp3, exp4, exp5, exp6]):
185+
result = idx.summary()
186+
assert result == expected
187+
188+
def test_dti_business_repr(self):
189+
# only really care that it works
190+
repr(pd.bdate_range(datetime(2009, 1, 1), datetime(2010, 1, 1)))
191+
192+
def test_dti_business_summary(self):
193+
rng = pd.bdate_range(datetime(2009, 1, 1), datetime(2010, 1, 1))
194+
rng.summary()
195+
rng[2:2].summary()
196+
197+
def test_dti_business_summary_pytz(self):
198+
pd.bdate_range('1/1/2005', '1/1/2009', tz=pytz.utc).summary()
199+
200+
def test_dti_business_summary_dateutil(self):
201+
pd.bdate_range('1/1/2005', '1/1/2009',
202+
tz=dateutil.tz.tzutc()).summary()
203+
204+
def test_dti_custom_business_repr(self):
205+
# only really care that it works
206+
repr(pd.bdate_range(datetime(2009, 1, 1), datetime(2010, 1, 1),
207+
freq='C'))
208+
209+
def test_dti_custom_business_summary(self):
210+
rng = pd.bdate_range(datetime(2009, 1, 1), datetime(2010, 1, 1),
211+
freq='C')
212+
rng.summary()
213+
rng[2:2].summary()
214+
215+
def test_dti_custom_business_summary_pytz(self):
216+
pd.bdate_range('1/1/2005', '1/1/2009', freq='C', tz=pytz.utc).summary()
217+
218+
def test_dti_custom_business_summary_dateutil(self):
219+
pd.bdate_range('1/1/2005', '1/1/2009', freq='C',
220+
tz=dateutil.tz.tzutc()).summary()

pandas/tests/indexes/datetimes/test_misc.py

-10
Original file line numberDiff line numberDiff line change
@@ -83,16 +83,6 @@ def test_range_edges(self):
8383
'1970-01-03', '1970-01-04'])
8484
tm.assert_index_equal(idx, exp)
8585

86-
def test_datetimeindex_repr_short(self):
87-
dr = date_range(start='1/1/2012', periods=1)
88-
repr(dr)
89-
90-
dr = date_range(start='1/1/2012', periods=2)
91-
repr(dr)
92-
93-
dr = date_range(start='1/1/2012', periods=3)
94-
repr(dr)
95-
9686

9787
class TestDatetime64(object):
9888

pandas/tests/indexes/datetimes/test_ops.py

-155
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import pytz
21
import pytest
3-
import dateutil
42
import warnings
53
import numpy as np
64
from datetime import datetime
@@ -153,130 +151,6 @@ def test_repeat(self):
153151
tm.assert_raises_regex(ValueError, msg, np.repeat,
154152
rng, reps, axis=1)
155153

156-
def test_representation(self):
157-
158-
idx = []
159-
idx.append(DatetimeIndex([], freq='D'))
160-
idx.append(DatetimeIndex(['2011-01-01'], freq='D'))
161-
idx.append(DatetimeIndex(['2011-01-01', '2011-01-02'], freq='D'))
162-
idx.append(DatetimeIndex(
163-
['2011-01-01', '2011-01-02', '2011-01-03'], freq='D'))
164-
idx.append(DatetimeIndex(
165-
['2011-01-01 09:00', '2011-01-01 10:00', '2011-01-01 11:00'
166-
], freq='H', tz='Asia/Tokyo'))
167-
idx.append(DatetimeIndex(
168-
['2011-01-01 09:00', '2011-01-01 10:00', pd.NaT], tz='US/Eastern'))
169-
idx.append(DatetimeIndex(
170-
['2011-01-01 09:00', '2011-01-01 10:00', pd.NaT], tz='UTC'))
171-
172-
exp = []
173-
exp.append("""DatetimeIndex([], dtype='datetime64[ns]', freq='D')""")
174-
exp.append("DatetimeIndex(['2011-01-01'], dtype='datetime64[ns]', "
175-
"freq='D')")
176-
exp.append("DatetimeIndex(['2011-01-01', '2011-01-02'], "
177-
"dtype='datetime64[ns]', freq='D')")
178-
exp.append("DatetimeIndex(['2011-01-01', '2011-01-02', '2011-01-03'], "
179-
"dtype='datetime64[ns]', freq='D')")
180-
exp.append("DatetimeIndex(['2011-01-01 09:00:00+09:00', "
181-
"'2011-01-01 10:00:00+09:00', '2011-01-01 11:00:00+09:00']"
182-
", dtype='datetime64[ns, Asia/Tokyo]', freq='H')")
183-
exp.append("DatetimeIndex(['2011-01-01 09:00:00-05:00', "
184-
"'2011-01-01 10:00:00-05:00', 'NaT'], "
185-
"dtype='datetime64[ns, US/Eastern]', freq=None)")
186-
exp.append("DatetimeIndex(['2011-01-01 09:00:00+00:00', "
187-
"'2011-01-01 10:00:00+00:00', 'NaT'], "
188-
"dtype='datetime64[ns, UTC]', freq=None)""")
189-
190-
with pd.option_context('display.width', 300):
191-
for indx, expected in zip(idx, exp):
192-
for func in ['__repr__', '__unicode__', '__str__']:
193-
result = getattr(indx, func)()
194-
assert result == expected
195-
196-
def test_representation_to_series(self):
197-
idx1 = DatetimeIndex([], freq='D')
198-
idx2 = DatetimeIndex(['2011-01-01'], freq='D')
199-
idx3 = DatetimeIndex(['2011-01-01', '2011-01-02'], freq='D')
200-
idx4 = DatetimeIndex(
201-
['2011-01-01', '2011-01-02', '2011-01-03'], freq='D')
202-
idx5 = DatetimeIndex(['2011-01-01 09:00', '2011-01-01 10:00',
203-
'2011-01-01 11:00'], freq='H', tz='Asia/Tokyo')
204-
idx6 = DatetimeIndex(['2011-01-01 09:00', '2011-01-01 10:00', pd.NaT],
205-
tz='US/Eastern')
206-
idx7 = DatetimeIndex(['2011-01-01 09:00', '2011-01-02 10:15'])
207-
208-
exp1 = """Series([], dtype: datetime64[ns])"""
209-
210-
exp2 = ("0 2011-01-01\n"
211-
"dtype: datetime64[ns]")
212-
213-
exp3 = ("0 2011-01-01\n"
214-
"1 2011-01-02\n"
215-
"dtype: datetime64[ns]")
216-
217-
exp4 = ("0 2011-01-01\n"
218-
"1 2011-01-02\n"
219-
"2 2011-01-03\n"
220-
"dtype: datetime64[ns]")
221-
222-
exp5 = ("0 2011-01-01 09:00:00+09:00\n"
223-
"1 2011-01-01 10:00:00+09:00\n"
224-
"2 2011-01-01 11:00:00+09:00\n"
225-
"dtype: datetime64[ns, Asia/Tokyo]")
226-
227-
exp6 = ("0 2011-01-01 09:00:00-05:00\n"
228-
"1 2011-01-01 10:00:00-05:00\n"
229-
"2 NaT\n"
230-
"dtype: datetime64[ns, US/Eastern]")
231-
232-
exp7 = ("0 2011-01-01 09:00:00\n"
233-
"1 2011-01-02 10:15:00\n"
234-
"dtype: datetime64[ns]")
235-
236-
with pd.option_context('display.width', 300):
237-
for idx, expected in zip([idx1, idx2, idx3, idx4,
238-
idx5, idx6, idx7],
239-
[exp1, exp2, exp3, exp4,
240-
exp5, exp6, exp7]):
241-
result = repr(Series(idx))
242-
assert result == expected
243-
244-
def test_summary(self):
245-
# GH9116
246-
idx1 = DatetimeIndex([], freq='D')
247-
idx2 = DatetimeIndex(['2011-01-01'], freq='D')
248-
idx3 = DatetimeIndex(['2011-01-01', '2011-01-02'], freq='D')
249-
idx4 = DatetimeIndex(
250-
['2011-01-01', '2011-01-02', '2011-01-03'], freq='D')
251-
idx5 = DatetimeIndex(['2011-01-01 09:00', '2011-01-01 10:00',
252-
'2011-01-01 11:00'],
253-
freq='H', tz='Asia/Tokyo')
254-
idx6 = DatetimeIndex(['2011-01-01 09:00', '2011-01-01 10:00', pd.NaT],
255-
tz='US/Eastern')
256-
257-
exp1 = ("DatetimeIndex: 0 entries\n"
258-
"Freq: D")
259-
260-
exp2 = ("DatetimeIndex: 1 entries, 2011-01-01 to 2011-01-01\n"
261-
"Freq: D")
262-
263-
exp3 = ("DatetimeIndex: 2 entries, 2011-01-01 to 2011-01-02\n"
264-
"Freq: D")
265-
266-
exp4 = ("DatetimeIndex: 3 entries, 2011-01-01 to 2011-01-03\n"
267-
"Freq: D")
268-
269-
exp5 = ("DatetimeIndex: 3 entries, 2011-01-01 09:00:00+09:00 "
270-
"to 2011-01-01 11:00:00+09:00\n"
271-
"Freq: H")
272-
273-
exp6 = """DatetimeIndex: 3 entries, 2011-01-01 09:00:00-05:00 to NaT"""
274-
275-
for idx, expected in zip([idx1, idx2, idx3, idx4, idx5, idx6],
276-
[exp1, exp2, exp3, exp4, exp5, exp6]):
277-
result = idx.summary()
278-
assert result == expected
279-
280154
def test_resolution(self):
281155
for freq, expected in zip(['A', 'Q', 'M', 'D', 'H', 'T',
282156
'S', 'L', 'U'],
@@ -544,10 +418,6 @@ def test_copy(self):
544418
repr(cp)
545419
tm.assert_index_equal(cp, self.rng)
546420

547-
def test_repr(self):
548-
# only really care that it works
549-
repr(self.rng)
550-
551421
def test_shift(self):
552422
shifted = self.rng.shift(5)
553423
assert shifted[0] == self.rng[5]
@@ -565,16 +435,6 @@ def test_shift(self):
565435
shifted = rng.shift(1, freq=BDay())
566436
assert shifted[0] == rng[0] + BDay()
567437

568-
def test_summary(self):
569-
self.rng.summary()
570-
self.rng[2:2].summary()
571-
572-
def test_summary_pytz(self):
573-
bdate_range('1/1/2005', '1/1/2009', tz=pytz.utc).summary()
574-
575-
def test_summary_dateutil(self):
576-
bdate_range('1/1/2005', '1/1/2009', tz=dateutil.tz.tzutc()).summary()
577-
578438
def test_equals(self):
579439
assert not self.rng.equals(list(self.rng))
580440

@@ -612,10 +472,6 @@ def test_copy(self):
612472
repr(cp)
613473
tm.assert_index_equal(cp, self.rng)
614474

615-
def test_repr(self):
616-
# only really care that it works
617-
repr(self.rng)
618-
619475
def test_shift(self):
620476

621477
shifted = self.rng.shift(5)
@@ -640,16 +496,5 @@ def test_pickle_unpickle(self):
640496
unpickled = tm.round_trip_pickle(self.rng)
641497
assert unpickled.offset is not None
642498

643-
def test_summary(self):
644-
self.rng.summary()
645-
self.rng[2:2].summary()
646-
647-
def test_summary_pytz(self):
648-
bdate_range('1/1/2005', '1/1/2009', freq='C', tz=pytz.utc).summary()
649-
650-
def test_summary_dateutil(self):
651-
bdate_range('1/1/2005', '1/1/2009', freq='C',
652-
tz=dateutil.tz.tzutc()).summary()
653-
654499
def test_equals(self):
655500
assert not self.rng.equals(list(self.rng))

0 commit comments

Comments
 (0)