gss_test.go 1.2 KB

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