diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-08-29 10:29:57 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-08-29 10:33:22 +0900 |
commit | 5dc36ddcd00fc556c04c15ce9770c5a84d7d43dc (patch) | |
tree | e652141942f9363c8d4e4de8d7e9e0fe237fa2a8 /test/ruby | |
parent | 7731be94eb78c34540e04e95334b3b824a3b6e3f (diff) |
Add out of range tests for Array#slice!
Diffstat (limited to 'test/ruby')
-rw-r--r-- | test/ruby/test_array.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/ruby/test_array.rb b/test/ruby/test_array.rb index 8f05f9cebd..78e497d345 100644 --- a/test/ruby/test_array.rb +++ b/test/ruby/test_array.rb @@ -1624,6 +1624,19 @@ class TestArray < Test::Unit::TestCase assert_raise(ArgumentError) { @cls[1].slice!(0, 0, 0) } end + def test_slice_out_of_range! + a = @cls[*(1..100).to_a] + + assert_nil(a.clone.slice!(-101..-1)) + assert_nil(a.clone.slice!(-101..)) + + # assert_raise_with_message(RangeError, "((-101..-1).%(2)) out of range") { a.clone.slice!((-101..-1)%2) } + # assert_raise_with_message(RangeError, "((-101..).%(2)) out of range") { a.clone.slice!((-101..)%2) } + + assert_nil(a.clone.slice!(10, -3)) + assert_equal @cls[], a.clone.slice!(10..7) + end + def test_sort a = @cls[ 4, 1, 2, 3 ] assert_equal(@cls[1, 2, 3, 4], a.sort) |