File: err.rb

package info (click to toggle)
ruby-gsl 1.14.7%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 5,116 kB
  • sloc: ansic: 62,186; ruby: 17,804; makefile: 18; sh: 15
file content (58 lines) | stat: -rwxr-xr-x 1,662 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
#!/usr/bin/env ruby
# Ruby/GSL implementation of GSL "sum/test.c"
require("gsl")
require("./gsl_test2.rb")
include GSL::Test

MAX_ERRS = 64

class ErrCode
  attr_accessor :number
  attr_accessor :name
  def initialize(number, name)
    @number = number
    @name = name
  end
end

errors = ["GSL::SUCCESS", "GSL::FAILURE", "GSL::CONTINUE", "GSL::EDOM", 
          "GSL::ERANGE", "GSL::EFAULT", "GSL::EINVAL", "GSL::EFAILED", 
          "GSL::EFACTOR", "GSL::ESANITY", "GSL::ENOMEM", "GSL::EBADFUNC", 
          "GSL::ERUNAWAY", "GSL::EMAXITER", "GSL::EZERODIV", "GSL::EBADTOL", 
          "GSL::ETOL", "GSL::EUNDRFLW", "GSL::EOVRFLW", "GSL::ELOSS", 
          "GSL::EROUND", "GSL::EBADLEN", "GSL::ENOTSQR", "GSL::ESING",
          "GSL::EDIVERGE", "GSL::EUNSUP", "GSL::EUNIMPL", "GSL::ECACHE",
          "GSL::ETABLE", "GSL::ENOPROG", "GSL::ENOPROGJ", "GSL::ETOLF", 
          "GSL::ETOLX", "GSL::ETOLG", "GSL::EOF"]

Errors = Array.new(errors.size)

errors.each_index do |i|
  Errors[i] = ErrCode.new(eval("#{errors[i]}"), errors[i])
end

for i in 0...Errors.size
  printf("%s = %d\n", Errors[i].name, Errors[i].number)
end

for i in 0...Errors.size
  status = 0
  for j in 0...Errors.size
    if j != i
      status |= (Errors[i].number == Errors[j].number) ? 1 : 0
    end
    GSL::Test::test(status, "#{Errors[i].name} is distinct from other error values")
  end
end

for i in 0...Errors.size
  status = 0
  e1 = Errors[i].number
  for j in 0...Errors.size
    if j != i
      e2 = Errors[j].number
      status |= (GSL::strerror(e1) == GSL::strerror(e2)) ? 1 : 0
    end
  end
  GSL::Test::test(status, "#{Errors[i].name} has a distinct error message")
end