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