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

ruby-changes:44384

From: nobu <ko1@a...>
Date: Thu, 20 Oct 2016 16:59:48 +0900 (JST)
Subject: [ruby-changes:44384] nobu:r56457 (trunk): test_proc.rb: improve curry tests

nobu	2016-10-20 16:59:44 +0900 (Thu, 20 Oct 2016)

  New Revision: 56457

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=56457

  Log:
    test_proc.rb: improve curry tests
    
    * test/ruby/test_proc.rb (test_curry): split.
    
    * test/ruby/test_proc.rb (test_curry_passed_block): simplify the
      assertion.
    
    * test/ruby/test_proc.rb (test_curry_with_trace): run all curry
      tests.

  Modified files:
    trunk/test/ruby/test_proc.rb
Index: test/ruby/test_proc.rb
===================================================================
--- test/ruby/test_proc.rb	(revision 56456)
+++ test/ruby/test_proc.rb	(revision 56457)
@@ -246,37 +246,47 @@ class TestProc < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_proc.rb#L246
     assert_equal([false, false], m.call, "#{bug8341} nested without block")
   end
 
-  def test_curry
+  def test_curry_proc
     b = proc {|x, y, z| (x||0) + (y||0) + (z||0) }
     assert_equal(6, b.curry[1][2][3])
     assert_equal(6, b.curry[1, 2][3, 4])
     assert_equal(6, b.curry(5)[1][2][3][4][5])
     assert_equal(6, b.curry(5)[1, 2][3, 4][5])
     assert_equal(1, b.curry(1)[1])
+  end
 
+  def test_curry_proc_splat
     b = proc {|x, y, z, *w| (x||0) + (y||0) + (z||0) + w.inject(0, &:+) }
     assert_equal(6, b.curry[1][2][3])
     assert_equal(10, b.curry[1, 2][3, 4])
     assert_equal(15, b.curry(5)[1][2][3][4][5])
     assert_equal(15, b.curry(5)[1, 2][3, 4][5])
     assert_equal(1, b.curry(1)[1])
+  end
 
+  def test_curry_lambda
     b = lambda {|x, y, z| (x||0) + (y||0) + (z||0) }
     assert_equal(6, b.curry[1][2][3])
     assert_raise(ArgumentError) { b.curry[1, 2][3, 4] }
     assert_raise(ArgumentError) { b.curry(5) }
     assert_raise(ArgumentError) { b.curry(1) }
+  end
 
+  def test_curry_lambda_splat
     b = lambda {|x, y, z, *w| (x||0) + (y||0) + (z||0) + w.inject(0, &:+) }
     assert_equal(6, b.curry[1][2][3])
     assert_equal(10, b.curry[1, 2][3, 4])
     assert_equal(15, b.curry(5)[1][2][3][4][5])
     assert_equal(15, b.curry(5)[1, 2][3, 4][5])
     assert_raise(ArgumentError) { b.curry(1) }
+  end
 
+  def test_curry_no_arguments
     b = proc { :foo }
     assert_equal(:foo, b.curry[])
+  end
 
+  def test_curry_given_blocks
     b = lambda {|x, y, &blk| blk.call(x + y) }.curry
     b = b.call(2) { raise }
     b = b.call(3) {|x| x + 4 }
@@ -330,16 +340,11 @@ class TestProc < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_proc.rb#L340
     assert_equal(fib, [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89])
   end
 
-  def test_curry_from_knownbug
+  def test_curry_passed_block
     a = lambda {|x, y, &b| b }
     b = a.curry[1]
 
-    assert_equal(:ok,
-      if b.call(2){} == nil
-        :ng
-      else
-        :ok
-      end, 'moved from btest/knownbug, [ruby-core:15551]')
+    assert_not_nil(b.call(2){}, '[ruby-core:15551]: passed block to curried block')
   end
 
   def test_curry_instance_exec
@@ -1231,7 +1236,10 @@ class TestProc < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_proc.rb#L1236
   def test_curry_with_trace
     # bug3751 = '[ruby-core:31871]'
     set_trace_func(proc {})
-    test_curry
+    methods.grep(/\Atest_curry/) do |test|
+      next if test == __method__
+      __send__(test)
+    end
   ensure
     set_trace_func(nil)
   end

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

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