github.com/jingcheng-WU/gonum@v0.9.1-0.20210323123734-f1a2a11a8f7b/optimize/guessandcheck_test.go (about) 1 // Copyright ©2016 The Gonum Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package optimize 6 7 import ( 8 "testing" 9 10 "github.com/jingcheng-WU/gonum/mat" 11 "github.com/jingcheng-WU/gonum/optimize/functions" 12 "github.com/jingcheng-WU/gonum/stat/distmv" 13 ) 14 15 func TestGuessAndCheck(t *testing.T) { 16 t.Parallel() 17 dim := 30 18 problem := Problem{ 19 Func: functions.ExtendedRosenbrock{}.Func, 20 } 21 mu := make([]float64, dim) 22 sigma := mat.NewSymDense(dim, nil) 23 for i := 0; i < dim; i++ { 24 sigma.SetSym(i, i, 1) 25 } 26 d, ok := distmv.NewNormal(mu, sigma, nil) 27 if !ok { 28 panic("bad test") 29 } 30 initX := make([]float64, dim) 31 _, err := Minimize(problem, initX, nil, &GuessAndCheck{Rander: d}) 32 if err != nil { 33 t.Errorf("unexpected error running Minimize with nil settings: %v", err) 34 } 35 36 settings := &Settings{} 37 settings.Concurrent = 5 38 settings.MajorIterations = 15 39 _, err = Minimize(problem, initX, settings, &GuessAndCheck{Rander: d}) 40 if err != nil { 41 t.Errorf("unexpected error running Minimize with settings %+v: %v", settings, err) 42 } 43 }