* test/ruby/test_integer.rb (MimicInteger, CoercionToInt): extract
  common parts.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-11-01 13:10:16 +00:00
Родитель 69fc155c77
Коммит 544e59ec7d
1 изменённых файлов: 13 добавлений и 21 удалений

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

@ -274,39 +274,31 @@ class TestInteger < Test::Unit::TestCase
assert_int_equal(-1111_1111_1111_1111_1111_1111_1111_1110, (-1111_1111_1111_1111_1111_1111_1111_1111).truncate(-1))
end
def test_bitwise_and_with_integer_mimic_object
def (obj = Object.new).to_int
10
MimicInteger = Struct.new(:to_int)
module CoercionToInt
def coerce(other)
[other, to_int]
end
assert_raise(TypeError, '[ruby-core:39491]') { 3 & obj }
end
def obj.coerce(other)
[other, 10]
end
def test_bitwise_and_with_integer_mimic_object
obj = MimicInteger.new(10)
assert_raise(TypeError, '[ruby-core:39491]') { 3 & obj }
obj.extend(CoercionToInt)
assert_equal(3 & 10, 3 & obj)
end
def test_bitwise_or_with_integer_mimic_object
def (obj = Object.new).to_int
10
end
obj = MimicInteger.new(10)
assert_raise(TypeError, '[ruby-core:39491]') { 3 | obj }
def obj.coerce(other)
[other, 10]
end
obj.extend(CoercionToInt)
assert_equal(3 | 10, 3 | obj)
end
def test_bitwise_xor_with_integer_mimic_object
def (obj = Object.new).to_int
10
end
obj = MimicInteger.new(10)
assert_raise(TypeError, '[ruby-core:39491]') { 3 ^ obj }
def obj.coerce(other)
[other, 10]
end
obj.extend(CoercionToInt)
assert_equal(3 ^ 10, 3 ^ obj)
end