Fix Integer#ceildiv to respect #coerce (#7118)

Fixes [Bug #19343]
This commit is contained in:
Kouhei Yanagita 2023-01-22 18:53:02 +09:00 коммит произвёл GitHub
Родитель cad09f7098
Коммит 20a85ab611
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 5 добавлений и 1 удалений

Просмотреть файл

@ -278,7 +278,7 @@ class Integer
#
# 3.ceildiv(1.2) # => 3
def ceildiv(other)
-div(-other)
-div(0 - other)
end
#

Просмотреть файл

@ -725,5 +725,9 @@ class TestInteger < Test::Unit::TestCase
assert_equal(10, (10**100-11).ceildiv(10**99-1))
assert_equal(11, (10**100-9).ceildiv(10**99-1))
o = Object.new
def o.coerce(other); [other, 10]; end
assert_equal(124, 1234.ceildiv(o))
end
end