From d658a8d56802b9d20b666bbc08fa12b2050b2f93 Mon Sep 17 00:00:00 2001 From: mame Date: Thu, 19 Apr 2018 15:18:57 +0000 Subject: range.c: Make Range#bsearch support endless ranges git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_range.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'test') diff --git a/test/ruby/test_range.rb b/test/ruby/test_range.rb index 143842bcb4..84319d7d42 100644 --- a/test/ruby/test_range.rb +++ b/test/ruby/test_range.rb @@ -581,6 +581,8 @@ class TestRange < Test::Unit::TestCase ary = [0, 100, 100, 100, 200] assert_equal(1, (0...ary.size).bsearch {|i| ary[i] >= 100 }) + + assert_equal(1_000_001, (0...).bsearch {|i| i > 1_000_000 }) end def test_bsearch_for_float @@ -632,6 +634,8 @@ class TestRange < Test::Unit::TestCase assert_in_delta(1.0, (0.0..inf).bsearch {|x| Math.log(x) >= 0 }) assert_in_delta(7.0, (0.0..10).bsearch {|x| 7.0 - x }) + + assert_equal(1_000_000.0.next_float, (0.0..).bsearch {|x| x > 1_000_000 }) end def check_bsearch_values(range, search, a) @@ -733,6 +737,7 @@ class TestRange < Test::Unit::TestCase assert_equal(nil, (bignum...bignum+ary.size).bsearch {|i| ary[i - bignum] >= 100 }) assert_equal(bignum + 0, (bignum...bignum+ary.size).bsearch {|i| true }) assert_equal(nil, (bignum...bignum+ary.size).bsearch {|i| false }) + assert_equal(bignum * 2 + 1, (bignum...).bsearch {|i| i > bignum * 2 }) assert_raise(TypeError) { ("a".."z").bsearch {} } end -- cgit v1.2.3