зеркало из https://github.com/github/ruby.git
[ruby/date] Fix comparison with Float::INFINITY
Fixes [Bug #17945] https://github.com/ruby/date/commit/953d907238
This commit is contained in:
Родитель
49ba7cd259
Коммит
8065670cfb
|
@ -30,6 +30,8 @@ class Date
|
|||
def <=>(other)
|
||||
case other
|
||||
when Infinity; return d <=> other.d
|
||||
when Float::INFINITY; return d <=> 1
|
||||
when -Float::INFINITY; return d <=> -1
|
||||
when Numeric; return d
|
||||
else
|
||||
begin
|
||||
|
|
|
@ -163,4 +163,16 @@ class TestDate < Test::Unit::TestCase
|
|||
assert_equal(1, d2 <=> d1)
|
||||
end
|
||||
|
||||
def test_infinity_comparison
|
||||
assert_equal(0, Float::INFINITY <=> Date::Infinity.new)
|
||||
assert_equal(0, Date::Infinity.new <=> Float::INFINITY)
|
||||
assert_equal(0, -Float::INFINITY <=> -Date::Infinity.new)
|
||||
assert_equal(0, -Date::Infinity.new <=> -Float::INFINITY)
|
||||
|
||||
assert_equal(1, Float::INFINITY <=> -Date::Infinity.new)
|
||||
assert_equal(1, Date::Infinity.new <=> -Float::INFINITY)
|
||||
|
||||
assert_equal(-1, -Float::INFINITY <=> Date::Infinity.new)
|
||||
assert_equal(-1, -Date::Infinity.new <=> Float::INFINITY)
|
||||
end
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче