File: monte_test.rb

package info (click to toggle)
ruby-gsl 2.1.0.3%2Bdfsg1-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 5,604 kB
  • sloc: ansic: 62,050; ruby: 15,845; sh: 19; makefile: 10
file content (77 lines) | stat: -rw-r--r-- 2,150 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
require 'test_helper'

class MonteTest < GSL::TestCase

  DIM = 1

  def test_miser
    return unless GSL::Monte::Miser.method_defined?(:params_get)

    miser = GSL::Monte::Miser.alloc(DIM)
    params = miser.params_get

    params.estimate_frac = 99
    miser.params_set(params)
    assert_abs miser.estimate_frac, 99, 1e-5, 'miser_estimate_frac'

    params.min_calls = 9
    miser.params_set(params)
    assert_int miser.min_calls, 9, 'miser_min_calls'

    params.min_calls_per_bisection = 7
    miser.params_set(params)
    assert_int miser.min_calls_per_bisection, 7, 'miser_min_calls_per_bisection'

    params.alpha = 3
    miser.params_set(params)
    assert_abs miser.alpha, 3, 1e-5, 'miser_alpha'

    params.dither = 4
    miser.params_set(params)
    assert_abs miser.dither, 4, 1e-5, 'miser_dither'
  end

  def test_vegas
    return unless GSL::Monte::Vegas.method_defined?(:params_get)

    vegas = GSL::Monte::Vegas.alloc(DIM)
    params = vegas.params_get

    params.alpha = 1
    vegas.params_set(params)
    assert_abs vegas.alpha, 1, 1e-5, 'vegas_alpha'

    params.iterations = 4
    vegas.params_set(params)
    assert_int vegas.iterations, 4, 'vegas_iterations'

    params.stage = 3
    vegas.params_set(params)
    assert_int vegas.stage, 3, 'vegas_stage'

    params.mode = GSL::Monte::Vegas::MODE_IMPORTANCE
    vegas.params_set(params)
    assert_int vegas.mode, GSL::Monte::Vegas::MODE_IMPORTANCE, 'vegas_mode MODE_IMPORTANCE'

    params.mode = GSL::Monte::Vegas::MODE_IMPORTANCE_ONLY
    vegas.params_set(params)
    assert_int vegas.mode, GSL::Monte::Vegas::MODE_IMPORTANCE_ONLY, 'vegas_mode MODE_IMPORTANCE_ONLY'

    params.mode = GSL::Monte::Vegas::MODE_STRATIFIED
    vegas.params_set(params)
    assert_int vegas.mode, GSL::Monte::Vegas::MODE_STRATIFIED, 'vegas_mode MODE_STRATIFIED'

    params.verbose = 0
    vegas.params_set(params)
    assert_int vegas.verbose, 0, 'vegas_verbose 0'

    params.verbose = 1
    vegas.params_set(params)
    assert_int vegas.verbose, 1, 'vegas_verbose 1'

    params.verbose = -1
    vegas.params_set(params)
    assert_int vegas.verbose, -1, 'vegas_verbose -1'
  end

end