File: index_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 (61 lines) | stat: -rw-r--r-- 1,848 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
require 'test_helper'

class IndexTest < GSL::TestCase

  # helper(s)

  def _create_index array
    i = GSL::Index.alloc(array.size)
    array.each_with_index { |e, j| i[j] = e }
    i
  end

  # tests

  def test_get_int
    i = GSL::Index.alloc(5)
    assert_equal 2, i.get(2)
    assert_equal 4, i.get(4)
    assert_equal 3, i.get(-2)
    assert_equal 0, i.get(-5)
  end

  def test_get_array
    i = GSL::Index.alloc(5)
    assert_equal _create_index([2, 3]), i.get([2, 3])
    assert_equal _create_index([4, 2]), i.get([-1, 2])
    assert_equal _create_index([4, 3, 1]), i.get([4, -2, 1])
    assert_equal _create_index([0, 4, 4, 0]), i.get([0, 4, -1, -5])
  end

  def test_get_range
    i = GSL::Index.alloc(5)
    assert_equal _create_index([2, 3]), i.get(2..3)
    assert_equal _create_index([0, 1, 2, 3, 4]), i.get(0..4)
    assert_equal _create_index([0, 1, 2, 3, 4]), i.get(0..5)
    assert_equal _create_index([0, 1, 2, 3, 4]), i.get(-5..-1)
    assert_equal _create_index([0]), i.get(0..-5)
    assert_equal _create_index([0]), i.get(-5..0)
    assert_equal _create_index([3]), i.get(-2..3)
    assert_equal _create_index([3, 4]), i.get(-2..4)
    assert_equal _create_index([1, 2, 3]), i.get(-4...-1) # note the exclusive range operator!
  end

  def test_get_failure
    i = GSL::Index.alloc(5)
    assert_raises(RangeError) { i.get(5) }
    assert_raises(RangeError) { i.get(-6) }
    assert_raises(RangeError) { i.get(1_000_000) }
    assert_raises(ArgumentError) { i.get(10**100) }

    assert_raises(RangeError) { i.get([5]) }
    assert_raises(RangeError) { i.get([-6]) }
    assert_raises(RangeError) { i.get([-6, 0, 5]) }

    assert_raises(RangeError) { i.get(-6..-1) }
    assert_raises(RangeError) { i.get(3..-5) }
    assert_raises(RangeError) { i.get(-2..-3) }
    assert_raises(RangeError) { i.get(-2..1) }
  end

end