From 1b1ad9d5b1399c2442e99db382b575f380315050 Mon Sep 17 00:00:00 2001 From: gogotanaka Date: Thu, 26 Feb 2015 21:18:21 +0900 Subject: [PATCH 2/2] Add tests to test_math To: https://bugs.ruby-lang.org/ --- test/ruby/test_math.rb | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/test/ruby/test_math.rb b/test/ruby/test_math.rb index 5073166..83fbe12 100644 --- a/test/ruby/test_math.rb +++ b/test/ruby/test_math.rb @@ -42,6 +42,12 @@ class TestMath < Test::Unit::TestCase check(0.0, Math.cos(2 * Math::PI / 4)) check(-1.0, Math.cos(4 * Math::PI / 4)) check(0.0, Math.cos(6 * Math::PI / 4)) + check(0.5403023058681398, Math.cos(1)) + check(-0.7112665029764864, Math.cos(1 << 62)) + check(0.9289154176164999, Math.cos((2 ** 62)/(3 ** 40).to_r)) + check(0.9820680774815206, Math.cos((2 ** 61)/(3 ** 40).to_r)) + check(0.4194382061248139, Math.cos((2 ** 62)/(3 ** 39).to_r)) + check(0.8424482791616391, Math.cos((2 ** 61)/(3 ** 39).to_r)) end def test_sin @@ -314,9 +320,24 @@ class TestMath < Test::Unit::TestCase end end - check(Math.cos((1 << 62 << 1)._to_f), Math.cos(1 << 62)) - check(Math.log((1 << 62 << 1)._to_f), Math.log(1 << 62)) + check(Math.cos((1 << 62 << 1)._to_f), Math.cos(1 << 62)) + check(Math.log((1 << 62 << 1)._to_f), Math.log(1 << 62)) Bignum.class_eval { alias to_f _to_f } end + + def test_override_rational_to_f + Rational.class_eval do + alias _to_f to_f + def to_f + (self + 1)._to_f + end + end + + check(Math.cos((0r + 1)._to_f), Math.cos(0r)) + check(Math.exp((0r + 1)._to_f), Math.exp(0r)) + check(Math.log((0r + 1)._to_f), Math.log(0r)) + + Rational.class_eval { alias to_f _to_f } + end end -- gogotanaka