42 lines
1013 B
Go
42 lines
1013 B
Go
|
package onlinestats
|
||
|
|
||
|
import (
|
||
|
"math/rand"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestSWilk(t *testing.T) {
|
||
|
|
||
|
const l = 1000
|
||
|
|
||
|
r := rand.New(rand.NewSource(1))
|
||
|
|
||
|
zr := rand.NewZipf(r, 1.01, 1, 10000)
|
||
|
|
||
|
zipf := make([]float64, l)
|
||
|
for i := 0; i < l; i++ {
|
||
|
zipf[i] = float64(zr.Uint64())
|
||
|
}
|
||
|
|
||
|
var w, pw float64
|
||
|
var err error
|
||
|
|
||
|
w, pw, err = SWilk(zipf)
|
||
|
t.Logf("zipf: w=%f pw=%f err=%v", w, pw, err)
|
||
|
|
||
|
// fly wing lengths in mm are normally distributed
|
||
|
// via http://www.seattlecentral.edu/qelp/sets/057/057.html
|
||
|
var wings = []float64{
|
||
|
43, 48, 45, 48, 45, 39, 47, 43, 37, 46, 38, 47, 53, 43, 42, 44,
|
||
|
51, 42, 48, 42, 36, 46, 44, 41, 50, 47, 47, 44, 45, 46, 46, 40,
|
||
|
49, 40, 42, 45, 41, 51, 45, 44, 38, 50, 51, 41, 46, 49, 48, 47,
|
||
|
40, 42, 44, 45, 47, 42, 45, 46, 47, 42, 46, 47, 39, 45, 40, 50,
|
||
|
49, 52, 48, 45, 45, 54, 50, 41, 46, 48, 43, 43, 53, 41, 51, 46,
|
||
|
41, 48, 43, 47, 43, 48, 43, 44, 50, 44, 52, 49, 44, 46, 55, 50,
|
||
|
49, 44, 49, 49,
|
||
|
}
|
||
|
|
||
|
w, pw, err = SWilk(wings)
|
||
|
t.Logf("wings: w=%f pw=%f err=%v", w, pw, err)
|
||
|
}
|