From 5dc36ddcd00fc556c04c15ce9770c5a84d7d43dc Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Sun, 29 Aug 2021 10:29:57 +0900 Subject: Add out of range tests for Array#slice! --- test/ruby/test_array.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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) -- cgit v1.2.3