From 2c77550e6f2869b34efe44e318b7233704e73583 Mon Sep 17 00:00:00 2001 From: Per A Brodtkorb Date: Sat, 13 Feb 2016 17:51:42 +0100 Subject: [PATCH] removed test_numpy_utils.py + pepified test_trdata + disabled plot in test_specdata1d.py --- wafo/spectrum/tests/test_specdata1d.py | 6 +- wafo/tests/test_numpy_utils.py | 253 ------------------------- wafo/transform/tests/test_trdata.py | 47 ++--- 3 files changed, 28 insertions(+), 278 deletions(-) delete mode 100644 wafo/tests/test_numpy_utils.py diff --git a/wafo/spectrum/tests/test_specdata1d.py b/wafo/spectrum/tests/test_specdata1d.py index 8d36675..d50e4c7 100644 --- a/wafo/spectrum/tests/test_specdata1d.py +++ b/wafo/spectrum/tests/test_specdata1d.py @@ -118,8 +118,8 @@ def test_testgaussian(): Hs = 7 Sj = sm.Jonswap(Hm0=Hs) S0 = Sj.tospecdata() - #ns =100; dt = .2 - #x1 = S0.sim(ns, dt=dt) + # ns =100; dt = .2 + # x1 = S0.sim(ns, dt=dt) S = S0.copy() me, _va, sk, ku = S.stats_nl(moments='mvsk') @@ -128,7 +128,7 @@ def test_testgaussian(): ys = wo.mat2timeseries(S.sim(ns=2 ** 13)) g0, _gemp = ys.trdata() t0 = g0.dist2gauss() - t1 = S0.testgaussian(ns=2 ** 13, test0=t0, cases=50) + t1 = S0.testgaussian(ns=2 ** 13, test0=t0, cases=50, plotflag=0) assert(sum(t1 > t0) < 5) diff --git a/wafo/tests/test_numpy_utils.py b/wafo/tests/test_numpy_utils.py deleted file mode 100644 index f7185a4..0000000 --- a/wafo/tests/test_numpy_utils.py +++ /dev/null @@ -1,253 +0,0 @@ -from numpy.testing import ( - TestCase, assert_, assert_array_equal, assert_raises,) -# run_module_suite, -# assert_allclose, assert_array_max_ulp, assert_warns, -# assert_equal, assert_array_almost_equal, assert_almost_equal, -# ) - -import unittest as local_unittest -import numpy as np -from wafo.numpy_utils import (rotation_matrix, rotate_2d, spaceline, - args_flat, sub2index, index2sub, piecewise) - - -class TestPiecewise(TestCase): - def test_condition_is_single_bool_list(self): - assert_raises(ValueError, piecewise, [0, 0], [True, False], [1]) - - def test_condition_is_list_of_single_bool_list(self): - x = piecewise([0, 0], [[True, False]], [1]) - assert_array_equal(x, [1, 0]) - - def test_conditions_is_list_of_single_bool_array(self): - x = piecewise([0, 0], [np.array([True, False])], [1]) - assert_array_equal(x, [1, 0]) - - def test_condition_is_single_int_array(self): - assert_raises(ValueError, piecewise, [0, 0], np.array([1, 0]), [1]) - - def test_condition_is_list_of_single_int_array(self): - x = piecewise([0, 0], [np.array([1, 0])], [1]) - assert_array_equal(x, [1, 0]) - - def test_simple(self): - x = piecewise([0, 0], [[False, True]], [lambda x:-1]) - assert_array_equal(x, [0, -1]) - - x = piecewise([1, 2], [[True, False], [False, True]], [3, 4]) - assert_array_equal(x, [3, 4]) - - def test_default(self): - # No value specified for x[1], should be 0 - x = piecewise([1, 2], [[True, False]], [2]) - assert_array_equal(x, [2, 0]) - - # Should set x[1] to 3 - x = piecewise([1, 2], [[True, False]], [2, 3]) - assert_array_equal(x, [2, 3]) - - def test_0d(self): - x = np.array(3) - y = piecewise(x, [x > 3], [4, 0]) - assert_(y.ndim == 0) - assert_(y == 0) - - x = 5 - y = piecewise(x, [[True], [False]], [1, 0]) - assert_(y.ndim == 0) - assert_(y == 1) - - def test_abs_function(self): - x = np.linspace(-2.5, 2.5, 6) - vals = piecewise((x,), [x < 0, x >= 0], [lambda x: -x, lambda x: x]) - assert_array_equal(vals, - [2.5, 1.5, 0.5, 0.5, 1.5, 2.5]) - - def test_abs_function_with_scalar(self): - x = np.array(-2.5) - vals = piecewise((x,), [x < 0, x >= 0], [lambda x: -x, lambda x: x]) - assert_(vals == 2.5) - - def test_otherwise_condition(self): - x = np.linspace(-2.5, 2.5, 6) - vals = piecewise((x,), [x < 0, ], [lambda x: -x, lambda x: x]) - assert_array_equal(vals, [2.5, 1.5, 0.5, 0.5, 1.5, 2.5]) - - def test_passing_further_args_to_fun(self): - def fun0(x, y, scale=1.): - return -x*y/scale - - def fun1(x, y, scale=1.): - return x*y/scale - x = np.linspace(-2.5, 2.5, 6) - vals = piecewise((x,), [x < 0, ], [fun0, fun1], args=(2.,), scale=2.) - assert_array_equal(vals, [2.5, 1.5, 0.5, 0.5, 1.5, 2.5]) - - def test_step_function(self): - x = np.linspace(-2.5, 2.5, 6) - vals = piecewise(x, [x < 0, x >= 0], [-1, 1]) - assert_array_equal(vals, [-1., -1., -1., 1., 1., 1.]) - - def test_step_function_with_scalar(self): - x = 1 - vals = piecewise(x, [x < 0, x >= 0], [-1, 1]) - assert_(vals == 1) - - def test_function_with_two_args(self): - x = np.linspace(-2, 2, 5) - X, Y = np.meshgrid(x, x) - vals = piecewise( - (X, Y), [X * Y < 0, ], [lambda x, y: -x * y, lambda x, y: x * y]) - assert_array_equal(vals, [[4., 2., -0., 2., 4.], - [2., 1., -0., 1., 2.], - [-0., -0., 0., 0., 0.], - [2., 1., 0., 1., 2.], - [4., 2., 0., 2., 4.]]) - - def test_fill_value_and_function_with_two_args(self): - x = np.linspace(-2, 2, 5) - X, Y = np.meshgrid(x, x) - vals = piecewise((X, Y), [X * Y < -0.5, X * Y > 0.5], - [lambda x, y: -x * y, lambda x, y: x * y], - fill_value=np.nan) - nan = np.nan - assert_array_equal(vals, [[4., 2., nan, 2., 4.], - [2., 1., nan, 1., 2.], - [nan, nan, nan, nan, nan], - [2., 1., nan, 1., 2.], - [4., 2., nan, 2., 4.]]) - - def test_fill_value2_and_function_with_two_args(self): - x = np.linspace(-2, 2, 5) - X, Y = np.meshgrid(x, x) - vals = piecewise((X, Y), [X * Y < -0.5, X * Y > 0.5], - [lambda x, y: -x * y, lambda x, y: x * y, np.nan]) - nan = np.nan - assert_array_equal(vals, [[4., 2., nan, 2., 4.], - [2., 1., nan, 1., 2.], - [nan, nan, nan, nan, nan], - [2., 1., nan, 1., 2.], - [4., 2., nan, 2., 4.]]) - - -class TestRotationMatrix(TestCase): - - def test_h0_p0_r0(self): - vals = rotation_matrix(heading=0, pitch=0, roll=0).tolist() - truevals = [[1., 0., 0.], - [0., 1., 0.], - [0., 0., 1.]] - self.assertListEqual(vals, truevals) - - def test_h180_p0_r0(self): - vals = rotation_matrix(heading=180, pitch=0, roll=0).tolist() - truevals = [[-1.0, -1.2246467991473532e-16, 0.0], - [1.2246467991473532e-16, -1.0, 0.0], - [-0.0, 0.0, 1.0]] - self.assertListEqual(vals, truevals) - - def test_h0_p180_r0(self): - vals = rotation_matrix(heading=0, pitch=180, roll=0).tolist() - truevals = [[-1.0, 0.0, 1.2246467991473532e-16], - [-0.0, 1.0, 0.0], - [-1.2246467991473532e-16, -0.0, -1.0]] - self.assertListEqual(vals, truevals) - - def test_h0_p0_r180(self): - vals = rotation_matrix(heading=0, pitch=180, roll=0).tolist() - truevals = [[-1.0, 0.0, 1.2246467991473532e-16], - [-0.0, 1.0, 0.0], - [-1.2246467991473532e-16, -0.0, -1.0]] - self.assertListEqual(vals, truevals) - - -class TestRotate2d(TestCase): - - def test_rotate_0deg(self): - vals = list(rotate_2d(x=1, y=0, angle_deg=0)) - truevals = [1.0, 0.0] - self.assertListEqual(vals, truevals) - - def test_rotate_90deg(self): - vals = list(rotate_2d(x=1, y=0, angle_deg=90)) - truevals = [6.123233995736766e-17, 1.0] - self.assertListEqual(vals, truevals) - - def test_rotate_180deg(self): - vals = list(rotate_2d(x=1, y=0, angle_deg=180)) - truevals = [-1.0, 1.2246467991473532e-16] - self.assertListEqual(vals, truevals) - - def test_rotate_360deg(self): - vals = list(rotate_2d(x=1, y=0, angle_deg=360)) - truevals = [1.0, -2.4492935982947064e-16] - self.assertListEqual(vals, truevals) - - -class TestSpaceLine(TestCase): - - def test_space_line(self): - vals = spaceline((2, 0, 0), (3, 0, 0), num=5).tolist() - truevals = [[2., 0., 0.], - [2.25, 0., 0.], - [2.5, 0., 0.], - [2.75, 0., 0.], - [3., 0., 0.]] - self.assertListEqual(vals, truevals) - - -class TestArgsFlat(TestCase): - - def test_1_vector_and_2_scalar_args(self): - x = [1, 2, 3] - pos, c_shape = args_flat(x, 2, 3) - truepos = [[1, 2, 3], - [2, 2, 3], - [3, 2, 3]] - truec_shape = [3, ] - self.assertListEqual(pos.tolist(), truepos) - self.assertListEqual(list(c_shape), truec_shape) - - def test_1_vector_args(self): - pos1, c_shape1 = args_flat([1, 2, 3]) - truepos1 = [[1, 2, 3]] - truec_shape1 = None - self.assertListEqual(pos1.tolist(), truepos1) - self.assertIs(c_shape1, truec_shape1) - - def test_3_scalar_args(self): - pos1, c_shape1 = args_flat(1, 2, 3) - truepos1 = [[1, 2, 3]] - truec_shape1 = [] - self.assertListEqual(pos1.tolist(), truepos1) - self.assertListEqual(list(c_shape1), truec_shape1) - - def test_3_scalar_args_version2(self): - pos1, c_shape1 = args_flat([1], 2, 3) - truepos1 = [[1, 2, 3]] - truec_shape1 = [1, ] - self.assertListEqual(pos1.tolist(), truepos1) - self.assertListEqual(list(c_shape1), truec_shape1) - - -class TestSub2index2Sub(TestCase): - - def test_sub2index_and_index2sub(self): - shape = (3, 3, 4) - a = np.arange(np.prod(shape)).reshape(shape) - trueval = a[1, 2, 3] - order = 'C' - i = sub2index(shape, 1, 2, 3, order=order) - self.assertEquals(i, 23) - - val = a.ravel(order)[i] - self.assertEquals(val, trueval) - - sub = index2sub(shape, i, order=order) - for j, true_sub_j in enumerate([[1], [2], [3]]): - self.assertEquals(sub[j].tolist(), true_sub_j) - - -if __name__ == '__main__': - runner = local_unittest.TextTestRunner() # get_test_runner() - local_unittest.main(testRunner=runner) diff --git a/wafo/transform/tests/test_trdata.py b/wafo/transform/tests/test_trdata.py index 91de7bc..38f89fe 100644 --- a/wafo/transform/tests/test_trdata.py +++ b/wafo/transform/tests/test_trdata.py @@ -1,31 +1,34 @@ from wafo.transform import TrData import numpy as np + + def test_trdata(): ''' Construct a linear transformation model ''' - - sigma = 5; mean = 1 - u = np.linspace(-5,5) - x = sigma*u+mean; y = u - g = TrData(y,x) - assert(g.mean==1.0) + sigma = 5 + mean = 1 + u = np.linspace(-5, 5) + x = sigma * u + mean + y = u + g = TrData(y, x) + assert(g.mean == 1.0) print(g.sigma) - #assert(g.sigma==5.0) - - g = TrData(y,x,mean=1,sigma=5) - assert(g.mean== 1) - assert( g.sigma== 5.) - vals = g.dat2gauss(1,2,3) - true_vals = [np.array([ 0.]), np.array([ 0.4]), np.array([ 0.6])] - vals = g.dat2gauss([0,1,2,3]) - true_vals = np.array([-0.2, 0. , 0.2, 0.4]) - assert((np.abs(vals-true_vals)<1e-7).all()) - #Check that the departure from a Gaussian model is zero + # assert(g.sigma==5.0) + + g = TrData(y, x, mean=1, sigma=5) + assert(g.mean == 1) + assert(g.sigma == 5.) + # vals = g.dat2gauss(1, 2, 3) + # true_vals = [np.array([0.]), np.array([0.4]), np.array([0.6])] + + vals = g.dat2gauss([0, 1, 2, 3]) + true_vals = np.array([-0.2, 0., 0.2, 0.4]) + assert((np.abs(vals - true_vals) < 1e-7).all()) + # Check that the departure from a Gaussian model is zero assert(g.dist2gauss() < 1e-16) - - - -if __name__=='__main__': + + +if __name__ == '__main__': import nose - nose.run() \ No newline at end of file + nose.run()