зеркало из https://github.com/github/ruby.git
Ensure that the comparison succeeded [Bug #17205]
This commit is contained in:
Родитель
4b41ee154f
Коммит
89ca842dcc
|
@ -1518,7 +1518,9 @@ flo_cmp(VALUE x, VALUE y)
|
||||||
MJIT_FUNC_EXPORTED int
|
MJIT_FUNC_EXPORTED int
|
||||||
rb_float_cmp(VALUE x, VALUE y)
|
rb_float_cmp(VALUE x, VALUE y)
|
||||||
{
|
{
|
||||||
return NUM2INT(flo_cmp(x, y));
|
VALUE c = flo_cmp(x, y);
|
||||||
|
if (NIL_P(c)) rb_cmperr(x, y);
|
||||||
|
return NUM2INT(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1648,6 +1648,13 @@ class TestArray < Test::Unit::TestCase
|
||||||
TEST
|
TEST
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_sort_uncomparable
|
||||||
|
assert_raise(ArgumentError) {[1, Float::NAN].sort}
|
||||||
|
assert_raise(ArgumentError) {[1.0, Float::NAN].sort}
|
||||||
|
assert_raise(ArgumentError) {[Float::NAN, 1].sort}
|
||||||
|
assert_raise(ArgumentError) {[Float::NAN, 1.0].sort}
|
||||||
|
end
|
||||||
|
|
||||||
def test_to_a
|
def test_to_a
|
||||||
a = @cls[ 1, 2, 3 ]
|
a = @cls[ 1, 2, 3 ]
|
||||||
a_id = a.__id__
|
a_id = a.__id__
|
||||||
|
@ -1768,6 +1775,13 @@ class TestArray < Test::Unit::TestCase
|
||||||
assert_same(obj, [obj, 1.0].min)
|
assert_same(obj, [obj, 1.0].min)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_min_uncomparable
|
||||||
|
assert_raise(ArgumentError) {[1, Float::NAN].min}
|
||||||
|
assert_raise(ArgumentError) {[1.0, Float::NAN].min}
|
||||||
|
assert_raise(ArgumentError) {[Float::NAN, 1].min}
|
||||||
|
assert_raise(ArgumentError) {[Float::NAN, 1.0].min}
|
||||||
|
end
|
||||||
|
|
||||||
def test_max
|
def test_max
|
||||||
assert_equal(1, [1].max)
|
assert_equal(1, [1].max)
|
||||||
assert_equal(3, [1, 2, 3, 1, 2].max)
|
assert_equal(3, [1, 2, 3, 1, 2].max)
|
||||||
|
@ -1791,6 +1805,13 @@ class TestArray < Test::Unit::TestCase
|
||||||
assert_same(obj, [obj, 1.0].max)
|
assert_same(obj, [obj, 1.0].max)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_max_uncomparable
|
||||||
|
assert_raise(ArgumentError) {[1, Float::NAN].max}
|
||||||
|
assert_raise(ArgumentError) {[1.0, Float::NAN].max}
|
||||||
|
assert_raise(ArgumentError) {[Float::NAN, 1].max}
|
||||||
|
assert_raise(ArgumentError) {[Float::NAN, 1.0].max}
|
||||||
|
end
|
||||||
|
|
||||||
def test_minmax
|
def test_minmax
|
||||||
assert_equal([3, 3], [3].minmax)
|
assert_equal([3, 3], [3].minmax)
|
||||||
assert_equal([1, 3], [1, 2, 3, 1, 2].minmax)
|
assert_equal([1, 3], [1, 2, 3, 1, 2].minmax)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче