From 412b023742171585b123cf20fcbb9b94476582ac Mon Sep 17 00:00:00 2001 From: mame Date: Thu, 15 Nov 2012 13:50:55 +0000 Subject: * range.c (range_bsearch): fix some bugs: a documentation bug, a wrong condition, missed break in switch/case, and workaround for GCC optimization. See [ruby-core:49364] in detail. A great patch from Heesob Park. [Bug #7352] [Feature #4766] * array.c (rb_ary_bsearch): fix similar bug (missed break). * test/ruby/test_range.rb: add two test cases for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_range.rb | 3 +++ 1 file changed, 3 insertions(+) (limited to 'test/ruby/test_range.rb') diff --git a/test/ruby/test_range.rb b/test/ruby/test_range.rb index 0600f694f7..ca0e155f3d 100644 --- a/test/ruby/test_range.rb +++ b/test/ruby/test_range.rb @@ -417,6 +417,9 @@ class TestRange < Test::Unit::TestCase v = (-inf..0).bsearch {|x| x > -Float::MAX } assert_operator(-Float::MAX, :<, v) assert_equal(nil, v.infinite?) + + 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 }) end def test_bsearch_for_bignum -- cgit v1.2.3