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