diff options
| author | zverok <zverok.offline@gmail.com> | 2024-09-08 19:26:23 +0300 |
|---|---|---|
| committer | Akinori Musha <knu@idaemons.org> | 2024-09-09 17:46:13 +0900 |
| commit | d7b0f269636749fdae2ba155ba5f9b752aa17341 (patch) | |
| tree | 12cf7a325dafb84ecbe36339c6a0071cbce52d36 /test/ruby | |
| parent | 155989415b660caba247db74f96b299e0cea66c1 (diff) | |
Return back legacy Range#step behavior for symbol ranges
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/11573
Diffstat (limited to 'test/ruby')
| -rw-r--r-- | test/ruby/test_range.rb | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/test/ruby/test_range.rb b/test/ruby/test_range.rb index 6c591b3155..842be77ab3 100644 --- a/test/ruby/test_range.rb +++ b/test/ruby/test_range.rb @@ -519,6 +519,58 @@ class TestRange < Test::Unit::TestCase assert_equal(%w[a b c], ('a'...).step.take(3)) end + def test_step_symbol_legacy + # finite + a = [] + (:a..:g).step(2) { a << _1 } + assert_equal(%i[a c e g], a) + + assert_kind_of(Enumerator, (:a..:g).step(2)) + assert_equal(%i[a c e g], (:a..:g).step(2).to_a) + + a = [] + (:a...:g).step(2) { a << _1 } + assert_equal(%i[a c e], a) + + assert_kind_of(Enumerator, (:a...:g).step(2)) + assert_equal(%i[a c e], (:a...:g).step(2).to_a) + + # endless + a = [] + (:a...).step(2) { a << _1; break if a.size == 3 } + assert_equal(%i[a c e], a) + + assert_kind_of(Enumerator, (:a...).step(2)) + assert_equal(%i[a c e], (:a...).step(2).take(3)) + + # beginless + assert_raise(ArgumentError) { (...:g).step(2) {} } + assert_raise(ArgumentError) { (...:g).step(2) } + + # step is not provided + a = [] + (:a..:d).step { a << _1 } + assert_equal(%i[a b c d], a) + + assert_kind_of(Enumerator, (:a..:d).step) + assert_equal(%i[a b c d], (:a..:d).step.to_a) + + a = [] + (:a...:d).step { a << _1 } + assert_equal(%i[a b c], a) + + assert_kind_of(Enumerator, (:a...:d).step) + assert_equal(%i[a b c], (:a...:d).step.to_a) + + # endless + a = [] + (:a...).step { a << _1; break if a.size == 3 } + assert_equal(%i[a b c], a) + + assert_kind_of(Enumerator, (:a...).step) + assert_equal(%i[a b c], (:a...).step.take(3)) + end + def test_step_bug15537 assert_equal([10.0, 9.0, 8.0, 7.0], (10 ..).step(-1.0).take(4)) assert_equal([10.0, 9.0, 8.0, 7.0], (10.0 ..).step(-1).take(4)) |
