Revision: 1058 http://trac.macosforge.org/projects/ruby/changeset/1058 Author: vincent.isambart@gmail.com Date: 2009-03-22 03:14:47 -0700 (Sun, 22 Mar 2009) Log Message: ----------- added argument passing (failing) tests Modified Paths: -------------- MacRuby/branches/experimental/test_roxor.rb Modified: MacRuby/branches/experimental/test_roxor.rb =================================================================== --- MacRuby/branches/experimental/test_roxor.rb 2009-03-22 07:04:43 UTC (rev 1057) +++ MacRuby/branches/experimental/test_roxor.rb 2009-03-22 10:14:47 UTC (rev 1058) @@ -712,6 +712,20 @@ p f(1, 2, 3, 4, 5, 6, 7) } assert "42", "def f((a, b)); a end; p f([42, 53])" + assert "42", "def f((a, b)); a end; p f([42, 53, 64])" # ignore additional elements in the array + assert "[42, nil]", "def f((a, b)); [a, b] end; p f([42])" # not used args are set to nil + assert "[1, 2, [], 3, nil]\n[1, 2, [], 3, 4]\n[1, 2, [3], 4, 5]", %{ + def f((x, y, *a, b, c)); [x, y, a, b, c] end + p f([1, 2, 3]) + p f([1, 2, 3, 4]) + p f([1, 2, 3, 4, 5]) + } + assert "true", %{ + class A; def to_ary; [42]; end; end + def f((*a)); a; end; + p f(A.new) == [42] + } # to_ary (not to_a) is called on non-Array objects + assert "true", %{def f((*a)); a; end; o = Object.new; p f(o) == [o]} # objects without to_ary are just passed in a one element array assert ":ok", "def f(x = 1) :ko; end; def f() end; begin p f(1); rescue ArgumentError; p :ok; end" assert ":ok", "def f(x) :ko; end; def f() end; begin p f(1); rescue ArgumentError; p :ok; end"
participants (1)
-
source_changes@macosforge.org