Compiled extensions

Refactored the some doctest to nosetest format.
master
Per.Andreas.Brodtkorb 12 years ago
parent 7b806924f1
commit ffc1721a6a

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,5 +1,5 @@
GFORTRAN module version '4' created from dsvdc.f on Sat May 05 23:15:23 2012
MD5:09a15038d4562b84946981936b0bee73 -- If you edit this, you'll get what you deserve.
GFORTRAN module version '4' created from dsvdc.f on Mon Feb 18 02:58:14 2013
MD5:3070b5c592b3707b0aa5c4fd5a07c2f9 -- If you edit this, you'll get what you deserve.
(() () () () () () () () () () () () () () () () () () () () () () () ()
() () ())
@ -34,6 +34,14 @@ PROCEDURE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 FUNCTION) (
UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 32 () () () 0 0)
33 'svd' 'svd' 'svd' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN
UNKNOWN 0 0) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0)
12 'da' '' 'da' 11 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
13 'db' '' 'db' 11 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
14 'dc' '' 'dc' 11 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY)
(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
15 'ds' '' 'ds' 11 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY)
(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
29 'n' '' 'n' 28 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) (
INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
30 'dx' '' 'dx' 28 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
@ -78,14 +86,6 @@ DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE (CONSTANT
0 '1') ()) 0 () () () 0 0)
25 'job' '' 'job' 17 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
12 'da' '' 'da' 11 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
13 'db' '' 'db' 11 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
14 'dc' '' 'dc' 11 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY)
(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
15 'ds' '' 'ds' 11 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY)
(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
26 'info' '' 'info' 17 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
)

