Skip to content

Commit 359f1ec

Browse files
author
tp
committed
add test for numpy ops, esp. nanmin/max bug for np<1.13
1 parent 5bb5e33 commit 359f1ec

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

pandas/tests/test_nanops.py

+24-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import pytest
77
import warnings
88
import numpy as np
9+
from distutils.version import LooseVersion
910

1011
import pandas as pd
1112
from pandas import Series, isna
@@ -15,7 +16,7 @@
1516
import pandas.util._test_decorators as td
1617

1718
use_bn = nanops._USE_BOTTLENECK
18-
19+
np_version113 = LooseVersion(np.__version__) >= LooseVersion('1.13')
1920

2021
class TestnanopsDataFrame(object):
2122

@@ -1015,3 +1016,25 @@ def test_use_bottleneck():
10151016
assert not pd.get_option('use_bottleneck')
10161017

10171018
pd.set_option('use_bottleneck', use_bn)
1019+
1020+
1021+
@pytest.mark.parametrize("numpy_op, passes_all_numpy_version, expected", [
1022+
(np.sum, True, 10),
1023+
(np.nansum, True, 10),
1024+
(np.mean, True, 2.5),
1025+
(np.nanmean, True, 2.5),
1026+
(np.median, True, 2.5),
1027+
(np.nanmedian, True, 2.5),
1028+
(np.min, True, 1),
1029+
(np.nanmin, False, 1),
1030+
(np.max, True, 4),
1031+
(np.nanmax, False, 4),
1032+
])
1033+
def test_numpy_ops(numpy_op, passes_all_numpy_version, expected):
1034+
# GH8383
1035+
result = numpy_op(pd.Series([1, 2, 3, 4]))
1036+
if passes_all_numpy_version or np_version113:
1037+
assert result == expected
1038+
else: # bug for numpy < 1.13, where result is a series, should be a scalar
1039+
with pytest.raises(ValueError):
1040+
assert result == expected

0 commit comments

Comments
 (0)