From 6ce2ef33b562deaa4b4e3d94269fe64c93d3f985 Mon Sep 17 00:00:00 2001 From: mrkn Date: Sat, 5 Jan 2019 15:09:44 +0000 Subject: test/ruby/test_range.rb: add assertions Add assertions of Range#first and Range#last to examine the type conversion of the arguments and the negative value check. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_range.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'test') diff --git a/test/ruby/test_range.rb b/test/ruby/test_range.rb index f58d1f817c..8c3eb08aa7 100644 --- a/test/ruby/test_range.rb +++ b/test/ruby/test_range.rb @@ -435,6 +435,19 @@ class TestRange < Test::Unit::TestCase assert_equal("a", ("a"..nil).first) assert_raise(RangeError) { (0..nil).last } assert_raise(RangeError) { (0..nil).last(3) } + + assert_equal([0, 1, 2], (0..10).first(3.0)) + assert_equal([8, 9, 10], (0..10).last(3.0)) + assert_raise(TypeError) { (0..10).first("3") } + assert_raise(TypeError) { (0..10).last("3") } + class << (o = Object.new) + def to_int; 3; end + end + assert_equal([0, 1, 2], (0..10).first(o)) + assert_equal([8, 9, 10], (0..10).last(o)) + + assert_raise(ArgumentError) { (0..10).first(-1) } + assert_raise(ArgumentError) { (0..10).last(-1) } end def test_to_s -- cgit v1.2.3