Skip to content

Commit be0b2a4

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

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

pandas/tests/test_nanops.py

+24
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,6 +16,7 @@
1516
import pandas.util._test_decorators as td
1617

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

1921

2022
class TestnanopsDataFrame(object):
@@ -1015,3 +1017,25 @@ def test_use_bottleneck():
10151017
assert not pd.get_option('use_bottleneck')
10161018

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

0 commit comments

Comments
 (0)