From c8d27afcd6b5cee8cc0d5aac1f67e81fdc2971ac Mon Sep 17 00:00:00 2001 From: mame Date: Thu, 24 Apr 2008 13:38:01 +0000 Subject: [PATCH] * 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 --- ChangeLog | 5 +++ test/ruby/test_comparable.rb | 66 ++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 test/ruby/test_comparable.rb diff --git a/ChangeLog b/ChangeLog index 07815672e7..8981e88cc6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Apr 24 22:34:52 2008 Yusuke Endoh + + * test/ruby/test_comparable.rb: new tests for Comparable, to achieve + 100% test coverage of compar.c. + Thu Apr 24 17:19:01 2008 Yukihiro Matsumoto * ruby.c (process_options): set safe_level before loading script. 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