mirror of https://github.com/swig/swig
64 lines
1.8 KiB
Ruby
64 lines
1.8 KiB
Ruby
#!/usr/bin/env ruby
|
|
|
|
require 'li_constraints'
|
|
include Li_constraints
|
|
|
|
def check_double(except, fn, f, val)
|
|
actual = true
|
|
proper = false
|
|
begin
|
|
fn.call(val)
|
|
rescue => e
|
|
actual = false
|
|
proper = e.class == ArgumentError && e.message == "Expected a #{f} value."
|
|
end
|
|
if actual
|
|
if !except
|
|
raise RuntimeError, "function '#{f}' with #{val} should perform an exception"
|
|
end
|
|
else
|
|
if except
|
|
raise RuntimeError, "function '#{f}' with #{val} should not perform an exception"
|
|
elsif !proper
|
|
raise RuntimeError, "function '#{f}' with #{val} should perform a proper exception"
|
|
end
|
|
end
|
|
end
|
|
|
|
nonnegative = -> (v) { test_nonnegative(v) }
|
|
check_double(true, nonnegative, "non-negative", 10)
|
|
check_double(true, nonnegative, "non-negative", 0)
|
|
check_double(false, nonnegative, "non-negative", -10)
|
|
|
|
nonpositive = -> (v) { test_nonpositive(v) }
|
|
check_double(false, nonpositive, "non-positive", 10)
|
|
check_double(true, nonpositive, "non-positive", 0)
|
|
check_double(true, nonpositive, "non-positive", -10)
|
|
|
|
positive = -> (v) { test_positive(v) }
|
|
check_double(true, positive, "positive", 10)
|
|
check_double(false, positive, "positive", 0)
|
|
check_double(false, positive, "positive", -10)
|
|
|
|
negative = -> (v) { test_negative(v) }
|
|
check_double(false, negative, "negative", 10)
|
|
check_double(false, negative, "negative", 0)
|
|
check_double(true, negative, "negative", -10)
|
|
|
|
nonzero = -> (v) { test_nonzero(v) }
|
|
check_double(true, nonzero, "nonzero", 10)
|
|
check_double(false, nonzero, "nonzero", 0)
|
|
check_double(true, nonzero, "nonzero", -10)
|
|
|
|
have_exception = false
|
|
begin
|
|
test_nonnull(nil)
|
|
rescue => e
|
|
have_exception = e.class == ArgumentError && e.message == "Received a NULL pointer."
|
|
end
|
|
if not have_exception
|
|
raise RuntimeError, "test_nonnull should perform exception with 'null' value"
|
|
end
|
|
nonnull = get_nonnull()
|
|
test_nonnull(nonnull)
|