|
6 | 6 | import pytest
|
7 | 7 | import warnings
|
8 | 8 | import numpy as np
|
| 9 | +from distutils.version import LooseVersion |
9 | 10 |
|
10 | 11 | import pandas as pd
|
11 | 12 | from pandas import Series, isna
|
|
15 | 16 | import pandas.util._test_decorators as td
|
16 | 17 |
|
17 | 18 | use_bn = nanops._USE_BOTTLENECK
|
18 |
| - |
| 19 | +np_version113 = LooseVersion(np.__version__) >= LooseVersion('1.13') |
19 | 20 |
|
20 | 21 | class TestnanopsDataFrame(object):
|
21 | 22 |
|
@@ -1015,3 +1016,25 @@ def test_use_bottleneck():
|
1015 | 1016 | assert not pd.get_option('use_bottleneck')
|
1016 | 1017 |
|
1017 | 1018 | 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