summaryrefslogtreecommitdiff
path: root/test/ruby/test_enum.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-10-25 01:40:15 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-10-25 01:40:15 +0000
commit0ba049256e1b8b17f68c45266396ed1e3976481b (patch)
tree401a744bf49a200f1cd80a27e26ff5264107deaf /test/ruby/test_enum.rb
parentbb2aa9b3434cc92dd7acf40ce26d12672aaf6597 (diff)
range.c: check if exclude_end? is defined
* range.c (rb_range_values): should raise TypeError if necessary method is not defined, not NoMethodError, when trying to tell if the object is a Range and extract info. [ruby-core:83541] [Bug #14048] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_enum.rb')
-rw-r--r--test/ruby/test_enum.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/ruby/test_enum.rb b/test/ruby/test_enum.rb
index fcf601c183..ae119c73bf 100644
--- a/test/ruby/test_enum.rb
+++ b/test/ruby/test_enum.rb
@@ -966,6 +966,19 @@ class TestEnumerable < Test::Unit::TestCase
assert_int_equal(5, (2..0).sum(5))
assert_int_equal(2, (2..2).sum)
assert_int_equal(42, (2...2).sum(42))
+
+ not_a_range = Class.new do
+ include Enumerable # Defines the `#sum` method
+ def each
+ yield 2
+ yield 4
+ yield 6
+ end
+
+ def begin; end
+ def end; end
+ end
+ assert_equal(12, not_a_range.new.sum)
end
def test_uniq