[Bug #20936] Fix #size for Range#reverse_each

This commit is contained in:
Kouhei Yanagita 2024-12-10 11:51:49 +09:00 committed by Nobuyoshi Nakada
parent d5abcae435
commit 3422bfcab6
Notes: git 2024-12-10 14:12:45 +00:00
2 changed files with 67 additions and 3 deletions

View file

@ -823,6 +823,25 @@ class TestRange < Test::Unit::TestCase
assert_equal [5, 4, 3, 2, 1], a
end
def test_reverse_each_size
assert_equal(3, (1..3).reverse_each.size)
assert_equal(3, (1..3.3).reverse_each.size)
assert_raise(TypeError) { (1..nil).reverse_each.size }
assert_raise(TypeError) { (1.1..3).reverse_each.size }
assert_raise(TypeError) { (1.1..3.3).reverse_each.size }
assert_raise(TypeError) { (1.1..nil).reverse_each.size }
assert_equal(Float::INFINITY, (..3).reverse_each.size)
assert_raise(TypeError) { (nil..3.3).reverse_each.size }
assert_raise(TypeError) { (nil..nil).reverse_each.size }
assert_equal(2, (1...3).reverse_each.size)
assert_equal(3, (1...3.3).reverse_each.size)
assert_equal(nil, ('a'..'z').reverse_each.size)
assert_raise(TypeError) { ('a'..).reverse_each.size }
assert_raise(TypeError) { (..'z').reverse_each.size }
end
def test_begin_end
assert_equal(0, (0..1).begin)
assert_equal(1, (0..1).end)