summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorksss <[email protected]>2014-03-21 11:58:47 +0900
committerksss <[email protected]>2014-03-21 11:58:47 +0900
commit72fe19225900d795a501755f4b492486e1bcb726 (patch)
tree1ef7d4abb8b08a9687de5c2dfc90226720382114 /test
parent2c44f96e78832dd42e35a9cae6e90dccaf5c2178 (diff)
downloadmruby-72fe19225900d795a501755f4b492486e1bcb726.tar.gz
mruby-72fe19225900d795a501755f4b492486e1bcb726.zip
Fix behavior of Comparable methods
when <=> return nil
Diffstat (limited to 'test')
-rw-r--r--test/t/comparable.rb32
1 files changed, 20 insertions, 12 deletions
diff --git a/test/t/comparable.rb b/test/t/comparable.rb
index b5718d2d2..2ee28de7b 100644
--- a/test/t/comparable.rb
+++ b/test/t/comparable.rb
@@ -3,22 +3,26 @@ assert('Comparable#<', '15.3.3.2.1') do
class Foo
include Comparable
def <=>(x)
- 0
+ x
end
end
-
- assert_false(Foo.new < Foo.new)
+ assert_false(Foo.new < 0)
+ assert_false(Foo.new < 1)
+ assert_true(Foo.new < -1)
+ assert_raise(ArgumentError){ Foo.new < nil }
end
assert('Comparable#<=', '15.3.3.2.2') do
class Foo
include Comparable
def <=>(x)
- 0
+ x
end
end
-
- assert_true(Foo.new <= Foo.new)
+ assert_true(Foo.new <= 0)
+ assert_false(Foo.new <= 1)
+ assert_true(Foo.new <= -1)
+ assert_raise(ArgumentError){ Foo.new <= nil }
end
assert('Comparable#==', '15.3.3.2.3') do
@@ -36,22 +40,26 @@ assert('Comparable#>', '15.3.3.2.4') do
class Foo
include Comparable
def <=>(x)
- 0
+ x
end
end
-
- assert_false(Foo.new > Foo.new)
+ assert_false(Foo.new > 0)
+ assert_true(Foo.new > 1)
+ assert_false(Foo.new > -1)
+ assert_raise(ArgumentError){ Foo.new > nil }
end
assert('Comparable#>=', '15.3.3.2.5') do
class Foo
include Comparable
def <=>(x)
- 0
+ x
end
end
-
- assert_true(Foo.new >= Foo.new)
+ assert_true(Foo.new >= 0)
+ assert_true(Foo.new >= 1)
+ assert_false(Foo.new >= -1)
+ assert_raise(ArgumentError){ Foo.new >= nil }
end
assert('Comparable#between?', '15.3.3.2.6') do