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
|
require 'test/unit'
class TestProc < Test::Unit::TestCase
def procFrom
Proc.new
end
def test_AREF # '[]'
a = Proc.new { |x| "hello #{x}" }
assert_equal("hello there", a["there"])
end
def test_arity
tests = [
[Proc.new { }, -1],
[Proc.new { |x,y| }, 2],
[Proc.new { |x,y,z| }, 3],
[Proc.new { |*z| }, -1],
[Proc.new { |x,*z| }, -2],
[Proc.new { |x,y,*z| }, -3],
]
tests <<
[Proc.new { || }, 0] <<
[Proc.new { |x| }, 1]
expected = []
actual = tests.map do |proc, exp_arity|
expected << exp_arity
proc.arity
end
assert_equal(expected, actual)
end
def test_call
a = Proc.new { |x| "hello #{x}" }
assert_equal("hello there", a.call("there"))
end
def test_s_new
a = procFrom { "hello" }
assert_equal("hello", a.call)
a = Proc.new { "there" }
assert_equal("there", a.call)
end
def test_to_s
a = Proc.new {}
assert(a.to_s[__FILE__ + ":50"])
end
end
|