File: nmatrix_cheb_test.rb

package info (click to toggle)
ruby-gsl 2.1.0.3%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 4,988 kB
  • sloc: ansic: 62,105; ruby: 15,859; sh: 19; makefile: 10
file content (34 lines) | stat: -rw-r--r-- 771 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
require_relative '../../test_helper'

class NMatrixChebTest < GSL::TestCase
  def test_eval
    f = GSL::Function.alloc do |x|
      if x < 0.5
        0.25
      else
        0.75
      end
    end

    n = 1000
    order = 40
    cs = GSL::Cheb.alloc(order)
    x = NMatrix.new([n], GSL::Vector.linspace(0, 1, n).to_a, dtype: :float64)

    ff = f.eval(x)

    assert ff.class == NMatrix

    cs.init(f, 0, 1)
    r10 = cs.eval_n(10, x)
    r40 = cs.eval(x)

    assert r10.class == NMatrix
    assert_rel r10.to_a.last, 0.758879, 0.001, 'test r10.last'
    assert_rel r10[5]  , 0.247816, 0.001, 'test r10[5]'

    assert r40.class == NMatrix
    assert_rel r40[5]   , 0.255682, 0.001, 'test r40[5]'
    assert_rel r40.first, 0.25633 , 0.001, 'test r40.first'
  end
end