|
"""Test deprecation and future warnings. |
|
|
|
""" |
|
import pytest |
|
import numpy as np |
|
from numpy.testing import assert_warns |
|
from numpy.ma.testutils import assert_equal |
|
from numpy.ma.core import MaskedArrayFutureWarning |
|
import io |
|
import textwrap |
|
|
|
class TestArgsort: |
|
""" gh-8701 """ |
|
def _test_base(self, argsort, cls): |
|
arr_0d = np.array(1).view(cls) |
|
argsort(arr_0d) |
|
|
|
arr_1d = np.array([1, 2, 3]).view(cls) |
|
argsort(arr_1d) |
|
|
|
|
|
arr_2d = np.array([[1, 2], [3, 4]]).view(cls) |
|
result = assert_warns( |
|
np.ma.core.MaskedArrayFutureWarning, argsort, arr_2d) |
|
assert_equal(result, argsort(arr_2d, axis=None)) |
|
|
|
|
|
argsort(arr_2d, axis=None) |
|
argsort(arr_2d, axis=-1) |
|
|
|
def test_function_ndarray(self): |
|
return self._test_base(np.ma.argsort, np.ndarray) |
|
|
|
def test_function_maskedarray(self): |
|
return self._test_base(np.ma.argsort, np.ma.MaskedArray) |
|
|
|
def test_method(self): |
|
return self._test_base(np.ma.MaskedArray.argsort, np.ma.MaskedArray) |
|
|
|
|
|
class TestMinimumMaximum: |
|
|
|
def test_axis_default(self): |
|
|
|
|
|
data1d = np.ma.arange(6) |
|
data2d = data1d.reshape(2, 3) |
|
|
|
ma_min = np.ma.minimum.reduce |
|
ma_max = np.ma.maximum.reduce |
|
|
|
|
|
result = assert_warns(MaskedArrayFutureWarning, ma_max, data2d) |
|
assert_equal(result, ma_max(data2d, axis=None)) |
|
|
|
result = assert_warns(MaskedArrayFutureWarning, ma_min, data2d) |
|
assert_equal(result, ma_min(data2d, axis=None)) |
|
|
|
|
|
result = ma_min(data1d) |
|
assert_equal(result, ma_min(data1d, axis=None)) |
|
assert_equal(result, ma_min(data1d, axis=0)) |
|
|
|
result = ma_max(data1d) |
|
assert_equal(result, ma_max(data1d, axis=None)) |
|
assert_equal(result, ma_max(data1d, axis=0)) |
|
|
|
|
|
class TestFromtextfile: |
|
def test_fromtextfile_delimitor(self): |
|
|
|
|
|
textfile = io.StringIO(textwrap.dedent( |
|
""" |
|
A,B,C,D |
|
'string 1';1;1.0;'mixed column' |
|
'string 2';2;2.0; |
|
'string 3';3;3.0;123 |
|
'string 4';4;4.0;3.14 |
|
""" |
|
)) |
|
|
|
with pytest.warns(DeprecationWarning): |
|
result = np.ma.mrecords.fromtextfile(textfile, delimitor=';') |
|
|