summaryrefslogtreecommitdiff
path: root/numpy/lib/tests/test_function_base.py
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2013-06-20 20:44:54 -0600
committerCharles Harris <charlesr.harris@gmail.com>2013-08-12 22:33:55 -0600
commitfcb0fef5c673ed0a5442b18bcd8c391907b4f9a7 (patch)
tree24726ff3fbb7a167a8fdf89ac5cb74792c9cc6e7 /numpy/lib/tests/test_function_base.py
parent777b6453e166df252298a47ef4f0e867614ac94a (diff)
downloadnumpy-fcb0fef5c673ed0a5442b18bcd8c391907b4f9a7.tar.gz
MAINT: Separate nan functions into their own module.
New files lib/nanfunctions.py and lib/tests/test_nanfunctions.py are added and both the previous and new nan functions and tests are moved into them. The existing nan functions moved from lib/function_base are: nansum, nanmin, nanmax, nanargmin, nanargmax The added nan functions moved from core/numeric are: nanmean, nanvar, nanstd
Diffstat (limited to 'numpy/lib/tests/test_function_base.py')
-rw-r--r--numpy/lib/tests/test_function_base.py133
1 files changed, 5 insertions, 128 deletions
diff --git a/numpy/lib/tests/test_function_base.py b/numpy/lib/tests/test_function_base.py
index 814743442..cf303993b 100644
--- a/numpy/lib/tests/test_function_base.py
+++ b/numpy/lib/tests/test_function_base.py
@@ -3,10 +3,10 @@ from __future__ import division, absolute_import, print_function
import warnings
import numpy as np
from numpy.testing import (
- run_module_suite, TestCase, assert_, assert_equal,
- assert_array_equal, assert_almost_equal, assert_array_almost_equal,
- assert_raises, assert_allclose, assert_array_max_ulp, assert_warns
- )
+ run_module_suite, TestCase, assert_, assert_equal, assert_array_equal,
+ assert_almost_equal, assert_array_almost_equal, assert_raises,
+ assert_allclose, assert_array_max_ulp, assert_warns
+ )
from numpy.random import rand
from numpy.lib import *
from numpy.compat import long
@@ -1111,127 +1111,6 @@ class TestCheckFinite(TestCase):
assert_(a.dtype == np.float64)
-class TestNaNFuncts(TestCase):
- def setUp(self):
- self.A = np.array([[[ np.nan, 0.01319214, 0.01620964],
- [ 0.11704017, np.nan, 0.75157887],
- [ 0.28333658, 0.1630199 , np.nan ]],
- [[ 0.59541557, np.nan, 0.37910852],
- [ np.nan, 0.87964135, np.nan ],
- [ 0.70543747, np.nan, 0.34306596]],
- [[ 0.72687499, 0.91084584, np.nan ],
- [ 0.84386844, 0.38944762, 0.23913896],
- [ np.nan, 0.37068164, 0.33850425]]])
-
- def test_nansum(self):
- assert_almost_equal(nansum(self.A), 8.0664079100000006)
- assert_almost_equal(nansum(self.A, 0),
- np.array([[ 1.32229056, 0.92403798, 0.39531816],
- [ 0.96090861, 1.26908897, 0.99071783],
- [ 0.98877405, 0.53370154, 0.68157021]]))
- assert_almost_equal(nansum(self.A, 1),
- np.array([[ 0.40037675, 0.17621204, 0.76778851],
- [ 1.30085304, 0.87964135, 0.72217448],
- [ 1.57074343, 1.6709751 , 0.57764321]]))
- assert_almost_equal(nansum(self.A, 2),
- np.array([[ 0.02940178, 0.86861904, 0.44635648],
- [ 0.97452409, 0.87964135, 1.04850343],
- [ 1.63772083, 1.47245502, 0.70918589]]))
-
- def test_nanmin(self):
- assert_almost_equal(nanmin(self.A), 0.01319214)
- assert_almost_equal(nanmin(self.A, 0),
- np.array([[ 0.59541557, 0.01319214, 0.01620964],
- [ 0.11704017, 0.38944762, 0.23913896],
- [ 0.28333658, 0.1630199 , 0.33850425]]))
- assert_almost_equal(nanmin(self.A, 1),
- np.array([[ 0.11704017, 0.01319214, 0.01620964],
- [ 0.59541557, 0.87964135, 0.34306596],
- [ 0.72687499, 0.37068164, 0.23913896]]))
- assert_almost_equal(nanmin(self.A, 2),
- np.array([[ 0.01319214, 0.11704017, 0.1630199 ],
- [ 0.37910852, 0.87964135, 0.34306596],
- [ 0.72687499, 0.23913896, 0.33850425]]))
- assert_(np.isnan(nanmin([np.nan, np.nan])))
-
- def test_nanargmin(self):
- assert_almost_equal(nanargmin(self.A), 1)
- assert_almost_equal(nanargmin(self.A, 0),
- np.array([[1, 0, 0],
- [0, 2, 2],
- [0, 0, 2]]))
- assert_almost_equal(nanargmin(self.A, 1),
- np.array([[1, 0, 0],
- [0, 1, 2],
- [0, 2, 1]]))
- assert_almost_equal(nanargmin(self.A, 2),
- np.array([[1, 0, 1],
- [2, 1, 2],
- [0, 2, 2]]))
-
- def test_nanmax(self):
- assert_almost_equal(nanmax(self.A), 0.91084584000000002)
- assert_almost_equal(nanmax(self.A, 0),
- np.array([[ 0.72687499, 0.91084584, 0.37910852],
- [ 0.84386844, 0.87964135, 0.75157887],
- [ 0.70543747, 0.37068164, 0.34306596]]))
- assert_almost_equal(nanmax(self.A, 1),
- np.array([[ 0.28333658, 0.1630199 , 0.75157887],
- [ 0.70543747, 0.87964135, 0.37910852],
- [ 0.84386844, 0.91084584, 0.33850425]]))
- assert_almost_equal(nanmax(self.A, 2),
- np.array([[ 0.01620964, 0.75157887, 0.28333658],
- [ 0.59541557, 0.87964135, 0.70543747],
- [ 0.91084584, 0.84386844, 0.37068164]]))
- assert_(np.isnan(nanmax([np.nan, np.nan])))
-
- def test_nanmin_allnan_on_axis(self):
- assert_array_equal(np.isnan(nanmin([[np.nan] * 2] * 3, axis=1)),
- [True, True, True])
-
- def test_nanmin_masked(self):
- a = np.ma.fix_invalid([[2, 1, 3, np.nan], [5, 2, 3, np.nan]])
- ctrl_mask = a._mask.copy()
- test = np.nanmin(a, axis=1)
- assert_equal(test, [1, 2])
- assert_equal(a._mask, ctrl_mask)
- assert_equal(np.isinf(a), np.zeros((2, 4), dtype=bool))
-
-
-class TestNanFunctsIntTypes(TestCase):
-
- int_types = (
- np.int8, np.int16, np.int32, np.int64, np.uint8,
- np.uint16, np.uint32, np.uint64)
-
- def setUp(self, *args, **kwargs):
- self.A = np.array([127, 39, 93, 87, 46])
-
- def integer_arrays(self):
- for dtype in self.int_types:
- yield self.A.astype(dtype)
-
- def test_nanmin(self):
- min_value = min(self.A)
- for A in self.integer_arrays():
- assert_equal(nanmin(A), min_value)
-
- def test_nanmax(self):
- max_value = max(self.A)
- for A in self.integer_arrays():
- assert_equal(nanmax(A), max_value)
-
- def test_nanargmin(self):
- min_arg = np.argmin(self.A)
- for A in self.integer_arrays():
- assert_equal(nanargmin(A), min_arg)
-
- def test_nanargmax(self):
- max_arg = np.argmax(self.A)
- for A in self.integer_arrays():
- assert_equal(nanargmax(A), max_arg)
-
-
class TestCorrCoef(TestCase):
A = np.array([[ 0.15391142, 0.18045767, 0.14197213],
[ 0.70461506, 0.96474128, 0.27906989],
@@ -1278,7 +1157,7 @@ class TestCov(TestCase):
assert_equal(cov(np.array([]).reshape(0, 2)).shape, (0, 2))
-class Test_i0(TestCase):
+class Test_I0(TestCase):
def test_simple(self):
assert_almost_equal(i0(0.5), np.array(1.0634833707413234))
A = np.array([ 0.49842636, 0.6969809 , 0.22011976, 0.0155549])
@@ -1596,7 +1475,5 @@ class TestAdd_newdoc_ufunc(TestCase):
assert_raises(TypeError, add_newdoc_ufunc, np.add, 3)
-
-
if __name__ == "__main__":
run_module_suite()