OSDN Git Service

ruby-1.9.1-rc1
[splhack/AndroidRuby.git] / lib / ruby-1.9.1-rc1 / test / ruby / test_comparable.rb
1 require 'test/unit'
2
3 class TestComparable < Test::Unit::TestCase
4   def setup
5     @o = Object.new
6     @o.extend(Comparable)
7   end
8
9   def test_equal
10     def @o.<=>(x); 0; end
11     assert_equal(true, @o == nil)
12     def @o.<=>(x); 1; end
13     assert_equal(false, @o == nil)
14     def @o.<=>(x); raise; end
15     assert_equal(false, @o == nil)
16   end
17
18   def test_gt
19     def @o.<=>(x); 1; end
20     assert_equal(true, @o > nil)
21     def @o.<=>(x); 0; end
22     assert_equal(false, @o > nil)
23     def @o.<=>(x); -1; end
24     assert_equal(false, @o > nil)
25   end
26
27   def test_ge
28     def @o.<=>(x); 1; end
29     assert_equal(true, @o >= nil)
30     def @o.<=>(x); 0; end
31     assert_equal(true, @o >= nil)
32     def @o.<=>(x); -1; end
33     assert_equal(false, @o >= nil)
34   end
35
36   def test_lt
37     def @o.<=>(x); 1; end
38     assert_equal(false, @o < nil)
39     def @o.<=>(x); 0; end
40     assert_equal(false, @o < nil)
41     def @o.<=>(x); -1; end
42     assert_equal(true, @o < nil)
43   end
44
45   def test_le
46     def @o.<=>(x); 1; end
47     assert_equal(false, @o <= nil)
48     def @o.<=>(x); 0; end
49     assert_equal(true, @o <= nil)
50     def @o.<=>(x); -1; end
51     assert_equal(true, @o <= nil)
52   end
53
54   def test_between
55     def @o.<=>(x); 0 <=> x end
56     assert_equal(false, @o.between?(1, 2))
57     assert_equal(false, @o.between?(-2, -1))
58     assert_equal(true, @o.between?(-1, 1))
59     assert_equal(true, @o.between?(0, 0))
60   end
61
62   def test_err
63     assert_raise(ArgumentError) { 1.0 < nil }
64     assert_raise(ArgumentError) { 1.0 < Object.new }
65   end
66 end