From 39048aca7592a4096380f45f421bad578b61efb8 Mon Sep 17 00:00:00 2001 From: marcandre Date: Wed, 30 Jan 2013 05:11:03 +0000 Subject: * array.c (rb_ary_bsearch): Return enumerator if no block [#7725] * range.c (range_bsearch): ditto * test/ruby/test_array.rb: Test for above * test/ruby/test_range.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_array.rb | 6 ++++++ test/ruby/test_range.rb | 6 ++++++ 2 files changed, 12 insertions(+) (limited to 'test') diff --git a/test/ruby/test_array.rb b/test/ruby/test_array.rb index 6c7f920d79..ae0f76c970 100644 --- a/test/ruby/test_array.rb +++ b/test/ruby/test_array.rb @@ -2249,6 +2249,12 @@ class TestArray < Test::Unit::TestCase assert_raise(ArgumentError) { a.rotate!(1, 1) } end + def test_bsearch_with_no_block + enum = [1, 2, 42, 100, 666].bsearch + assert_nil enum.size + assert_equal 42, enum.each{|x| x >= 33 } + end + def test_bsearch_in_find_minimum_mode a = [0, 4, 7, 10, 12] assert_equal(4, a.bsearch {|x| x >= 4 }) diff --git a/test/ruby/test_range.rb b/test/ruby/test_range.rb index f8e9658728..c8867cf2ec 100644 --- a/test/ruby/test_range.rb +++ b/test/ruby/test_range.rb @@ -356,6 +356,12 @@ class TestRange < Test::Unit::TestCase assert_equal 42, (1..42).each.size end + def test_bsearch_with_no_block + enum = (42...666).bsearch + assert_nil enum.size + assert_equal 200, enum.each{|x| x >= 200 } + end + def test_bsearch_for_fixnum ary = [3, 4, 7, 9, 12] assert_equal(0, (0...ary.size).bsearch {|i| ary[i] >= 2 }) -- cgit v1.2.3