1 2assert('Comparable#<', '15.3.3.2.1') do 3 class Foo 4 include Comparable 5 def <=>(x) 6 x 7 end 8 end 9 assert_false(Foo.new < 0) 10 assert_false(Foo.new < 1) 11 assert_true(Foo.new < -1) 12 assert_raise(ArgumentError){ Foo.new < nil } 13end 14 15assert('Comparable#<=', '15.3.3.2.2') do 16 class Foo 17 include Comparable 18 def <=>(x) 19 x 20 end 21 end 22 assert_true(Foo.new <= 0) 23 assert_false(Foo.new <= 1) 24 assert_true(Foo.new <= -1) 25 assert_raise(ArgumentError){ Foo.new <= nil } 26end 27 28assert('Comparable#==', '15.3.3.2.3') do 29 class Foo 30 include Comparable 31 def <=>(x) 32 0 33 end 34 end 35 36 assert_true(Foo.new == Foo.new) 37end 38 39assert('Comparable#>', '15.3.3.2.4') do 40 class Foo 41 include Comparable 42 def <=>(x) 43 x 44 end 45 end 46 assert_false(Foo.new > 0) 47 assert_true(Foo.new > 1) 48 assert_false(Foo.new > -1) 49 assert_raise(ArgumentError){ Foo.new > nil } 50end 51 52assert('Comparable#>=', '15.3.3.2.5') do 53 class Foo 54 include Comparable 55 def <=>(x) 56 x 57 end 58 end 59 assert_true(Foo.new >= 0) 60 assert_true(Foo.new >= 1) 61 assert_false(Foo.new >= -1) 62 assert_raise(ArgumentError){ Foo.new >= nil } 63end 64 65assert('Comparable#between?', '15.3.3.2.6') do 66 class Foo 67 include Comparable 68 def <=>(x) 69 x 70 end 71 end 72 73 c = Foo.new 74 75 assert_false(c.between?(-1, 1)) 76 assert_false(c.between?(-1, -1)) 77 assert_false(c.between?( 1, 1)) 78 assert_true(c.between?( 1, -1)) 79 assert_true(c.between?(0, 0)) 80end 81