@@ -103,3 +103,132 @@ def test_repr_max_seq_item_setting(idx):
103
103
with pd .option_context ("display.max_seq_items" , None ):
104
104
repr (idx )
105
105
assert '...' not in str (idx )
106
+
107
+
108
+ class TestRepr (object ):
109
+
110
+ def setup_class (self ):
111
+ n = 1000
112
+ ci = pd .CategoricalIndex (list ('a' * n ) + (['abc' ] * n ))
113
+ dti = pd .date_range ('2000-01-01' , freq = 's' , periods = n * 2 )
114
+ self .narrow_mi = pd .MultiIndex .from_arrays ([ci , ci .codes + 9 , dti ],
115
+ names = ['a' , 'b' , 'dti' ])
116
+
117
+ levels = [ci , ci .codes + 9 , dti , dti , dti ]
118
+ names = ['a' , 'b' , 'dti_1' , 'dti_2' , 'dti_3' ]
119
+ self .wide_mi = pd .MultiIndex .from_arrays (levels , names = names )
120
+
121
+ def test_repr (self , idx ):
122
+ result = idx [:1 ].__repr__ ()
123
+ expected = """MultiIndex([('foo', 'one')],
124
+ dtype='object', names=['first', 'second'])"""
125
+ assert result == expected
126
+
127
+ result = idx .__repr__ ()
128
+ expected = """MultiIndex([('foo', 'one'),
129
+ ('foo', 'two'),
130
+ ('bar', 'one'),
131
+ ('baz', 'two'),
132
+ ('qux', 'one'),
133
+ ('qux', 'two')],
134
+ dtype='object', names=['first', 'second'])"""
135
+ assert result == expected
136
+
137
+ with pd .option_context ('display.max_seq_items' , 5 ):
138
+ result = idx .__repr__ ()
139
+ expected = """MultiIndex([('foo', 'one'),
140
+ ('foo', 'two'),
141
+ ...
142
+ ('qux', 'one'),
143
+ ('qux', 'two')],
144
+ dtype='object', names=['first', 'second'], length=6)"""
145
+ assert result == expected
146
+
147
+ def test_rjust (self ):
148
+ result = self .narrow_mi [:1 ].__repr__ ()
149
+ expected = """\
150
+ MultiIndex([('a', 9, '2000-01-01 00:00:00')],
151
+ dtype='object', names=['a', 'b', 'dti'])"""
152
+ assert result == expected
153
+
154
+ result = self .narrow_mi [::500 ].__repr__ ()
155
+ expected = """\
156
+ MultiIndex([( 'a', 9, '2000-01-01 00:00:00'),
157
+ ( 'a', 9, '2000-01-01 00:08:20'),
158
+ ('abc', 10, '2000-01-01 00:16:40'),
159
+ ('abc', 10, '2000-01-01 00:25:00')],
160
+ dtype='object', names=['a', 'b', 'dti'])"""
161
+ assert result == expected
162
+
163
+ result = self .narrow_mi .__repr__ ()
164
+ expected = """\
165
+ MultiIndex([( 'a', 9, '2000-01-01 00:00:00'),
166
+ ( 'a', 9, '2000-01-01 00:00:01'),
167
+ ( 'a', 9, '2000-01-01 00:00:02'),
168
+ ( 'a', 9, '2000-01-01 00:00:03'),
169
+ ( 'a', 9, '2000-01-01 00:00:04'),
170
+ ( 'a', 9, '2000-01-01 00:00:05'),
171
+ ( 'a', 9, '2000-01-01 00:00:06'),
172
+ ( 'a', 9, '2000-01-01 00:00:07'),
173
+ ( 'a', 9, '2000-01-01 00:00:08'),
174
+ ( 'a', 9, '2000-01-01 00:00:09'),
175
+ ...
176
+ ('abc', 10, '2000-01-01 00:33:10'),
177
+ ('abc', 10, '2000-01-01 00:33:11'),
178
+ ('abc', 10, '2000-01-01 00:33:12'),
179
+ ('abc', 10, '2000-01-01 00:33:13'),
180
+ ('abc', 10, '2000-01-01 00:33:14'),
181
+ ('abc', 10, '2000-01-01 00:33:15'),
182
+ ('abc', 10, '2000-01-01 00:33:16'),
183
+ ('abc', 10, '2000-01-01 00:33:17'),
184
+ ('abc', 10, '2000-01-01 00:33:18'),
185
+ ('abc', 10, '2000-01-01 00:33:19')],
186
+ dtype='object', names=['a', 'b', 'dti'], length=2000)"""
187
+ assert result == expected
188
+
189
+ def test_tuple_width (self ):
190
+ result = self .wide_mi [:1 ].__repr__ ()
191
+ expected = """MultiIndex([('a', 9, '2000-01-01 00:00:00', '2000-01-01 00:00:00', ...)],
192
+ dtype='object', names=['a', 'b', 'dti_1', 'dti_2', 'dti_3'])"""
193
+ assert result == expected
194
+
195
+ result = self .wide_mi [:10 ].__repr__ ()
196
+ expected = """\
197
+ MultiIndex([('a', 9, '2000-01-01 00:00:00', '2000-01-01 00:00:00', ...),
198
+ ('a', 9, '2000-01-01 00:00:01', '2000-01-01 00:00:01', ...),
199
+ ('a', 9, '2000-01-01 00:00:02', '2000-01-01 00:00:02', ...),
200
+ ('a', 9, '2000-01-01 00:00:03', '2000-01-01 00:00:03', ...),
201
+ ('a', 9, '2000-01-01 00:00:04', '2000-01-01 00:00:04', ...),
202
+ ('a', 9, '2000-01-01 00:00:05', '2000-01-01 00:00:05', ...),
203
+ ('a', 9, '2000-01-01 00:00:06', '2000-01-01 00:00:06', ...),
204
+ ('a', 9, '2000-01-01 00:00:07', '2000-01-01 00:00:07', ...),
205
+ ('a', 9, '2000-01-01 00:00:08', '2000-01-01 00:00:08', ...),
206
+ ('a', 9, '2000-01-01 00:00:09', '2000-01-01 00:00:09', ...)],
207
+ dtype='object', names=['a', 'b', 'dti_1', 'dti_2', 'dti_3'])"""
208
+ assert result == expected
209
+
210
+ result = self .wide_mi .__repr__ ()
211
+ expected = """\
212
+ MultiIndex([( 'a', 9, '2000-01-01 00:00:00', '2000-01-01 00:00:00', ...),
213
+ ( 'a', 9, '2000-01-01 00:00:01', '2000-01-01 00:00:01', ...),
214
+ ( 'a', 9, '2000-01-01 00:00:02', '2000-01-01 00:00:02', ...),
215
+ ( 'a', 9, '2000-01-01 00:00:03', '2000-01-01 00:00:03', ...),
216
+ ( 'a', 9, '2000-01-01 00:00:04', '2000-01-01 00:00:04', ...),
217
+ ( 'a', 9, '2000-01-01 00:00:05', '2000-01-01 00:00:05', ...),
218
+ ( 'a', 9, '2000-01-01 00:00:06', '2000-01-01 00:00:06', ...),
219
+ ( 'a', 9, '2000-01-01 00:00:07', '2000-01-01 00:00:07', ...),
220
+ ( 'a', 9, '2000-01-01 00:00:08', '2000-01-01 00:00:08', ...),
221
+ ( 'a', 9, '2000-01-01 00:00:09', '2000-01-01 00:00:09', ...),
222
+ ...
223
+ ('abc', 10, '2000-01-01 00:33:10', '2000-01-01 00:33:10', ...),
224
+ ('abc', 10, '2000-01-01 00:33:11', '2000-01-01 00:33:11', ...),
225
+ ('abc', 10, '2000-01-01 00:33:12', '2000-01-01 00:33:12', ...),
226
+ ('abc', 10, '2000-01-01 00:33:13', '2000-01-01 00:33:13', ...),
227
+ ('abc', 10, '2000-01-01 00:33:14', '2000-01-01 00:33:14', ...),
228
+ ('abc', 10, '2000-01-01 00:33:15', '2000-01-01 00:33:15', ...),
229
+ ('abc', 10, '2000-01-01 00:33:16', '2000-01-01 00:33:16', ...),
230
+ ('abc', 10, '2000-01-01 00:33:17', '2000-01-01 00:33:17', ...),
231
+ ('abc', 10, '2000-01-01 00:33:18', '2000-01-01 00:33:18', ...),
232
+ ('abc', 10, '2000-01-01 00:33:19', '2000-01-01 00:33:19', ...)],
233
+ dtype='object', names=['a', 'b', 'dti_1', 'dti_2', 'dti_3'], length=2000)""" # noqa
234
+ assert result == expected
0 commit comments