dohruby 0.1.13 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -39,3 +39,5 @@
39
39
  * patch accidental instance level module method to class level (time_block)
40
40
  *0.1.13* (April 19th, 2008)
41
41
  * add new random_array_element for nested array cases
42
+ *0.1.14* (May 10th, 2008)
43
+ * add BigDecimal.to_dig
@@ -5,4 +5,15 @@ class BigDecimal
5
5
  def to_s(format = 'F')
6
6
  _doh_original_to_s(format)
7
7
  end
8
+
9
+ def to_dig(digits_after_decimal = 2)
10
+ raise ArgumentError.new("digits_after_decimal must be > 0") unless digits_after_decimal > 0
11
+ return '0.' + ('0' * digits_after_decimal) if nan? || infinite?
12
+
13
+ retval = truncate(digits_after_decimal).to_s
14
+ digits_needed = retval.index('.') + digits_after_decimal + 1 - retval.size
15
+ retval += ('0' * digits_needed) if digits_needed > 0
16
+
17
+ retval
18
+ end
8
19
  end
@@ -0,0 +1,31 @@
1
+ require 'test/unit'
2
+ require 'doh/core/bigdecimal'
3
+
4
+ module Doh
5
+
6
+ class TC_core_bigdecimal < Test::Unit::TestCase
7
+ def test_to_dig_valid
8
+ assert_equal('0.00', BigDecimal('0').to_dig)
9
+ assert_equal('1.00', BigDecimal('1').to_dig)
10
+ assert_equal('1.10', BigDecimal('1.1').to_dig)
11
+ assert_equal('1.11', BigDecimal('1.11134').to_dig)
12
+ assert_equal('1.111', BigDecimal('1.1113456').to_dig(3))
13
+ end
14
+
15
+ def test_to_dig_errors
16
+ assert_raise(ArgumentError) { BigDecimal('1').to_dig(-1) }
17
+ assert_raise(ArgumentError) { BigDecimal('1').to_dig(0) }
18
+ assert_equal('0.00', BigDecimal('NaN').to_dig)
19
+ assert_equal('0.00', BigDecimal('Infinity').to_dig)
20
+ assert_equal('0.00', BigDecimal('blah').to_dig)
21
+ end
22
+
23
+ def test_to_dig_doesnt_modify
24
+ bd = BigDecimal('1.11134')
25
+ assert_equal('1.11134', bd.to_s)
26
+ assert_equal('1.11', bd.to_dig)
27
+ assert_equal('1.11134', bd.to_s)
28
+ end
29
+ end
30
+
31
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dohruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Makani & Kem Mason
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-04-19 00:00:00 -06:00
12
+ date: 2008-05-10 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -89,6 +89,7 @@ files:
89
89
  - lib/doh/util/unit_test_logging.rb
90
90
  - lib/doh.rb
91
91
  - test/core
92
+ - test/core/tc_bigdecimal.rb
92
93
  - test/core/tc_string.rb
93
94
  - test/logger
94
95
  - test/logger/sample.rb
@@ -134,6 +135,7 @@ signing_key:
134
135
  specification_version: 2
135
136
  summary: DohRuby's purpose is to make your life as a developer easier & make you more efficient in your programming.
136
137
  test_files:
138
+ - test/core/tc_bigdecimal.rb
137
139
  - test/core/tc_string.rb
138
140
  - test/logger/sample.rb
139
141
  - test/logger/tc_acceptor.rb