Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions lib/net/imap/sequence_set.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2438,6 +2438,8 @@ def slice_range(range)
if min <= max then intersection export_minmax_entry [min, max]
else remain_frozen_empty
end
elsif first.positive?
remain_frozen_empty if valid_slice_start?(first)
end
end

Expand Down
15 changes: 4 additions & 11 deletions test/net/imap/test_sequence_set.rb
Original file line number Diff line number Diff line change
Expand Up @@ -489,13 +489,6 @@ def obj.to_sequence_set; 192_168.001_255 end

def pend_slice_bug(what, &) = pend("#slice bug: #{what}", &)

def pend_slice_from_cardinality(actual)
pend_slice_bug "return empty for start == cardinality" do
assert_same SequenceSet.equal, actual
end
assert_nil actual
end

def pend_slice_neg_len(&)
pend_slice_bug("allow negative length", &)
assert_raise_with_message(ArgumentError,
Expand Down Expand Up @@ -608,7 +601,7 @@ def pend_slice_zero_len(&)
assert_same SequenceSet.empty, set[100.. -101] # i.e: 100.. 99
assert_same SequenceSet.empty, set[199... -1] # i.e: 199...199
assert_same SequenceSet.empty, set[199.. -2] # i.e: 199...198
pend_slice_from_cardinality set[200.. -1] # i.e: 200.. 199
assert_same SequenceSet.empty, set[200.. -1] # i.e: 200.. 199
end

test "#slice(range) -> empty, for start == cardinality" do
Expand All @@ -621,9 +614,9 @@ def pend_slice_zero_len(&)
assert_equal SequenceSet[ 100], set[-1, 4]
# when positive start == cardinality
pend_slice_zero_len do assert_equal SequenceSet.empty, set[10, 0] end
pend_slice_from_cardinality set[10, 4]
assert_equal SequenceSet.empty, set[10, 4]
assert_equal SequenceSet.empty, set[10...10]
pend_slice_from_cardinality set[10.. 10]
assert_equal SequenceSet.empty, set[10.. 10]
assert_equal SequenceSet.empty, set[10.. 9]
end

Expand Down Expand Up @@ -1237,7 +1230,7 @@ def pend_slice_zero_len(&)
assert_equal SequenceSet[9..10, 20], set.slice!(3..)
assert_equal SequenceSet[5, 7..8], set
assert_nil set.slice!(3)
pend_slice_from_cardinality set.slice!(3..)
assert_equal SequenceSet.empty, set.slice!(3..)
end

test "#delete_at" do
Expand Down
Loading