зеркало из https://github.com/github/ruby.git
test_integer.rb: common parts
* 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:
Родитель
69fc155c77
Коммит
544e59ec7d
|
@ -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
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче