diff options
Diffstat (limited to 'numpy/lib/tests')
-rw-r--r-- | numpy/lib/tests/test_ufunclike.py | 134 |
1 files changed, 60 insertions, 74 deletions
diff --git a/numpy/lib/tests/test_ufunclike.py b/numpy/lib/tests/test_ufunclike.py index 5830e7175..e07b495eb 100644 --- a/numpy/lib/tests/test_ufunclike.py +++ b/numpy/lib/tests/test_ufunclike.py @@ -1,85 +1,71 @@ -""" ->>> import numpy.core as nx ->>> import numpy.lib.ufunclike as U +from numpy.testing import * +import numpy.core as nx +import numpy.lib.ufunclike as ufl +import warnings -Test fix: ->>> a = nx.array([[1.0, 1.1, 1.5, 1.8], [-1.0, -1.1, -1.5, -1.8]]) ->>> U.fix(a) -array([[ 1., 1., 1., 1.], - [-1., -1., -1., -1.]]) ->>> y = nx.zeros(a.shape, float) ->>> U.fix(a, y) -array([[ 1., 1., 1., 1.], - [-1., -1., -1., -1.]]) ->>> y -array([[ 1., 1., 1., 1.], - [-1., -1., -1., -1.]]) +class TestUfunclike(TestCase): -Test isposinf, isneginf, sign ->>> a = nx.array([nx.Inf, -nx.Inf, nx.NaN, 0.0, 3.0, -3.0]) ->>> U.isposinf(a) -array([ True, False, False, False, False, False], dtype=bool) ->>> U.isneginf(a) -array([False, True, False, False, False, False], dtype=bool) ->>> olderr = nx.seterr(invalid='ignore') ->>> nx.sign(a) -array([ 1., -1., NaN, 0., 1., -1.]) ->>> olderr = nx.seterr(**olderr) + def test_isposinf(self): + a = nx.array([nx.inf, -nx.inf, nx.nan, 0.0, 3.0, -3.0]) + out = nx.zeros(a.shape, bool) + tgt = nx.array([True, False, False, False, False, False]) -Same thing with an output array: ->>> y = nx.zeros(a.shape, bool) ->>> U.isposinf(a, y) -array([ True, False, False, False, False, False], dtype=bool) ->>> y -array([ True, False, False, False, False, False], dtype=bool) ->>> U.isneginf(a, y) -array([False, True, False, False, False, False], dtype=bool) ->>> y -array([False, True, False, False, False, False], dtype=bool) ->>> olderr = nx.seterr(invalid='ignore') ->>> nx.sign(a, y) -array([ True, True, True, False, True, True], dtype=bool) ->>> olderr = nx.seterr(**olderr) ->>> y -array([ True, True, True, False, True, True], dtype=bool) + res = ufl.isposinf(a) + assert_equal(res, tgt) + res = ufl.isposinf(a, out) + assert_equal(res, tgt) + assert_equal(out, tgt) -Now log2: ->>> a = nx.array([4.5, 2.3, 6.5]) ->>> U.log2(a) -array([ 2.169925 , 1.20163386, 2.70043972]) ->>> 2**_ -array([ 4.5, 2.3, 6.5]) ->>> y = nx.zeros(a.shape, float) ->>> U.log2(a, y) -array([ 2.169925 , 1.20163386, 2.70043972]) ->>> y -array([ 2.169925 , 1.20163386, 2.70043972]) + def test_isneginf(self): + a = nx.array([nx.inf, -nx.inf, nx.nan, 0.0, 3.0, -3.0]) + out = nx.zeros(a.shape, bool) + tgt = nx.array([False, True, False, False, False, False]) -""" + res = ufl.isneginf(a) + assert_equal(res, tgt) + res = ufl.isneginf(a, out) + assert_equal(res, tgt) + assert_equal(out, tgt) -from numpy.testing import * -import numpy.core as nx -import numpy.lib.ufunclike as ufl + def test_log2(self): + a = nx.array([4.5, 2.3, 6.5]) + out = nx.zeros(a.shape, float) + tgt = nx.array([2.169925, 1.20163386, 2.70043972]) + with warnings.catch_warnings(): + warnings.filterwarnings("ignore",category=DeprecationWarning) + res = ufl.log2(a) + assert_almost_equal(res, tgt) + res = ufl.log2(a, out) + assert_almost_equal(res, tgt) + assert_almost_equal(out, tgt) + + def test_fix(self): + a = nx.array([[1.0, 1.1, 1.5, 1.8], [-1.0, -1.1, -1.5, -1.8]]) + out = nx.zeros(a.shape, float) + tgt = nx.array([[ 1., 1., 1., 1.], [-1., -1., -1., -1.]]) + + res = ufl.fix(a) + assert_equal(res, tgt) + res = ufl.fix(a, out) + assert_equal(res, tgt) + assert_equal(out, tgt) -def test(): - return rundocs() + def test_fix_with_subclass(self): + class MyArray(nx.ndarray): + def __new__(cls, data, metadata=None): + res = nx.array(data, copy=True).view(cls) + res.metadata = metadata + return res + def __array_wrap__(self, obj, context=None): + obj.metadata = self.metadata + return obj -def test_fix_with_subclass(): - class MyArray(nx.ndarray): - def __new__(cls, data, metadata=None): - res = nx.array(data, copy=True).view(cls) - res.metadata = metadata - return res - def __array_wrap__(self, obj, context=None): - obj.metadata = self.metadata - return obj - - a = nx.array([1.1, -1.1]) - m = MyArray(a, metadata='foo') - f = ufl.fix(m) - assert_array_equal(f, nx.array([1,-1])) - assert isinstance(f, MyArray) - assert_equal(f.metadata, 'foo') + a = nx.array([1.1, -1.1]) + m = MyArray(a, metadata='foo') + f = ufl.fix(m) + assert_array_equal(f, nx.array([1,-1])) + assert isinstance(f, MyArray) + assert_equal(f.metadata, 'foo') if __name__ == "__main__": run_module_suite() |