summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2024-08-23 14:26:46 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2026-05-11 12:24:02 +0900
commite08ec2b3882efc7f65f9834fa3bd9b63c10988a9 (patch)
treef6427739c047ff499ac8537b08f3b2cedb8fcce2
parent7dc93cb1679c9834a8da1caf5dfff3234b6abdc4 (diff)
Split `Rational_Test#test_conv`
-rw-r--r--test/ruby/test_rational.rb33
1 files changed, 23 insertions, 10 deletions
diff --git a/test/ruby/test_rational.rb b/test/ruby/test_rational.rb
index e0edbde463..e75e569106 100644
--- a/test/ruby/test_rational.rb
+++ b/test/ruby/test_rational.rb
@@ -65,7 +65,7 @@ class Rational_Test < Test::Unit::TestCase
assert_instance_of(String, c.to_s)
end
- def test_conv
+ def test_conv_integer
c = Rational(0,1)
assert_equal(Rational(0,1), c)
@@ -94,6 +94,11 @@ class Rational_Test < Test::Unit::TestCase
c = Rational(Rational(1,2),Rational(1,2))
assert_equal(Rational(1), c)
+ assert_equal(Rational(3),Rational(3))
+ assert_equal(Rational(1),Rational(3,3))
+ end
+
+ def test_conv_complex
c = Rational(Complex(1,2),2)
assert_equal(Complex(Rational(1,2),1), c)
@@ -102,11 +107,21 @@ class Rational_Test < Test::Unit::TestCase
c = Rational(Complex(1,2),Complex(1,2))
assert_equal(Rational(1), c)
+ end
- assert_equal(Rational(3),Rational(3))
- assert_equal(Rational(1),Rational(3,3))
+ def test_conv_float
assert_equal(3.3.to_r,Rational(3.3))
assert_equal(1,Rational(3.3,3.3))
+
+ if (0.0/0).nan?
+ assert_raise(FloatDomainError){Rational(0.0/0)}
+ end
+ if (1.0/0).infinite?
+ assert_raise(FloatDomainError){Rational(1.0/0)}
+ end
+ end
+
+ def test_conv_string
assert_equal(Rational(3),Rational('3'))
assert_equal(Rational(1),Rational('3.0','3.0'))
assert_equal(Rational(1),Rational('3/3','3/3'))
@@ -115,6 +130,9 @@ class Rational_Test < Test::Unit::TestCase
assert_equal(Rational(111, 10), Rational('1.11e1'))
assert_equal(Rational(111, 100), Rational('1.11e0'))
assert_equal(Rational(111, 1000), Rational('1.11e-1'))
+ end
+
+ def test_conv_error
assert_raise(TypeError){Rational(nil)}
assert_raise(ArgumentError){Rational('')}
@@ -131,7 +149,9 @@ class Rational_Test < Test::Unit::TestCase
assert_raise(TypeError){Rational(Object.new)}
assert_raise(TypeError){Rational(Object.new, Object.new)}
assert_raise(TypeError){Rational(1, Object.new)}
+ end
+ def test_conv_coerce
bug12485 = '[ruby-core:75995] [Bug #12485]'
o = Object.new
def o.to_int; 1; end
@@ -163,13 +183,6 @@ class Rational_Test < Test::Unit::TestCase
assert_raise(ArgumentError){Rational()}
assert_raise(ArgumentError){Rational(1,2,3)}
- if (0.0/0).nan?
- assert_raise(FloatDomainError){Rational(0.0/0)}
- end
- if (1.0/0).infinite?
- assert_raise(FloatDomainError){Rational(1.0/0)}
- end
-
bug16518 = "[ruby-core:96942] [Bug #16518]"
cls = Class.new(Numeric) do
def /(y); 42; end