Project

General

Profile

Actions

Bug #15254

closed

Array#slice should not treat the index past the last element as a special case

Added by Malakai97 (Bryan Hockey) about 6 years ago. Updated about 6 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
[ruby-core:89559]

Description

Array#slice should not treat the index past the last element as a special case. This causes Array#slice(start, length) has inconsistent behavior when given out of bounds values for the start parameter. It sometimes returns an array, and sometimes nil.

    describe "inconsistencies starting in past the end" do
      it { @array.slice(5,3).must_equal [] } # passes
      it { @array.slice(6,3).must_equal [] } # returns nil
      it { @array.slice(100,3).must_equal [] } # returns nil
    end

    describe "failures when starting before the start" do
      it { @array.slice(-5,1).must_equal [0] } # passes
      it { @array.slice(-5,5).must_equal @array } # passes
      it { @array.slice(-6,2).must_equal [0] } # returns nil
      it { @array.slice(-6,6).must_equal @array } # returns nil
    end

The attached script contains the minitest tests.


Files

array_slice_start_length_test.rb (645 Bytes) array_slice_start_length_test.rb Malakai97 (Bryan Hockey), 10/25/2018 09:43 PM
Actions

Also available in: Atom PDF

Like0
Like0