@@ -144,17 +144,22 @@ def test_int64_overflow(all_parsers, conv, request):
144
144
if parser .engine == "pyarrow" :
145
145
mark = pytest .mark .xfail (reason = "parses to float64" )
146
146
request .applymarker (mark )
147
+ elif parser .engine == "python" :
148
+ mark = pytest .mark .xfail (
149
+ reason = "TODO: Python engine reads bigint as string"
150
+ )
151
+ request .applymarker (mark )
147
152
148
153
result = parser .read_csv (StringIO (data ))
149
154
expected = DataFrame (
150
155
[
151
- "00013007854817840016671868" ,
152
- "00013007854817840016749251" ,
153
- "00013007854817840016754630" ,
154
- "00013007854817840016781876" ,
155
- "00013007854817840017028824" ,
156
- "00013007854817840017963235" ,
157
- "00013007854817840018860166" ,
156
+ 13007854817840016671868 ,
157
+ 13007854817840016749251 ,
158
+ 13007854817840016754630 ,
159
+ 13007854817840016781876 ,
160
+ 13007854817840017028824 ,
161
+ 13007854817840017963235 ,
162
+ 13007854817840018860166 ,
158
163
],
159
164
columns = ["ID" ],
160
165
)
@@ -185,7 +190,7 @@ def test_int64_overflow(all_parsers, conv, request):
185
190
)
186
191
def test_int64_uint64_range (all_parsers , val ):
187
192
# These numbers fall right inside the int64-uint64
188
- # range, so they should be parsed as string .
193
+ # range, so they should be parsed as integer .
189
194
parser = all_parsers
190
195
result = parser .read_csv (StringIO (str (val )), header = None )
191
196
@@ -197,13 +202,17 @@ def test_int64_uint64_range(all_parsers, val):
197
202
@pytest .mark .parametrize (
198
203
"val" , [np .iinfo (np .uint64 ).max + 1 , np .iinfo (np .int64 ).min - 1 ]
199
204
)
200
- def test_outside_int64_uint64_range (all_parsers , val ):
205
+ def test_outside_int64_uint64_range (all_parsers , val , request ):
201
206
# These numbers fall just outside the int64-uint64
202
- # range, so they should be parsed as string .
207
+ # range, so they should be parsed as object .
203
208
parser = all_parsers
209
+ if parser .engine == "python" :
210
+ mark = pytest .mark .xfail (reason = "TODO: Python engine reads bigint as string" )
211
+ request .applymarker (mark )
212
+
204
213
result = parser .read_csv (StringIO (str (val )), header = None )
205
214
206
- expected = DataFrame ([str ( val ) ])
215
+ expected = DataFrame ([val ])
207
216
tm .assert_frame_equal (result , expected )
208
217
209
218
0 commit comments