diff options
author | Nobuyoshi Nakada <[email protected]> | 2025-03-18 17:55:46 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2025-03-18 17:55:46 +0900 |
commit | c7f31c88aeed45607d2abc6b641ad2ccfd77e240 (patch) | |
tree | b6ec5573e12da60e6a77a6da317f25496ee4fb25 | |
parent | 76aaf8ddf4b13411f925085046cee2422bb9902e (diff) |
[Feature #20702] Tests for Array#fetch_values
-rw-r--r-- | spec/ruby/core/array/fetch_values_spec.rb | 1 | ||||
-rw-r--r-- | test/ruby/test_array.rb | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/spec/ruby/core/array/fetch_values_spec.rb b/spec/ruby/core/array/fetch_values_spec.rb index 559b6c2b2f..075dcc7a52 100644 --- a/spec/ruby/core/array/fetch_values_spec.rb +++ b/spec/ruby/core/array/fetch_values_spec.rb @@ -11,6 +11,7 @@ describe "Array#fetch_values" do it "returns the values for indexes" do @array.fetch_values(0).should == [:a] @array.fetch_values(0, 2).should == [:a, :c] + @array.fetch_values(-1).should == [:c] end it "returns the values for indexes ordered in the order of the requested indexes" do diff --git a/test/ruby/test_array.rb b/test/ruby/test_array.rb index e2f07ba115..19f79d236d 100644 --- a/test/ruby/test_array.rb +++ b/test/ruby/test_array.rb @@ -2716,6 +2716,18 @@ class TestArray < Test::Unit::TestCase assert_equal(2, [0, 1].fetch(2, 2)) end + def test_fetch_values + ary = @cls[1, 2, 3] + assert_equal([], ary.fetch_values()) + assert_equal([1], ary.fetch_values(0)) + assert_equal([3, 1, 3], ary.fetch_values(2, 0, -1)) + assert_raise(TypeError) {ary.fetch_values("")} + assert_raise(IndexError) {ary.fetch_values(10)} + assert_raise(IndexError) {ary.fetch_values(-20)} + assert_equal(["10 not found"], ary.fetch_values(10) {|i| "#{i} not found"}) + assert_equal(["10 not found", 3], ary.fetch_values(10, 2) {|i| "#{i} not found"}) + end + def test_index2 a = [0, 1, 2] assert_equal(a, a.index.to_a) |