2 # Bootstrap tests for blocks
4 assert('BS Block 1') do
16 assert('BS Block 2') do
17 assert_equal 2, [1,2,3].find{|x| x == 2}
20 assert('BS Block 3') do
24 [1, 2, 3].each(&block)
27 assert_equal 2, E.new.find {|x| x == 2 }
30 assert('BS Block 3') do
38 assert('BS Block 4') do
46 assert('BS Block 5') do
54 assert('BS Block 6') do
66 assert('BS Block 7') do
68 assert_equal((1..3)) do
78 assert('BS Block 8') do
79 assert_equal [1, 2, 3], (1..3).to_a
82 assert('BS Block 9') do
83 assert_equal([4, 8, 12]) do
90 assert('BS Block 10') do
107 assert('BS Block 11') do
121 assert('BS Block 12') do
136 assert('BS Block 13') do
158 assert('BS Block 14') do
180 assert('BS Block 15') do
191 assert('BS Block 16') do
195 assert_equal(92580) do
202 assert('BS Block 17') do
208 assert_equal [10, nil] do
215 assert('BS Block 18') do
229 assert('BS Block 19') do
235 assert_equal([10, 20, 30, 40, nil, nil, nil, nil]) do
242 assert('BS Block 20') do
248 assert_equal([10, 20, 30, 40, nil, nil]) do
255 assert('BS Block 21') do
260 assert_equal([1, [2]]) do
267 assert('BS Block 22') do
272 assert_equal([[1, 2]]) do
279 assert('BS Block 23') do
284 assert_equal([1, 2, []]) do
291 assert('BS Block 24') do
302 assert('BS Block 25') do
306 assert_equal(15129) do
315 assert('BS Block 26') do
328 assert('BS Block 27') do
337 assert('BS Block 28') do
345 assert('BS Block 29') do
350 assert_equal([1, 2]) do
357 assert('BS Block 30') do
362 assert_equal([1, nil]) do
369 assert('BS Block [ruby-dev:31147]') do
376 assert('BS Block [ruby-dev:31160]') do
380 assert_nil m {|(v,(*))|}
383 assert('BS Block [issue #750]') do
388 assert_equal m(*args){ 1 }, 1
391 assert('BS Block 31') do
395 assert_nil m {|((*))|}
398 assert('BS Block [ruby-dev:31440]') do
402 assert_equal m{|v, &b| v}, [0]
405 assert('BS Block 32') do
406 r = false; 1.times{|&b| r = b}
407 assert_equal NilClass, r.class
410 assert('BS Block [ruby-core:14395]') do
411 assert_nothing_raised do
413 def respond_to(&block)
414 responder = Responder.new
415 block.call(responder)
433 def method_missing(symbol, &block)
434 "enter method_missing"
435 @response = Proc.new{
439 "leave method_missing"
450 assert("BS Block 33") do
451 module TestReturnFromNestedBlock
461 assert_equal :ok, TestReturnFromNestedBlock.test
464 assert("BS Block 34") do
465 module TestReturnFromNestedBlock_BSBlock34
475 assert_equal :ok, TestReturnFromNestedBlock_BSBlock34.test
478 assert("BS Block 35") do
479 module TestReturnFromNestedBlock_BSBlock35
489 assert_equal :ok, TestReturnFromNestedBlock_BSBlock35.test
492 assert('BS Block 36') do
497 assert_equal([1, 2, [3, 4], 5]) do
504 assert('BS Block 37') do
509 assert_equal([1, 2, [], 3]) do
516 assert('BS Block 38') do
521 assert_equal [1,2,3,4,5], iter{|a,b,c=:c,d,e| [a,b,c,d,e]}
524 assert('BS Block 39') do
529 assert_equal([1, 2, nil]) do