package gss import ( "log" "os" "testing" ) func TestGss(t *testing.T) { f := func(x float64, b bool) float64 { tmp := x - 2 return tmp * tmp } logger := log.New(os.Stdout, "", 0) a, b := Gss(f, 1, 5, 1e-4, logger) t.Logf("\n\n %f %f", a, b) // 1e-6 // Output: // 0 1 5 // 1 1 3.47214 // 2 1 2.52786 // 3 1.58359 2.52786 // 4 1.58359 2.16718 // 5 1.8065 2.16718 // 6 1.94427 2.16718 // 7 1.94427 2.08204 // 8 1.94427 2.02942 // 9 1.97679 2.02942 // 10 1.97679 2.00932 // 11 1.98922 2.00932 // 12 1.99689 2.00932 // 13 1.99689 2.00457 // 14 1.99689 2.00164 // 15 1.99871 2.00164 // 16 1.99871 2.00052 // 17 1.9994 2.00052 // 18 1.99983 2.00052 // 19 1.99983 2.00025 // 20 1.99983 2.00009 // 21 1.99993 2.00009 // 22 1.99993 2.00003 // 23 1.99997 2.00003 // 24 1.99999 2.00003 // 25 1.99999 2.00001 // 26 1.99999 2.00001 // 27 2 2.00001 // 28 2 2 // 29 2 2 // 30 2 2 // 31 2 2 // 32 2 2 a, b = Gss(f, 0.9, 1.1, 1e-4, logger) t.Logf("\n\n %f %f", a, b) }