[前][次][番号順一覧][スレッド一覧]

ruby-changes:24369

From: naruse <ko1@a...>
Date: Wed, 18 Jul 2012 03:10:24 +0900 (JST)
Subject: [ruby-changes:24369] naruse:r36420 (trunk): Add tests for r36415.

naruse	2012-07-18 03:08:40 +0900 (Wed, 18 Jul 2012)

  New Revision: 36420

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=36420

  Log:
    Add tests for r36415.

  Modified files:
    trunk/proc.c
    trunk/test/ruby/test_proc.rb

Index: proc.c
===================================================================
--- proc.c	(revision 36419)
+++ proc.c	(revision 36420)
@@ -622,18 +622,25 @@
  *  arguments. A <code>proc</code> with no argument declarations
  *  is the same a block declaring <code>||</code> as its arguments.
  *
- *     Proc.new {}.arity          #=>  0
- *     Proc.new {||}.arity        #=>  0
- *     Proc.new {|a|}.arity       #=>  1
- *     Proc.new {|a,b|}.arity     #=>  2
- *     Proc.new {|a,b,c|}.arity   #=>  3
- *     Proc.new {|*a|}.arity      #=> -1
- *     Proc.new {|a,*b|}.arity    #=> -2
- *     Proc.new {|a,*b, c|}.arity    #=> -3
- *     lambda { |a = 0| }.arity      #=> -1
- *     lambda { |a, b = 0| }.arity   #=> -2
- *     lambda { |a, b = 0, c = 0| }.arity #=> -2
- *     lambda { |(a, b), c = 0| }.arity   #=> -2
+ *     proc {}.arity          #=>  0
+ *     proc {||}.arity        #=>  0
+ *     proc {|a|}.arity       #=>  1
+ *     proc {|a,b|}.arity     #=>  2
+ *     proc {|a,b,c|}.arity   #=>  3
+ *     proc {|*a|}.arity      #=> -1
+ *     proc {|a,*b|}.arity    #=> -2
+ *     proc {|a,*b, c|}.arity #=> -3
+ *
+ *     proc   { |x = 0| }.arity       #=> 0
+ *     lambda { |a = 0| }.arity       #=> -1
+ *     proc   { |x=0, y| }.arity      #=> 0
+ *     lambda { |x=0, y| }.arity      #=> -2
+ *     proc   { |x=0, y=0| }.arity    #=> 0
+ *     lambda { |x=0, y=0| }.arity    #=> -1
+ *     proc   { |x, y=0| }.arity      #=> 1
+ *     lambda { |x, y=0| }.arity      #=> -2
+ *     proc   { |(x, y), z=0| }.arity #=> 1
+ *     lambda { |(x, y), z=0| }.arity #=> -2
  */
 
 static VALUE
Index: test/ruby/test_proc.rb
===================================================================
--- test/ruby/test_proc.rb	(revision 36419)
+++ test/ruby/test_proc.rb	(revision 36420)
@@ -62,13 +62,39 @@
     assert_equal(0, proc{}.arity)
     assert_equal(0, proc{||}.arity)
     assert_equal(1, proc{|x|}.arity)
+    assert_equal(0, proc{|x=1|}.arity)
     assert_equal(2, proc{|x, y|}.arity)
+    assert_equal(0, proc{|x=0, y|}.arity)
+    assert_equal(0, proc{|x=0, y=0|}.arity)
+    assert_equal(1, proc{|x, y=0|}.arity)
     assert_equal(-2, proc{|x, *y|}.arity)
+    assert_equal(-1, proc{|x=0, *y|}.arity)
     assert_equal(-1, proc{|*x|}.arity)
     assert_equal(-1, proc{|*|}.arity)
     assert_equal(-3, proc{|x, *y, z|}.arity)
+    assert_equal(-2, proc{|x=0, *y, z|}.arity)
+    assert_equal(2, proc{|(x, y), z|}.arity)
+    assert_equal(1, proc{|(x, y), z=0|}.arity)
     assert_equal(-4, proc{|x, *y, z, a|}.arity)
 
+    assert_equal(0, lambda{}.arity)
+    assert_equal(0, lambda{||}.arity)
+    assert_equal(1, lambda{|x|}.arity)
+    assert_equal(-1, lambda{|x=1|}.arity) # different from proc
+    assert_equal(2, lambda{|x, y|}.arity)
+    assert_equal(-2, lambda{|x=0, y|}.arity) # different from proc
+    assert_equal(-1, lambda{|x=0, y=0|}.arity) # different from proc
+    assert_equal(-2, lambda{|x, y=0|}.arity) # different from proc
+    assert_equal(-2, lambda{|x, *y|}.arity)
+    assert_equal(-1, lambda{|x=0, *y|}.arity)
+    assert_equal(-1, lambda{|*x|}.arity)
+    assert_equal(-1, lambda{|*|}.arity)
+    assert_equal(-3, lambda{|x, *y, z|}.arity)
+    assert_equal(-2, lambda{|x=0, *y, z|}.arity)
+    assert_equal(2, lambda{|(x, y), z|}.arity)
+    assert_equal(-2, lambda{|(x, y), z=0|}.arity)
+    assert_equal(-4, lambda{|x, *y, z, a|}.arity)
+
     assert_arity(0) {}
     assert_arity(0) {||}
     assert_arity(1) {|x|}

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]