From c8d27afcd6b5cee8cc0d5aac1f67e81fdc2971ac Mon Sep 17 00:00:00 2001 From: mame Date: Thu, 24 Apr 2008 13:38:01 +0000 Subject: * test/ruby/test_comparable.rb: new tests for Comparable, to achieve 100% test coverage of compar.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_comparable.rb | 66 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 test/ruby/test_comparable.rb (limited to 'test/ruby/test_comparable.rb') diff --git a/test/ruby/test_comparable.rb b/test/ruby/test_comparable.rb new file mode 100644 index 0000000000..e558b190f0 --- /dev/null +++ b/test/ruby/test_comparable.rb @@ -0,0 +1,66 @@ +require 'test/unit' + +class TestComparable < Test::Unit::TestCase + def setup + @o = Object.new + @o.extend(Comparable) + end + + def test_equal + def @o.<=>(x); 0; end + assert_equal(true, @o == nil) + def @o.<=>(x); 1; end + assert_equal(false, @o == nil) + def @o.<=>(x); raise; end + assert_equal(false, @o == nil) + end + + def test_gt + def @o.<=>(x); 1; end + assert_equal(true, @o > nil) + def @o.<=>(x); 0; end + assert_equal(false, @o > nil) + def @o.<=>(x); -1; end + assert_equal(false, @o > nil) + end + + def test_ge + def @o.<=>(x); 1; end + assert_equal(true, @o >= nil) + def @o.<=>(x); 0; end + assert_equal(true, @o >= nil) + def @o.<=>(x); -1; end + assert_equal(false, @o >= nil) + end + + def test_lt + def @o.<=>(x); 1; end + assert_equal(false, @o < nil) + def @o.<=>(x); 0; end + assert_equal(false, @o < nil) + def @o.<=>(x); -1; end + assert_equal(true, @o < nil) + end + + def test_le + def @o.<=>(x); 1; end + assert_equal(false, @o <= nil) + def @o.<=>(x); 0; end + assert_equal(true, @o <= nil) + def @o.<=>(x); -1; end + assert_equal(true, @o <= nil) + end + + def test_between + def @o.<=>(x); 0 <=> x end + assert_equal(false, @o.between?(1, 2)) + assert_equal(false, @o.between?(-2, -1)) + assert_equal(true, @o.between?(-1, 1)) + assert_equal(true, @o.between?(0, 0)) + end + + def test_err + assert_raise(ArgumentError) { 1.0 < nil } + assert_raise(ArgumentError) { 1.0 < Object.new } + end +end -- cgit v1.2.3