Commit fc20d018 authored by dearblue's avatar dearblue

Add test for #<< and #>> for Proc and Method class

parent 9a9e12a1
...@@ -371,6 +371,25 @@ assert "Method#initialize_copy" do ...@@ -371,6 +371,25 @@ assert "Method#initialize_copy" do
assert_equal(m1, m2) assert_equal(m1, m2)
end end
assert "Method#<< and Method#>>" do
obj = Object.new
class << obj
def mul2(n); n * 2; end
def add3(n); n + 3; end
end
f = obj.method(:mul2)
g = obj.method(:add3)
m1 = f << g
assert_kind_of Proc, m1
assert_equal 16, m1.call(5)
m2 = f >> g
assert_kind_of Proc, m2
assert_equal 13, m2.call(5)
end
assert 'UnboundMethod#arity' do assert 'UnboundMethod#arity' do
c = Class.new { c = Class.new {
def foo(a, b) def foo(a, b)
......
...@@ -77,6 +77,19 @@ assert('Kernel#proc') do ...@@ -77,6 +77,19 @@ assert('Kernel#proc') do
end end
end end
assert "Proc#<< and Proc#>>" do
add3 = ->(n) { n + 3 }
mul2 = ->(n) { n * 2 }
f1 = mul2 << add3
assert_kind_of Proc, f1
assert_equal 16, f1.call(5)
f2 = mul2 >> add3
assert_kind_of Proc, f2
assert_equal 13, f2.call(5)
end
assert('mrb_proc_new_cfunc_with_env') do assert('mrb_proc_new_cfunc_with_env') do
ProcExtTest.mrb_proc_new_cfunc_with_env(:test) ProcExtTest.mrb_proc_new_cfunc_with_env(:test)
ProcExtTest.mrb_proc_new_cfunc_with_env(:mruby) ProcExtTest.mrb_proc_new_cfunc_with_env(:mruby)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment