mrkn
971a57004e
* ext/bigdecimal/bigdecimal.c (check_rounding_mode, BigDecimal_mode):
...
raise ArgumentError instead of TypeError passing invalid modes.
* test/bigdecimal/test_bigdecimal.rb (test_mode, test_round):
change against the above modifications.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-19 17:38:18 +00:00
mrkn
fb7fe14575
* ext/bigdecimal/bigdecimal.c (check_rounding_mode): added for
...
converting symbol to rounding mode number.
* ext/bigdecimal/bigdecimal.c (BigDecimal_mode, BigDecimal_round):
support to specify rounding mode by symbol.
* test/bigdecimal/test_bigdecimal.rb (test_mode, test_round):
add tests for avobe changes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-18 21:06:08 +00:00
mrkn
3cbda570c2
* ext/bigdecimal/bigdecimal.c: fix rounding algorithms for half-down
...
and half-even. This change is based on the patch created by Matthew
Willson, the reporter of this bug. [Bug #3803 ] [ruby-core:32136]
* test/bigdecimal/test_bigdecimal.rb: add tests for above changes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-18 20:19:38 +00:00
mrkn
a2bf9203e8
* ext/bigdecimal/bigdecimal.c (BigDecimal_save_exception_mode,
...
BigDecimal_save_rounding_mode, BigDecimal_save_limit): added.
* test/bigdecimal/test_bigdecimal.rb: added tests for the above
features.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-28 08:52:14 +00:00
mrkn
3dc6edf793
* ext/bigdecimal/bigdecimal.c (Init_bigdecimal, rmpd_set_thread_local_exception_mode, VpGetException, VpSetException): thread-local exception mode.
...
* ext/bigdecimal/bigdecimal.c (Init_bigdecimal, rmpd_set_thread_local_precision_limit, VpGetPrecLimit, VpSetPrecLimit): thread-local precision limit.
* ext/bigdecimal/bigdecimal.c (Init_bigdecimal, rmpd_set_thread_local_rounding_mode, VpGetRoundMode, VpSetRoundMode, VpException, VpInternalRound): thread-local rounding mode.
* ext/bigdecimal/bigdecimal.c (BigDecimal_mode, BigDecimal_round, VpIsRoundMode, VpGetRoundMode, VpSetRoundMode, VpActiveRound, VpMidRound, VpLeftRound), ext/bigdecimal/bigdecimal.h: use unsigned short for rounding mode.
* test/bigdecimal/test_bigdecimal.rb (test_mode): add test for setting rounding mode.
* test/bigdecimal/test_bigdecimal.rb (test_thread_local_mode): add test for setting mode thread-locally.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-26 00:14:18 +00:00
mrkn
af8cae1e7f
* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): to_f must underflow when the exponent is less than DBL_MIN_10_EXP - BASE_FIG.
...
* test/bigdecimal/test_bigdecimal.rb (test_to_f): added test for the above changes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-23 16:22:04 +00:00
mrkn
d86da0fcf1
* ext/bigdecimal/extconf.rb, ext/bigdecimal/bigdecimal.h (labs, llabs): support environments missing labs and llabs.
...
* ext/bigdecimal/bigdecimal.h (vabs): added.
* ext/bigdecimal/extconf.rb, ext/bigdecimal/bigdecimal.h, ext/bigdecimal/bigdecimal.c, test/bigdecimal/test_bigdecimal.rb (TestBigDecimal#test_new): replace U_LONG, S_LONG, S_INT, and U_INT with appropreate standard or ruby-provided types.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-14 15:22:43 +00:00
mrkn
1c3e07f0d6
* ext/bigdecimal/bigdecimal.c (Init_bigdecimal): add two new constants BigDecimal::INFINITY and BigDecimal::NAN.
...
* ext/bigdecimal/lib/bigdecimal/math.rb (BigMath.exp): modify the behaviors for infinity arguments as same as Math.exp.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-03 07:47:00 +00:00
nobu
64dee0063b
* test/bigdecimal/test_bigdecimal.rb (TestBigDecimal#test_gc):
...
reduced heavy test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-09 16:00:37 +00:00
nobu
c4546f190a
* test/bigdecimal/test_bigdecimal.rb (TestBigDecimal#test_gc):
...
fixed test subject.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-09 14:38:56 +00:00
nobu
66abf4ad68
* ext/bigdecimal/bigdecimal.c (VpAlloc): ensure buf does not get
...
collected. based on a patch masaya tarui at [ruby-dev:41213].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-08 02:07:43 +00:00
naruse
54476a6024
* ext/bigdecimal/bigdecimal.c (VpCtoV): fix to check overflow.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-06 19:28:12 +00:00
nobu
9803f4f55a
* 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
2010-04-26 01:55:51 +00:00
naruse
e41936441b
Surpress warnings.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-06 03:01:52 +00:00
mame
05d80e2fc6
* ext/bigdecimal/bigdecimal.c (VpCtoV): BigDecimal("0E200000000000")
...
was Infinity, not 0.
* test/bigdecimal/test_bigdecimal.rb: add a test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-26 12:52:49 +00:00
marcandre
c07e7d167d
* ext/bigdecimal/bigdecimal.c (BigDecimalCmp): Fix comparisons [ruby-core:26646]
...
* test/bigdecimal/test_bigdecimal.rb (class): Fix and improve tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25765 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-14 00:17:07 +00:00
nobu
d9bfa822ea
* ext/bigdecimal/bigdecimal.c (GetVpValue): support conversion from
...
Rational. [ruby-core:25697]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21 19:47:39 +00:00
kazu
3d923f01bf
* test/bigdecimal/test_bigdecimal.rb (TestBigDecimal#test_hash):
...
shut up warning. see [ruby-dev:37437]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-17 02:40:53 +00:00
matz
4d3f3af836
* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): bigdecimal
...
division (including modulo) should raise ZeroDivisionError as
integer division. [incompatible]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-27 17:20:08 +00:00
matz
0434b0f098
* ext/bigdecimal/bigdecimal.c (VpException): bigdecimal zero
...
division should raise FloatDomainError if mode
VP_EXCEPTION_ZERODIVIDE is set. [ruby-dev:37204]
* ext/bigdecimal/bigdecimal.c (BigDecimal_mode): should handle
VP_EXCEPTION_ZERODIVIDE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-26 14:04:58 +00:00
matz
a426373520
* ext/bigdecimal/bigdecimal.c (VpAlloc): avoid ALLOCA_N() to avoid
...
segmentation fault caused by (insanely) long decimal values.
[ruby-dev:37189] fix #794
* ext/bigdecimal/bigdecimal.c (BigDecimal_dump, BigDecimal_to_i,
BigDecimal_to_f, BigDecimal_to_s, BigDecimal_split,
BigDecimal_inspect): ditto.
* ext/bigdecimal/bigdecimal.c (VpToString): small performance
improvement.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-25 18:02:42 +00:00
matz
6b02097f79
* test/bigdecimal/test_bigdecimal.rb (TestBigDecimal#test_sqrt_bigdecimal):
...
test updated. a patch from TAKANO Mitsuhiro <takano32 at jus.or.jp> in
[ruby-dev:36736].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-17 09:17:11 +00:00
matz
2de01f01a7
* test/bigdecimal/test_bigdecimal.rb (test_sqrt_bigdecimal): test
...
updated. a patch from TAKANO Mitsuhiro <takano32 at jus.or.jp>
in [ruby-dev:36669].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-06 00:02:44 +00:00
matz
1eeb3e151e
* test/bigdecimal/test_bigdecimal.rb (test_sqrt_bigdecimal): wrong
...
precision specification. a patch from TAKANO Mitsuhiro
<takano32 at jus.or.jp> in [ruby-dev:36634].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-30 08:06:20 +00:00
nobu
61b43de755
* test/bigdecimal/test_bigdecimal.rb (test_inspect): fixed CPU bit
...
size dependent test. pointed out by TAKANO Mitsuhiro <takano32 AT
jus.or.jp>.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-26 10:01:50 +00:00
yugui
396650e0bd
* prec.c: removed. Precision will be redesigned and be back again.
...
c.f. [ruby-dev:36352].
* common.mk (COMMON_OBJS): removed prec.o.
* inits.c (rb_call_inits): removed Init_Precision.
* numeric.c (Init_Numeric): removed inclusion of Precision.
removed #induced_from from each class.
* rational.c: ditto.
* ext/bigdecimal/bigdecimal.c: ditto.
* lib/rdoc/knwon_classes.rb: removed the entry for Precision.
* test/ruby/test_prec.rb: removed.
* test/ruby/test_integer.rb: removed tests for Precision.
* test/ruby/test_fixnum.rb: ditto.
* test/ruby/test_float.rb: ditto.
* test/ruby/test_rational.rb: ditto.
* test/ruby/test_complex.rb: ditto.
* test/bigdecimal/test_bigdecimal.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-19 13:10:54 +00:00
mame
e040ff5530
* ext/bigdecimal/bigdecimal.c (VpCtoV): 1E1000...000 is interpreted as
...
Infinity. [ruby-dev:36159]
* ext/bigdecimal/bigdecimal.c (VpPower): Infinity ** 1 returns
Infinity instead of NaN. [ruby-dev:36159]
* test/bigdecimal/test_bigdecimal.rb: add tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-18 13:48:21 +00:00
mame
2fc415a166
* test/bigdecimal/test_bigdecimal.rb: add tests to achieve over 90%
...
test coverage of bigdecimal.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-17 17:22:15 +00:00