[前][次][番号順一覧][スレッド一覧]

ruby-changes:67278

From: Nobuyoshi <ko1@a...>
Date: Sun, 29 Aug 2021 10:35:39 +0900 (JST)
Subject: [ruby-changes:67278] 5dc36ddcd0 (master): Add out of range tests for Array#slice!

https://git.ruby-lang.org/ruby.git/commit/?id=5dc36ddcd0

From 5dc36ddcd00fc556c04c15ce9770c5a84d7d43dc Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
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 8f05f9c..78e497d 100644
--- a/test/ruby/test_array.rb
+++ b/test/ruby/test_array.rb
@@ -1624,6 +1624,19 @@ class TestArray < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_array.rb#L1624
     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.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]