@ -1,5 +1,5 @@
GFORTRAN module version '4' created from mvnprodcorrprb.f on Sat May 05 23:15:35 2012
MD5:e14dcbae790def5a44b530dc6eb0aba5 -- If you edit this, you'll get what you deserve.
GFORTRAN module version '4' created from mvnprodcorrprb.f on Mon Feb 18 02:58:24 2013
MD5:3c74315b2657777cdd2d82ef024b4aea -- If you edit this, you'll get what you deserve.
(() () () () () () () () () () () () () () () () () () () () () () () ()
() () ())
@ -30,12 +30,6 @@ MODULE-PROC DECL UNKNOWN 0 0 FUNCTION GENERIC) (REAL 8 0 0 REAL ()) 16 0
19 'erfcoremod' 'erfcoremod' 'erfcoremod' 1 ((MODULE UNKNOWN-INTENT
UNKNOWN-PROC UNKNOWN UNKNOWN 0 0) (UNKNOWN 0 0 0 UNKNOWN ()) 0 0 () () 0
() () () 0 0)
7 'arg' '' 'arg' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY)
(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
8 'result' '' 'result' 6 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0
0 DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
9 'jint' '' 'jint' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
11 'x' '' 'x' 10 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) (
REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
12 'value' '' 'value' 10 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN
@ -48,6 +42,12 @@ UNKNOWN 0 0 RESULT) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
18 'value' '' 'value' 16 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN
UNKNOWN 0 0 RESULT) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
7 'arg' '' 'arg' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY)
(REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
8 'result' '' 'result' 6 ((VARIABLE INOUT UNKNOWN-PROC UNKNOWN UNKNOWN 0
0 DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
9 'jint' '' 'jint' 6 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
)
('calerf' 0 3 'derf' 0 2 'derfc' 0 5 'derfcx' 0 4 'erfcoremod' 0 19)

@ -1,5 +1,5 @@
GFORTRAN module version '4' created from intmodule.f on Sat May 05 23:15:40 2012
MD5:53fb950b8a79cff14291a70f77ea6928 -- If you edit this, you'll get what you deserve.
GFORTRAN module version '4' created from intmodule.f on Mon Feb 18 02:58:29 2013
MD5:17160d7e8ba108b002481eb4224bf586 -- If you edit this, you'll get what you deserve.
(() () () () () () () () () () () () () () () () () () () () () () () ()
() () ())
@ -20,16 +20,6 @@ DECL UNKNOWN 0 0 SUBROUTINE GENERIC) (UNKNOWN 0 0 0 UNKNOWN ()) 4 0 (5 6
3 'sadapt' 'adaptmod' 'sadapt' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC
DECL UNKNOWN 0 0 SUBROUTINE GENERIC) (UNKNOWN 0 0 0 UNKNOWN ()) 14 0 (
15 16 17 18 19 20 21 22) () 0 () () () 0 0)
9 'absreq' '' 'absreq' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
10 'relreq' '' 'relreq' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
11 'absest' '' 'absest' 4 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0
0 DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
12 'finest' '' 'finest' 4 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0
0 DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
13 'inform' '' 'inform' 4 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0
0 DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
15 'n' '' 'n' 14 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) (
INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
16 'maxpts' '' 'maxpts' 14 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0
@ -61,6 +51,16 @@ DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
8 'functn' '' 'functn' 4 ((PROCEDURE UNKNOWN-INTENT UNKNOWN-PROC BODY
UNKNOWN 0 0 DUMMY FUNCTION ALWAYS_EXPLICIT) (REAL 8 0 0 REAL ()) 26 0 (
27 28) () 8 () () () 0 0)
9 'absreq' '' 'absreq' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
10 'relreq' '' 'relreq' 4 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
11 'absest' '' 'absest' 4 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0
0 DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
12 'finest' '' 'finest' 4 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0
0 DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
13 'inform' '' 'inform' 4 ((VARIABLE OUT UNKNOWN-PROC UNKNOWN UNKNOWN 0
0 DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
27 'n' '' 'n' 26 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0 DUMMY) (
INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
28 'z' '' 'z' 26 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0

@ -1,5 +1,5 @@
GFORTRAN module version '4' created from rind71mod.f on Sat May 05 23:15:48 2012
MD5:39a52091a6c81f0056e400b137f29e11 -- If you edit this, you'll get what you deserve.
GFORTRAN module version '4' created from rind71mod.f on Mon Feb 18 02:58:35 2013
MD5:520dd65f929350d1434842f22f38b888 -- If you edit this, you'll get what you deserve.
(() () () () () () () () () () () () () () () () () () () () () () ()
() () () ())
@ -37,16 +37,6 @@ DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
28 'dxsplt' '' 'dxsplt' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0
0 DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
9 'speed' '' 'speed' 8 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
20 'method' '' 'method' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0
0 DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
21 'scale' '' 'scale' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
22 'depss' '' 'depss' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
23 'dreps' '' 'dreps' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
7 'array' '' 'array' 6 ((VARIABLE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN
UNKNOWN 0 0 DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2
ASSUMED_SHAPE (CONSTANT (INTEGER 4 0 0 INTEGER ()) 0 '1') () (CONSTANT (
@ -78,6 +68,16 @@ DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE (CONSTANT
DIMENSION DUMMY) (REAL 8 0 0 REAL ()) 0 0 () (2 ASSUMED_SHAPE (CONSTANT
(INTEGER 4 0 0 INTEGER ()) 0 '1') () (CONSTANT (INTEGER 4 0 0 INTEGER ())
0 '1') ()) 0 () () () 0 0)
9 'speed' '' 'speed' 8 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
20 'method' '' 'method' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0
0 DUMMY) (INTEGER 4 0 0 INTEGER ()) 0 0 () () 0 () () () 0 0)
21 'scale' '' 'scale' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
22 'depss' '' 'depss' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
23 'dreps' '' 'dreps' 19 ((VARIABLE IN UNKNOWN-PROC UNKNOWN UNKNOWN 0 0
DUMMY) (REAL 8 0 0 REAL ()) 0 0 () () 0 () () () 0 0)
)
('echo' 0 2 'initdata' 0 3 'rind71' 0 5 'setdata' 0 4)

@ -681,9 +681,9 @@ def phi1(wi, h, g=9.81):
k2 = w2k(w, 0, h, g=g)[0]
k2h = k2 * h
dw2 = where(k1 != 0, dw1 / (tanh(k2h) + k2h / cosh(k2h) ** 2.0), 0) # dw/dk|h=h0
return where(k1 != 0, (k1 / k2) ** 3.0 * dw2 / dw1, 0)
den = where(k1 == 0, 1, (tanh(k2h) + k2h / cosh(k2h) ** 2.0))
dw2 = where(k1 == 0, 0, dw1 / den) # dw/dk|h=h0
return where(k1 == 0, 0, (k1 / k2) ** 3.0 * dw2 / dw1)
class Tmaspec(Jonswap):
''' JONSWAP spectrum for finite water depth

@ -3,66 +3,68 @@ from wafo.spectrum.models import (Bretschneider, Jonswap, OchiHubble, Tmaspec,
Torsethaugen, McCormick, Wallop)
def test_bretschneider():
'''
>>> S = Bretschneider(Hm0=6.5,Tp=10)
>>> S((0,1,2,3))
array([ 0. , 1.69350993, 0.06352698, 0.00844783])
'''
def test_jonswap():
'''
>>> S = Jonswap(Hm0=7, Tp=11,gamma=1)
>>> S((0,1,2,3))
array([ 0. , 1.42694133, 0.05051648, 0.00669692])
>>> w = np.linspace(0,5)
>>> S2 = Bretschneider(Hm0=7, Tp=11)
JONSWAP with gamma=1 should be equal to Bretscneider:
>>> np.all(np.abs(S(w)-S2(w))<1.e-7)
True
'''
S = Bretschneider(Hm0=6.5,Tp=10)
vals = S((0,1,2,3))
true_vals = np.array([ 0. , 1.69350993, 0.06352698, 0.00844783])
assert((np.abs(vals-true_vals)<1e-7).all())
def test_if_jonswap_with_gamma_one_equals_bretschneider():
S = Jonswap(Hm0=7, Tp=11,gamma=1)
vals = S((0,1,2,3))
true_vals = np.array([ 0. , 1.42694133, 0.05051648, 0.00669692])
assert((np.abs(vals-true_vals)<1e-7).all())
w = np.linspace(0,5)
S2 = Bretschneider(Hm0=7, Tp=11)
#JONSWAP with gamma=1 should be equal to Bretscneider:
assert(np.all(np.abs(S(w)-S2(w))<1.e-7))
def test_tmaspec():
'''
>>> S = Tmaspec(Hm0=7, Tp=11,gamma=1,h=10)
>>> S((0,1,2,3))
array([ 0. , 0.70106233, 0.05022433, 0.00669692])
'''
S = Tmaspec(Hm0=7, Tp=11,gamma=1,h=10)
vals = S((0,1,2,3))
true_vals = np.array([ 0. , 0.70106233, 0.05022433, 0.00669692])
assert((np.abs(vals-true_vals)<1e-7).all())
def test_torsethaugen():
'''
>>> S = Torsethaugen(Hm0=7, Tp=11,gamma=1,h=10)
>>> S((0,1,2,3))
array([ 0. , 1.19989709, 0.05819794, 0.0093541 ])
>>> S.wind(range(4))
array([ 0. , 1.13560528, 0.05529849, 0.00888989])
>>> S.swell(range(4))
array([ 0. , 0.0642918 , 0.00289946, 0.00046421])
'''
S = Torsethaugen(Hm0=7, Tp=11,gamma=1,h=10)
vals = S((0,1,2,3))
true_vals = np.array([ 0. , 1.19989709, 0.05819794, 0.0093541 ])
assert((np.abs(vals-true_vals)<1e-7).all())
vals = S.wind(range(4))
true_vals = np.array([ 0. , 1.13560528, 0.05529849, 0.00888989])
assert((np.abs(vals-true_vals)<1e-7).all())
vals = S.swell(range(4))
true_vals = np.array([ 0. , 0.0642918 , 0.00289946, 0.00046421])
assert((np.abs(vals-true_vals)<1e-7).all())
def test_ochihubble():
'''
>>> S = OchiHubble(par=2)
>>> S(range(4))
array([ 0. , 0.90155636, 0.04185445, 0.00583207])
'''
S = OchiHubble(par=2)
vals = S(range(4))
true_vals = np.array([ 0. , 0.90155636, 0.04185445, 0.00583207])
assert((np.abs(vals-true_vals)<1e-7).all())
def test_mccormick():
'''
>>> S = McCormick(Hm0=6.5,Tp=10)
>>> S(range(4))
array([ 0. , 1.87865908, 0.15050447, 0.02994663])
'''
S = McCormick(Hm0=6.5,Tp=10)
vals = S(range(4))
true_vals = np.array([ 0. , 1.87865908, 0.15050447, 0.02994663])
assert((np.abs(vals-true_vals)<1e-7).all())
def test_wallop():
'''
>>> S = Wallop(Hm0=6.5, Tp=10)
>>> S(range(4))
array([ 0.00000000e+00, 9.36921871e-01, 2.76991078e-03,
7.72996150e-05])
'''
S = Wallop(Hm0=6.5, Tp=10)
vals = S(range(4))
true_vals = np.array([ 0.00000000e+00, 9.36921871e-01, 2.76991078e-03,
7.72996150e-05])
assert((np.abs(vals-true_vals)<1e-7).all())
def main():
import doctest
doctest.testmod()
if __name__ == '__main__':
main()
#main()
import nose
# nose.run()
test_tmaspec()

@ -1,25 +1,31 @@
import wafo.spectrum.models
import wafo.spectrum.models as sm
from wafo.spectrum import SpecData1D
import numpy as np
def slow(f):
f.slow = True
return f
@slow
def test_tocovmatrix():
'''
>>> import wafo.spectrum.models as sm
>>> Sj = sm.Jonswap()
>>> S = Sj.tospecdata()
>>> acfmat = S.tocov_matrix(nr=3, nt=256, dt=0.1)
>>> acfmat[:2,:]
array([[ 3.06075987, 0. , -1.67750289, 0. ],
[ 3.05246132, -0.16662376, -1.66819445, 0.18634189]])
'''
Sj = sm.Jonswap()
S = Sj.tospecdata()
acfmat = S.tocov_matrix(nr=3, nt=256, dt=0.1)
vals = acfmat[:2,:]
true_vals = np.array([[ 3.06073383, 0. , -1.67748256 , 0. ],
[ 3.05235423, -0.1674357 , -1.66811444, 0.18693242]])
assert((np.abs(vals-true_vals)<1e-7).all())
def test_tocovdata():
'''
>>> import wafo.spectrum.models as sm
>>> Sj = sm.Jonswap()
>>> S = Sj.tospecdata()
>>> Nt = len(S.data)-1
>>> acf = S.tocovdata(nr=0, nt=Nt)
>>> acf.data[:5]
array([ 3.06093287, 2.23846752, 0.48630084, -1.1336035 , -2.03036854])
'''
Sj = sm.Jonswap()
S = Sj.tospecdata()
Nt = len(S.data)-1
acf = S.tocovdata(nr=0, nt=Nt)
vals = acf.data[:5]
true_vals = np.array([3.06090339, 2.22658399, 0.45307391, -1.17495501, -2.05649042])
assert((np.abs(vals-true_vals)<1e-6).all())
def test_to_t_pdf():
'''
@ -35,69 +41,60 @@ def test_to_t_pdf():
>>> ['%2.4f' % val for val in f.err[:10]]
['0.0000', '0.0003', '0.0003', '0.0004', '0.0006', '0.0009', '0.0016', '0.0019', '0.0020', '0.0021']
'''
@slow
def test_sim():
'''
>>> import wafo.spectrum.models as sm
>>> Sj = sm.Jonswap();S = Sj.tospecdata()
>>> ns =100; dt = .2
>>> x1 = S.sim(ns,dt=dt)
>>> import numpy as np
>>> import scipy.stats as st
>>> x2 = S.sim(20000,20)
>>> truth1 = [0,np.sqrt(S.moment(1)[0]),0., 0.]
>>> funs = [np.mean,np.std,st.skew,st.kurtosis]
>>> for fun,trueval in zip(funs,truth1):
... res = fun(x2[:,1::],axis=0)
... m = res.mean()
... sa = res.std()
... #trueval, m, sa
... np.abs(m-trueval)<sa
True
array([ True], dtype=bool)
True
True
'''
Sj = sm.Jonswap();S = Sj.tospecdata()
ns =100; dt = .2
x1 = S.sim(ns,dt=dt)
import scipy.stats as st
x2 = S.sim(20000,20)
truth1 = [0,np.sqrt(S.moment(1)[0]),0., 0.]
funs = [np.mean,np.std,st.skew,st.kurtosis]
for fun,trueval in zip(funs,truth1):
res = fun(x2[:,1::], axis=0)
m = res.mean()
sa = res.std()
#trueval, m, sa
assert(np.abs(m-trueval)<sa)
@slow
def test_sim_nl():
'''
>>> import wafo.spectrum.models as sm
>>> Sj = sm.Jonswap();S = Sj.tospecdata()
>>> ns =100; dt = .2
>>> x1 = S.sim_nl(ns,dt=dt)
>>> import numpy as np
>>> import scipy.stats as st
>>> x2, x1 = S.sim_nl(ns=20000,cases=40)
>>> truth1 = [0,np.sqrt(S.moment(1)[0][0])] + S.stats_nl(moments='sk')
>>> truth1[-1] = truth1[-1]-3
>>> truth1
[0, 1.7495200310090633, 0.18673120577479801, 0.061988521262417606]
>>> funs = [np.mean,np.std,st.skew,st.kurtosis]
>>> for fun,trueval in zip(funs,truth1):
... res = fun(x2[:,1::], axis=0)
... m = res.mean()
... sa = res.std()
... #trueval, m, sa
... np.abs(m-trueval)<2*sa
True
True
True
True
'''
Sj = sm.Jonswap();S = Sj.tospecdata()
ns =100; dt = .2
x1 = S.sim_nl(ns,dt=dt)
import numpy as np
import scipy.stats as st
x2, x1 = S.sim_nl(ns=20000,cases=40)
truth1 = [0,np.sqrt(S.moment(1)[0][0])] + S.stats_nl(moments='sk')
truth1[-1] = truth1[-1]-3
#truth1
#[0, 1.7495200310090633, 0.18673120577479801, 0.061988521262417606]
funs = [np.mean,np.std,st.skew,st.kurtosis]
for fun,trueval in zip(funs,truth1):
res = fun(x2[:,1::], axis=0)
m = res.mean()
sa = res.std()
#trueval, m, sa
assert(np.abs(m-trueval)<2*sa)
def test_stats_nl():
'''
>>> import wafo.spectrum.models as sm
>>> Hs = 7.
>>> Sj = sm.Jonswap(Hm0=Hs, Tp=11)
>>> S = Sj.tospecdata()
>>> me, va, sk, ku = S.stats_nl(moments='mvsk')
>>> me; va; sk; ku
0.0
3.0608203389019537
0.18673120577479801
3.0619885212624176
'''
Hs = 7.
Sj = sm.Jonswap(Hm0=Hs, Tp=11)
S = Sj.tospecdata()
me, va, sk, ku = S.stats_nl(moments='mvsk')
assert(me==0.0)
assert(va==3.0608203389019537)
assert(sk==0.18673120577479801)
assert(ku==3.0619885212624176)
def test_testgaussian():
'''
>>> import wafo.spectrum.models as sm
@ -119,46 +116,47 @@ def test_testgaussian():
>>> sum(t1>t0)<5
True
'''
def test_moment():
'''
>>> import wafo.spectrum.models as sm
>>> Sj = sm.Jonswap(Hm0=5)
>>> S = Sj.tospecdata() #Make spectrum ob
>>> S.moment()
([1.5614600345079888, 0.95567089481941048], ['m0', 'm0tt'])
'''
Sj = sm.Jonswap(Hm0=5)
S = Sj.tospecdata() #Make spectrum ob
vals, txt = S.moment()
true_vals = [1.5614600345079888, 0.95567089481941048]
true_txt = ['m0', 'm0tt']
for tv,v in zip(true_vals, vals):
assert(tv==v)
def test_nyquist_freq():
'''
>>> import wafo.spectrum.models as sm
>>> Sj = sm.Jonswap(Hm0=5)
>>> S = Sj.tospecdata() #Make spectrum ob
>>> S.nyquist_freq()
3.0
'''
Sj = sm.Jonswap(Hm0=5)
S = Sj.tospecdata() #Make spectrum ob
assert(S.nyquist_freq()==3.0)
def test_sampling_period():
'''
>>> import wafo.spectrum.models as sm
>>> Sj = sm.Jonswap(Hm0=5)
>>> S = Sj.tospecdata() #Make spectrum ob
>>> S.sampling_period()
1.0471975511965976
'''
Sj = sm.Jonswap(Hm0=5)
S = Sj.tospecdata() #Make spectrum ob
assert( S.sampling_period()== 1.0471975511965976)
def test_normalize():
'''
>>> import wafo.spectrum.models as sm
>>> Sj = sm.Jonswap(Hm0=5)
>>> S = Sj.tospecdata() #Make spectrum ob
>>> S.moment(2)
Sj = sm.Jonswap(Hm0=5)
S = Sj.tospecdata() #Make spectrum ob
S.moment(2)
([1.5614600345079888, 0.95567089481941048], ['m0', 'm0tt'])
vals, txt = S.moment(2)
true_vals = [1.5614600345079888, 0.95567089481941048]
for tv,v in zip(true_vals, vals):
assert(tv==v)
>>> Sn = S.copy(); Sn.normalize()
Sn = S.copy();
Sn.normalize()
Now the moments should be one
>>> Sn.moment(2)
([1.0000000000000004, 0.99999999999999967], ['m0', 'm0tt'])
#Now the moments should be one
new_vals, txt = Sn.moment(2)
for v in new_vals:
assert(np.abs(v-1.0)<1e-7)
'''
def test_characteristic():
'''
>>> import wafo.spectrum.models as sm
@ -170,9 +168,9 @@ def test_characteristic():
>>> [ch, R, txt] = S.characteristic([1,2,3]) # fact a vector of integers
>>> ch; R; txt
array([ 8.59007646, 8.03139757, 5.62484314])
array([[ 0.03040216, 0.02834263, NaN],
[ 0.02834263, 0.0274645 , NaN],
[ NaN, NaN, 0.01500249]])
array([[ 0.03040216, 0.02834263, nan],
[ 0.02834263, 0.0274645 , nan],
[ nan, nan, 0.01500249]])
['Tm01', 'Tm02', 'Tm24']
>>> S.characteristic('Ss') # fact a string
@ -183,20 +181,23 @@ def test_characteristic():
[ 0.02511371, 0.0274645 ]]), ['Hm0', 'Tm02'])
'''
def test_bandwidth():
'''
>>> import numpy as np
>>> import wafo.spectrum.models as sm
>>> Sj = sm.Jonswap(Hm0=3)
>>> w = np.linspace(0,4,256)
>>> S = SpecData1D(Sj(w),w) #Make spectrum object from numerical values
>>> S.bandwidth([0,1,2,3])
array([ 0.65354446, 0.3975428 , 0.75688813, 2.00207912])
'''
Sj = sm.Jonswap(Hm0=3, Tp=7)
w = np.linspace(0,4,256)
S = SpecData1D(Sj(w),w) #Make spectrum object from numerical values
vals = S.bandwidth([0,1,2,3])
true_vals = np.array([ 0.73062845, 0.34476034, 0.68277527, 2.90817052])
assert((np.abs(vals-true_vals)<1e-7).all())
def test_docstrings():
import doctest
doctest.testmod()
if __name__ == '__main__':
#from nose.plugins.plugintest import run_buffered as run
#run()
test_docstrings()
import nose
#nose.run()
#test_docstrings()
#test_tocovdata()
#test_tocovmatrix()
#test_sim()
#test_bandwidth()

@ -8457,7 +8457,8 @@ def test_genpareto():
print(phat.par)
if __name__ == '__main__':
test_binom()
bernoulli.logcdf(np.nan)
#test_binom()
#test_doctstrings()
#test_genpareto()
#test_truncrayleigh()

@ -341,14 +341,15 @@ def test_nan_arguments_ticket835():
assert_(np.isnan(stats.t.ppf(np.nan)))
assert_(np.isnan(stats.t.isf(np.nan)))
assert_(np.isnan(stats.bernoulli.logcdf(np.nan)))
assert_(np.isnan(stats.bernoulli.cdf(np.nan)))
assert_(np.isnan(stats.bernoulli.logsf(np.nan)))
assert_(np.isnan(stats.bernoulli.sf(np.nan)))
assert_(np.isnan(stats.bernoulli.pdf(np.nan)))
assert_(np.isnan(stats.bernoulli.logpdf(np.nan)))
assert_(np.isnan(stats.bernoulli.ppf(np.nan)))
assert_(np.isnan(stats.bernoulli.isf(np.nan)))
pr = 0.5
assert_(np.isnan(stats.bernoulli.logcdf(np.nan, pr)))
assert_(np.isnan(stats.bernoulli.cdf(np.nan, pr)))
assert_(np.isnan(stats.bernoulli.logsf(np.nan, pr)))
assert_(np.isnan(stats.bernoulli.sf(np.nan, pr)))
assert_(np.isnan(stats.bernoulli.pmf(np.nan, pr)))
assert_(np.isnan(stats.bernoulli.logpmf(np.nan, pr)))
assert_(np.isnan(stats.bernoulli.ppf(np.nan, pr)))
assert_(np.isnan(stats.bernoulli.isf(np.nan, pr)))
class TestRvDiscrete(TestCase):

@ -146,7 +146,7 @@ class TrData(PlotData, TrCommon):
-------
Construct a linear transformation model
>>> import numpy as np
>>> import wafo.transorm as wt
>>> import wafo.transform as wt
>>> sigma = 5; mean = 1
>>> u = np.linspace(-5,5); x = sigma*u+mean; y = u
>>> g = wt.TrData(y,x)

@ -1,47 +1,40 @@
from wafo.transform.models import TrHermite, TrOchi, TrLinear
import numpy as np
def test_trhermite():
'''
>>> std = 7./4
>>> g = TrHermite(sigma=std, ysigma=std)
>>> g.dist2gauss()
3.9858776379926808
>>> g.mean
0.0
>>> g.sigma
1.75
>>> g.dat2gauss([0,1,2,3])
array([ 0.04654321, 1.03176393, 1.98871279, 2.91930895])
std = 7./4
g = TrHermite(sigma=std, ysigma=std)
assert(np.abs(g.dist2gauss()- 0.88230868748851554)<1e-7)
assert( g.mean == 0.0)
assert(g.sigma == 1.75)
vals = g.dat2gauss([0,1,2,3])
true_vals = np.array([ 0.04654321, 1.03176393, 1.98871279, 2.91930895])
assert((np.abs(vals-true_vals)<1e-7).all())
'''
def test_trochi():
'''
>>> std = 7./4
>>> g = TrOchi(sigma=std, ysigma=std)
>>> g.dist2gauss()
5.9322684525265501
>>> g.mean
0.0
>>> g.sigma
1.75
>>> g.dat2gauss([0,1,2,3])
array([ 6.21927960e-04, 9.90237621e-01, 1.96075606e+00,
std = 7./4
g = TrOchi(sigma=std, ysigma=std)
assert(g.dist2gauss()== 1.4106988010566603)
assert(g.mean== 0.0)
assert(g.sigma==1.75)
vals = g.dat2gauss([0,1,2,3])
true_vals = np.array([ 6.21927960e-04, 9.90237621e-01, 1.96075606e+00,
2.91254576e+00])
'''
assert((np.abs(vals-true_vals)<1e-7).all())
def test_trlinear():
'''
>>> std = 7./4
>>> g = TrLinear(sigma=std, ysigma=std)
>>> g.dist2gauss()
0.0
>>> g.mean
0.0
>>> g.sigma
1.75
>>> g.dat2gauss([0,1,2,3])
array([ 0., 1., 2., 3.])
'''
std = 7./4
g = TrLinear(sigma=std, ysigma=std)
assert(g.dist2gauss() == 0.0)
assert(g.mean == 0.0)
assert(g.sigma== 1.75)
vals = g.dat2gauss([0,1,2,3])
true_vals = np.array([ 0., 1., 2., 3.])
assert((np.abs(vals-true_vals)<1e-7).all())
if __name__=='__main__':
import doctest
doctest.testmod()
import nose
nose.run()

@ -1,32 +1,31 @@
from wafo.transform import TrData
import numpy as np
def test_trdata():
'''
Construct a linear transformation model
>>> import numpy as np
>>> sigma = 5; mean = 1
>>> u = np.linspace(-5,5); x = sigma*u+mean; y = u
>>> g = TrData(y,x)
>>> g.mean
array([ 1.])
>>> g.sigma
array([ 5.])
'''
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.dist2gauss() < 1e-16)
>>> g = TrData(y,x,mean=1,sigma=5)
>>> g.mean
1
>>> g.sigma
5
>>> g.dat2gauss(1,2,3)
[array([ 0.]), array([ 0.4]), array([ 0.6])]
>>> g.dat2gauss([0,1,2,3])
array([-0.2, 0. , 0.2, 0.4])
Check that the departure from a Gaussian model is zero
>>> g.dist2gauss() < 1e-16
True
'''
if __name__=='__main__':
import doctest
doctest.testmod()
import nose
nose.run()

@ -0,0 +1,5 @@
'''
Created on 1. mars 2013
@author: pab
'''

@ -3,30 +3,29 @@ Created on 19. juli 2010
@author: pab
'''
import numpy as np
from wafo.wave_theory.dispersion_relation import w2k,k2w #@UnusedImport
def test_k2w():
'''
>>> from numpy import arange
>>> k2w(arange(0.01,.5,0.2))[0]
array([ 0.3132092 , 1.43530485, 2.00551739])
>>> k2w(arange(0.01,.5,0.2),h=20)[0]
array([ 0.13914927, 1.43498213, 2.00551724])
'''
def test_k2w_infinite_water_depth():
vals = k2w(np.arange(0.01,.5,0.2))[0]
true_vals = np.array([ 0.3132092 , 1.43530485, 2.00551739])
assert((np.abs(vals-true_vals)<1e-7).all())
def test_k2w_finite_water_depth():
vals = k2w(np.arange(0.01,.5,0.2),h=20)[0]
true_vals = np.array([ 0.13914927, 1.43498213, 2.00551724])
assert((np.abs(vals-true_vals)<1e-7).all())
def test_w2k():
'''
>>> w2k(range(4))[0]
array([ 0. , 0.1019368 , 0.4077472 , 0.91743119])
>>> w2k(range(4),h=20)[0]
array([ 0. , 0.10503601, 0.40774726, 0.91743119])
'''
def test_w2k_infinite_water_depth():
vals = w2k(range(4))[0]
true_vals = np.array([ 0. , 0.1019368 , 0.4077472 , 0.91743119])
assert((np.abs(vals-true_vals)<1e-7).all())
def test_doctstrings():
import doctest
doctest.testmod()
def test_w2k_finite_water_depth():
vals = w2k(range(4),h=20)[0]
true_vals = np.array([ 0. , 0.10503601, 0.40774726, 0.91743119])
assert((np.abs(vals-true_vals)<1e-7).all())
if __name__ == '__main__':
test_doctstrings()
import nose
nose.run()
Loading…
Cancel
Save