Skip to content

Commit 4cabe29

Browse files
committed
✅ Improve test coverage for SequenceSet enums
`#each_range` and `#each_number` were previously tested indirectly via `#ranges` and `#numbers`, but this adds tests on them directly.
1 parent 340d3e7 commit 4cabe29

File tree

1 file changed

+32
-9
lines changed

1 file changed

+32
-9
lines changed

test/net/imap/test_sequence_set.rb

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -797,10 +797,42 @@ def test_inspect((expected, input, freeze))
797797
assert_equal data[:entries], seqset.each_entry.to_a
798798
end
799799

800+
test "#each_range" do |data|
801+
seqset = SequenceSet.new(data[:input])
802+
array = []
803+
assert_equal seqset, seqset.each_range { array << _1 }
804+
assert_equal data[:ranges], array
805+
assert_equal data[:ranges], seqset.each_range.to_a
806+
end
807+
800808
test "#ranges" do |data|
801809
assert_equal data[:ranges], SequenceSet.new(data[:input]).ranges
802810
end
803811

812+
test "#each_number" do |data|
813+
seqset = SequenceSet.new(data[:input])
814+
expected = data[:numbers]
815+
enum = seqset.each_number
816+
if expected.is_a?(Class) && expected < Exception
817+
assert_raise expected do enum.to_a end
818+
assert_raise expected do enum.each do fail "shouldn't get here" end end
819+
else
820+
array = []
821+
assert_equal seqset, seqset.each_number { array << _1 }
822+
assert_equal expected, array
823+
assert_equal expected, seqset.each_number.to_a
824+
end
825+
end
826+
827+
test "#numbers" do |data|
828+
expected = data[:numbers]
829+
if expected.is_a?(Class) && expected < Exception
830+
assert_raise expected do SequenceSet.new(data[:input]).numbers end
831+
else
832+
assert_equal expected, SequenceSet.new(data[:input]).numbers
833+
end
834+
end
835+
804836
test "#string" do |data|
805837
set = SequenceSet.new(data[:input])
806838
str = data[:to_s]
@@ -862,15 +894,6 @@ def test_inspect((expected, input, freeze))
862894
assert_equal(data[:complement], (~set).to_s)
863895
end
864896

865-
test "#numbers" do |data|
866-
expected = data[:numbers]
867-
if expected.is_a?(Class) && expected < Exception
868-
assert_raise expected do SequenceSet.new(data[:input]).numbers end
869-
else
870-
assert_equal expected, SequenceSet.new(data[:input]).numbers
871-
end
872-
end
873-
874897
test "SequenceSet[input]" do |input|
875898
case (input = data[:input])
876899
when nil

0 commit comments

Comments
 (0)