require 'test/unit' $KCODE = 'none' class TestCall < Test::Unit::TestCase def aaa(a, b=100, *rest) res = [a, b] res += rest if rest return res end def test_call begin aaa() # need at least 1 arg assert(false) rescue assert(true) end begin aaa # no arg given (exception raised) assert(false) rescue assert(true) end assert_equal(aaa(1), [1, 100]) assert_equal(aaa(1, 2), [1, 2]) assert_equal(aaa(1, 2, 3, 4), [1, 2, 3, 4]) assert_equal(aaa(1, *[2, 3, 4]), [1, 2, 3, 4]) end end