diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2010-02-21 18:31:55 +0000 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2010-02-21 18:31:55 +0000 |
commit | 5b22c87bed10fd5c3e028d23590e9b6dd5e8d3af (patch) | |
tree | cb33c7f98ae9a8f0a9757718f220613d0f020f11 /numpy | |
parent | 0bc06e1d4501f797b9fce40bb55bea2bf1476654 (diff) | |
download | numpy-5b22c87bed10fd5c3e028d23590e9b6dd5e8d3af.tar.gz |
BUG: Fix possibly unbalanced seterr pairs. Fixes change in state of invalid
after running test().
Diffstat (limited to 'numpy')
-rw-r--r-- | numpy/lib/tests/test_type_check.py | 160 |
1 files changed, 124 insertions, 36 deletions
diff --git a/numpy/lib/tests/test_type_check.py b/numpy/lib/tests/test_type_check.py index 82107d86c..e6a2d2d75 100644 --- a/numpy/lib/tests/test_type_check.py +++ b/numpy/lib/tests/test_type_check.py @@ -69,7 +69,9 @@ class TestMintypecode(TestCase): #assert_equal(mintypecode('idF',savespace=1),'F') assert_equal(mintypecode('idD'),'D') + class TestIsscalar(TestCase): + def test_basic(self): assert(isscalar(3)) assert(not isscalar([3])) @@ -78,7 +80,9 @@ class TestIsscalar(TestCase): assert(isscalar(10L)) assert(isscalar(4.0)) + class TestReal(TestCase): + def test_real(self): y = rand(10,) assert_array_equal(y,real(y)) @@ -87,7 +91,9 @@ class TestReal(TestCase): y = rand(10,)+1j*rand(10,) assert_array_equal(y.real,real(y)) + class TestImag(TestCase): + def test_real(self): y = rand(10,) assert_array_equal(0,imag(y)) @@ -96,7 +102,9 @@ class TestImag(TestCase): y = rand(10,)+1j*rand(10,) assert_array_equal(y.imag,imag(y)) + class TestIscomplex(TestCase): + def test_fail(self): z = array([-1,0,1]) res = iscomplex(z) @@ -106,7 +114,9 @@ class TestIscomplex(TestCase): res = iscomplex(z) assert_array_equal(res,[1,0,0]) + class TestIsreal(TestCase): + def test_pass(self): z = array([-1,0,1j]) res = isreal(z) @@ -116,13 +126,17 @@ class TestIsreal(TestCase): res = isreal(z) assert_array_equal(res,[0,1,1]) + class TestIscomplexobj(TestCase): + def test_basic(self): z = array([-1,0,1]) assert(not iscomplexobj(z)) z = array([-1j,0,-1]) assert(iscomplexobj(z)) + + class TestIsrealobj(TestCase): def test_basic(self): z = array([-1,0,1]) @@ -130,136 +144,207 @@ class TestIsrealobj(TestCase): z = array([-1j,0,-1]) assert(not isrealobj(z)) + class TestIsnan(TestCase): + def test_goodvalues(self): z = array((-1.,0.,1.)) res = isnan(z) == 0 assert_all(alltrue(res,axis=0)) + def test_posinf(self): olderr = seterr(divide='ignore') - assert_all(isnan(array((1.,))/0.) == 0) - seterr(**olderr) + try: + assert_all(isnan(array((1.,))/0.) == 0) + finally: + seterr(**olderr) + def test_neginf(self): olderr = seterr(divide='ignore') - assert_all(isnan(array((-1.,))/0.) == 0) - seterr(**olderr) + try: + assert_all(isnan(array((-1.,))/0.) == 0) + finally: + seterr(**olderr) + def test_ind(self): olderr = seterr(divide='ignore', invalid='ignore') - assert_all(isnan(array((0.,))/0.) == 1) - seterr(**olderr) + try: + assert_all(isnan(array((0.,))/0.) == 1) + finally: + seterr(**olderr) + #def test_qnan(self): log(-1) return pi*j now # assert_all(isnan(log(-1.)) == 1) + def test_integer(self): assert_all(isnan(1) == 0) + def test_complex(self): assert_all(isnan(1+1j) == 0) + def test_complex1(self): olderr = seterr(divide='ignore', invalid='ignore') - assert_all(isnan(array(0+0j)/0.) == 1) - seterr(**olderr) + try: + assert_all(isnan(array(0+0j)/0.) == 1) + finally: + seterr(**olderr) + class TestIsfinite(TestCase): + def test_goodvalues(self): z = array((-1.,0.,1.)) res = isfinite(z) == 1 assert_all(alltrue(res,axis=0)) + def test_posinf(self): olderr = seterr(divide='ignore') - assert_all(isfinite(array((1.,))/0.) == 0) - seterr(**olderr) + try: + assert_all(isfinite(array((1.,))/0.) == 0) + finally: + seterr(**olderr) + def test_neginf(self): olderr = seterr(divide='ignore') - assert_all(isfinite(array((-1.,))/0.) == 0) - seterr(**olderr) + try: + assert_all(isfinite(array((-1.,))/0.) == 0) + finally: + seterr(**olderr) + def test_ind(self): olderr = seterr(divide='ignore', invalid='ignore') - assert_all(isfinite(array((0.,))/0.) == 0) - seterr(**olderr) + try: + assert_all(isfinite(array((0.,))/0.) == 0) + finally: + seterr(**olderr) + #def test_qnan(self): # assert_all(isfinite(log(-1.)) == 0) + def test_integer(self): assert_all(isfinite(1) == 1) + def test_complex(self): assert_all(isfinite(1+1j) == 1) + def test_complex1(self): olderr = seterr(divide='ignore', invalid='ignore') - assert_all(isfinite(array(1+1j)/0.) == 0) - seterr(**olderr) + try: + assert_all(isfinite(array(1+1j)/0.) == 0) + finally: + seterr(**olderr) + class TestIsinf(TestCase): + def test_goodvalues(self): z = array((-1.,0.,1.)) res = isinf(z) == 0 assert_all(alltrue(res,axis=0)) + def test_posinf(self): olderr = seterr(divide='ignore') - assert_all(isinf(array((1.,))/0.) == 1) - seterr(**olderr) + try: + assert_all(isinf(array((1.,))/0.) == 1) + finally: + seterr(**olderr) + def test_posinf_scalar(self): olderr = seterr(divide='ignore') - assert_all(isinf(array(1.,)/0.) == 1) - seterr(**olderr) + try: + assert_all(isinf(array(1.,)/0.) == 1) + finally: + seterr(**olderr) + def test_neginf(self): olderr = seterr(divide='ignore') - assert_all(isinf(array((-1.,))/0.) == 1) - seterr(**olderr) + try: + assert_all(isinf(array((-1.,))/0.) == 1) + finally: + seterr(**olderr) + def test_neginf_scalar(self): olderr = seterr(divide='ignore') - assert_all(isinf(array(-1.)/0.) == 1) - seterr(**olderr) + try: + assert_all(isinf(array(-1.)/0.) == 1) + finally: + seterr(**olderr) + def test_ind(self): olderr = seterr(divide='ignore', invalid='ignore') - assert_all(isinf(array((0.,))/0.) == 0) - seterr(**olderr) + try: + assert_all(isinf(array((0.,))/0.) == 0) + finally: + seterr(**olderr) + #def test_qnan(self): # assert_all(isinf(log(-1.)) == 0) # assert_all(isnan(log(-1.)) == 1) + class TestIsposinf(TestCase): + def test_generic(self): olderr = seterr(divide='ignore', invalid='ignore') - vals = isposinf(array((-1.,0,1))/0.) - seterr(**olderr) + try: + vals = isposinf(array((-1.,0,1))/0.) + finally: + seterr(**olderr) assert(vals[0] == 0) assert(vals[1] == 0) assert(vals[2] == 1) + class TestIsneginf(TestCase): def test_generic(self): olderr = seterr(divide='ignore', invalid='ignore') - vals = isneginf(array((-1.,0,1))/0.) - seterr(**olderr) + try: + vals = isneginf(array((-1.,0,1))/0.) + finally: + seterr(**olderr) assert(vals[0] == 1) assert(vals[1] == 0) assert(vals[2] == 0) + class TestNanToNum(TestCase): + def test_generic(self): olderr = seterr(divide='ignore', invalid='ignore') - vals = nan_to_num(array((-1.,0,1))/0.) - seterr(**olderr) + try: + vals = nan_to_num(array((-1.,0,1))/0.) + finally: + seterr(**olderr) assert_all(vals[0] < -1e10) and assert_all(isfinite(vals[0])) assert(vals[1] == 0) assert_all(vals[2] > 1e10) and assert_all(isfinite(vals[2])) + def test_integer(self): vals = nan_to_num(1) assert_all(vals == 1) + def test_complex_good(self): vals = nan_to_num(1+1j) assert_all(vals == 1+1j) + def test_complex_bad(self): v = 1+1j olderr = seterr(divide='ignore', invalid='ignore') - v += array(0+1.j)/0. - seterr(**olderr) + try: + v += array(0+1.j)/0. + finally: + seterr(**olderr) vals = nan_to_num(v) # !! This is actually (unexpectedly) zero assert_all(isfinite(vals)) + def test_complex_bad2(self): v = 1+1j olderr = seterr(divide='ignore', invalid='ignore') - v += array(-1+1.j)/0. - seterr(**olderr) + try: + v += array(-1+1.j)/0. + finally: + seterr(**olderr) vals = nan_to_num(v) assert_all(isfinite(vals)) #assert_all(vals.imag > 1e10) and assert_all(isfinite(vals)) @@ -270,6 +355,7 @@ class TestNanToNum(TestCase): class TestRealIfClose(TestCase): + def test_basic(self): a = rand(10) b = real_if_close(a+1e-15j) @@ -280,7 +366,9 @@ class TestRealIfClose(TestCase): b = real_if_close(a+1e-7j,tol=1e-6) assert_all(isrealobj(b)) + class TestArrayConversion(TestCase): + def test_asfarray(self): a = asfarray(array([1,2,3])) assert_equal(a.__class__,ndarray) |