test_deprecations.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. """Test deprecation and future warnings.
  2. """
  3. from __future__ import division, absolute_import, print_function
  4. import numpy as np
  5. from numpy.testing import assert_warns
  6. from numpy.ma.testutils import assert_equal
  7. from numpy.ma.core import MaskedArrayFutureWarning
  8. class TestArgsort(object):
  9. """ gh-8701 """
  10. def _test_base(self, argsort, cls):
  11. arr_0d = np.array(1).view(cls)
  12. argsort(arr_0d)
  13. arr_1d = np.array([1, 2, 3]).view(cls)
  14. argsort(arr_1d)
  15. # argsort has a bad default for >1d arrays
  16. arr_2d = np.array([[1, 2], [3, 4]]).view(cls)
  17. result = assert_warns(
  18. np.ma.core.MaskedArrayFutureWarning, argsort, arr_2d)
  19. assert_equal(result, argsort(arr_2d, axis=None))
  20. # should be no warnings for explicitly specifying it
  21. argsort(arr_2d, axis=None)
  22. argsort(arr_2d, axis=-1)
  23. def test_function_ndarray(self):
  24. return self._test_base(np.ma.argsort, np.ndarray)
  25. def test_function_maskedarray(self):
  26. return self._test_base(np.ma.argsort, np.ma.MaskedArray)
  27. def test_method(self):
  28. return self._test_base(np.ma.MaskedArray.argsort, np.ma.MaskedArray)
  29. class TestMinimumMaximum(object):
  30. def test_minimum(self):
  31. assert_warns(DeprecationWarning, np.ma.minimum, np.ma.array([1, 2]))
  32. def test_maximum(self):
  33. assert_warns(DeprecationWarning, np.ma.maximum, np.ma.array([1, 2]))
  34. def test_axis_default(self):
  35. # NumPy 1.13, 2017-05-06
  36. data1d = np.ma.arange(6)
  37. data2d = data1d.reshape(2, 3)
  38. ma_min = np.ma.minimum.reduce
  39. ma_max = np.ma.maximum.reduce
  40. # check that the default axis is still None, but warns on 2d arrays
  41. result = assert_warns(MaskedArrayFutureWarning, ma_max, data2d)
  42. assert_equal(result, ma_max(data2d, axis=None))
  43. result = assert_warns(MaskedArrayFutureWarning, ma_min, data2d)
  44. assert_equal(result, ma_min(data2d, axis=None))
  45. # no warnings on 1d, as both new and old defaults are equivalent
  46. result = ma_min(data1d)
  47. assert_equal(result, ma_min(data1d, axis=None))
  48. assert_equal(result, ma_min(data1d, axis=0))
  49. result = ma_max(data1d)
  50. assert_equal(result, ma_max(data1d, axis=None))
  51. assert_equal(result, ma_max(data1d, axis=0))