diff options
author | Kenta Murata <mrkn@mrkn.jp> | 2020-01-17 10:47:20 +0900 |
---|---|---|
committer | Kenta Murata <mrkn@mrkn.jp> | 2020-01-17 10:57:51 +0900 |
commit | 5275d8bf4c43db9f057d24a26cf33ecd69f8b345 (patch) | |
tree | d77ff868dc4a32a0f8e8e5e56b3b03aca527bf15 /test/-ext- | |
parent | 47465ab1ccf48d2c905dbcf3b676e30b61cc41ca (diff) |
rb_rational_raw: convert num and den by to_int
Diffstat (limited to 'test/-ext-')
-rw-r--r-- | test/-ext-/rational/test_rat.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/-ext-/rational/test_rat.rb b/test/-ext-/rational/test_rat.rb index dbba00ca61..7683483e66 100644 --- a/test/-ext-/rational/test_rat.rb +++ b/test/-ext-/rational/test_rat.rb @@ -42,5 +42,29 @@ class TestRational < Test::Unit::TestCase rat = Rational.raw(1, -2) assert_equal(-1, rat.numerator) assert_equal(2, rat.denominator) + + assert_equal(1/2r, Rational.raw(1.0, 2.0)) + + assert_raise(TypeError) { Rational.raw("1", 2) } + assert_raise(TypeError) { Rational.raw(1, "2") } + + class << (o = Object.new) + def to_i; 42; end + end + + assert_raise(TypeError) { Rational.raw(o, 2) } + assert_raise(TypeError) { Rational.raw(1, o) } + + class << (o = Object.new) + def to_int; 42; end + end + + rat = Rational.raw(o, 2) + assert_equal(42, rat.numerator) + assert_equal(2, rat.denominator) + + rat = Rational.raw(2, o) + assert_equal(2, rat.numerator) + assert_equal(42, rat.denominator) end end |