From 9803f4f55a9804a6ff96df10087039dc5c1d5020 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 26 Apr 2010 01:55:51 +0000 Subject: [PATCH] * test/bigdecimal/testbase.rb (teardown): should reset all modes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/bigdecimal/test_bigdecimal.rb | 11 ++--------- test/bigdecimal/test_bigmath.rb | 4 ++-- test/bigdecimal/testbase.rb | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+), 11 deletions(-) create mode 100644 test/bigdecimal/testbase.rb diff --git a/test/bigdecimal/test_bigdecimal.rb b/test/bigdecimal/test_bigdecimal.rb index 9d21588a95..536ec4874c 100644 --- a/test/bigdecimal/test_bigdecimal.rb +++ b/test/bigdecimal/test_bigdecimal.rb @@ -1,14 +1,7 @@ -require "test/unit" -require "bigdecimal" +require_relative "testbase" class TestBigDecimal < Test::Unit::TestCase - def setup - BigDecimal.mode(BigDecimal::EXCEPTION_ALL, true) - BigDecimal.mode(BigDecimal::EXCEPTION_UNDERFLOW, true) - BigDecimal.mode(BigDecimal::EXCEPTION_OVERFLOW, true) - BigDecimal.mode(BigDecimal::ROUND_MODE, BigDecimal::ROUND_HALF_UP) - BigDecimal.limit(0) - end + include TestBigDecimalBase def test_version assert_equal("1.0.1", BigDecimal.ver) diff --git a/test/bigdecimal/test_bigmath.rb b/test/bigdecimal/test_bigmath.rb index 2870664bcf..fbeb06221b 100644 --- a/test/bigdecimal/test_bigmath.rb +++ b/test/bigdecimal/test_bigmath.rb @@ -1,8 +1,8 @@ -require "test/unit" -require "bigdecimal" +require_relative "testbase" require "bigdecimal/math" class TestBigMath < Test::Unit::TestCase + include TestBigDecimalBase include BigMath N = 20 PINF = BigDecimal("+Infinity") diff --git a/test/bigdecimal/testbase.rb b/test/bigdecimal/testbase.rb new file mode 100644 index 0000000000..275b1b2b5d --- /dev/null +++ b/test/bigdecimal/testbase.rb @@ -0,0 +1,20 @@ +require "test/unit" +require "bigdecimal" + +module TestBigDecimalBase + def setup + @mode = BigDecimal.mode(BigDecimal::EXCEPTION_ALL) + BigDecimal.mode(BigDecimal::EXCEPTION_ALL, true) + BigDecimal.mode(BigDecimal::EXCEPTION_UNDERFLOW, true) + BigDecimal.mode(BigDecimal::EXCEPTION_OVERFLOW, true) + BigDecimal.mode(BigDecimal::ROUND_MODE, BigDecimal::ROUND_HALF_UP) + BigDecimal.limit(0) + end + + def teardown + [BigDecimal::EXCEPTION_INFINITY, BigDecimal::EXCEPTION_NaN, + BigDecimal::EXCEPTION_UNDERFLOW, BigDecimal::EXCEPTION_OVERFLOW].each do |mode| + BigDecimal.mode(mode, !(@mode & mode).zero?) + end + end +end