Skip to content

Commit e5db09f

Browse files
fix compute / feather tests
1 parent 136b091 commit e5db09f

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

python/pyarrow/tests/test_compute.py

+10-9
Original file line numberDiff line numberDiff line change
@@ -1020,7 +1020,7 @@ def test_replace_slice():
10201020
offsets = range(-3, 4)
10211021

10221022
arr = pa.array([None, '', 'a', 'ab', 'abc', 'abcd', 'abcde'])
1023-
series = arr.to_pandas()
1023+
series = arr.to_pandas().astype(object).replace({np.nan: None})
10241024
for start in offsets:
10251025
for stop in offsets:
10261026
expected = series.str.slice_replace(start, stop, 'XX')
@@ -1031,7 +1031,7 @@ def test_replace_slice():
10311031
assert pc.binary_replace_slice(arr, start, stop, 'XX') == actual
10321032

10331033
arr = pa.array([None, '', 'π', 'πb', 'πbθ', 'πbθd', 'πbθde'])
1034-
series = arr.to_pandas()
1034+
series = arr.to_pandas().astype(object).replace({np.nan: None})
10351035
for start in offsets:
10361036
for stop in offsets:
10371037
expected = series.str.slice_replace(start, stop, 'XX')
@@ -2125,50 +2125,51 @@ def test_strftime():
21252125
for fmt in formats:
21262126
options = pc.StrftimeOptions(fmt)
21272127
result = pc.strftime(tsa, options=options)
2128-
expected = pa.array(ts.strftime(fmt))
2128+
# cast to the same type as result to ignore string vs large_string
2129+
expected = pa.array(ts.strftime(fmt)).cast(result.type)
21292130
assert result.equals(expected)
21302131

21312132
fmt = "%Y-%m-%dT%H:%M:%S"
21322133

21332134
# Default format
21342135
tsa = pa.array(ts, type=pa.timestamp("s", timezone))
21352136
result = pc.strftime(tsa, options=pc.StrftimeOptions())
2136-
expected = pa.array(ts.strftime(fmt))
2137+
expected = pa.array(ts.strftime(fmt)).cast(result.type)
21372138
assert result.equals(expected)
21382139

21392140
# Default format plus timezone
21402141
tsa = pa.array(ts, type=pa.timestamp("s", timezone))
21412142
result = pc.strftime(tsa, options=pc.StrftimeOptions(fmt + "%Z"))
2142-
expected = pa.array(ts.strftime(fmt + "%Z"))
2143+
expected = pa.array(ts.strftime(fmt + "%Z")).cast(result.type)
21432144
assert result.equals(expected)
21442145

21452146
# Pandas %S is equivalent to %S in arrow for unit="s"
21462147
tsa = pa.array(ts, type=pa.timestamp("s", timezone))
21472148
options = pc.StrftimeOptions("%S")
21482149
result = pc.strftime(tsa, options=options)
2149-
expected = pa.array(ts.strftime("%S"))
2150+
expected = pa.array(ts.strftime("%S")).cast(result.type)
21502151
assert result.equals(expected)
21512152

21522153
# Pandas %S.%f is equivalent to %S in arrow for unit="us"
21532154
tsa = pa.array(ts, type=pa.timestamp("us", timezone))
21542155
options = pc.StrftimeOptions("%S")
21552156
result = pc.strftime(tsa, options=options)
2156-
expected = pa.array(ts.strftime("%S.%f"))
2157+
expected = pa.array(ts.strftime("%S.%f")).cast(result.type)
21572158
assert result.equals(expected)
21582159

21592160
# Test setting locale
21602161
tsa = pa.array(ts, type=pa.timestamp("s", timezone))
21612162
options = pc.StrftimeOptions(fmt, locale="C")
21622163
result = pc.strftime(tsa, options=options)
2163-
expected = pa.array(ts.strftime(fmt))
2164+
expected = pa.array(ts.strftime(fmt)).cast(result.type)
21642165
assert result.equals(expected)
21652166

21662167
# Test timestamps without timezone
21672168
fmt = "%Y-%m-%dT%H:%M:%S"
21682169
ts = pd.to_datetime(times)
21692170
tsa = pa.array(ts, type=pa.timestamp("s"))
21702171
result = pc.strftime(tsa, options=pc.StrftimeOptions(fmt))
2171-
expected = pa.array(ts.strftime(fmt))
2172+
expected = pa.array(ts.strftime(fmt)).cast(result.type)
21722173

21732174
# Positional format
21742175
assert pc.strftime(tsa, fmt) == result

python/pyarrow/tests/test_feather.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,11 @@ def test_empty_strings(version):
426426
@pytest.mark.pandas
427427
def test_all_none(version):
428428
df = pd.DataFrame({'all_none': [None] * 10})
429-
_check_pandas_roundtrip(df, version=version)
429+
if version == 1:
430+
expected = df.astype("str")
431+
else:
432+
expected = df
433+
_check_pandas_roundtrip(df, version=version, expected=expected)
430434

431435

432436
@pytest.mark.pandas

0 commit comments

Comments
 (0)