test/test_fmt.rb in nio-0.2.4 vs test/test_fmt.rb in nio-0.2.5
- old
+ new
@@ -5,11 +5,11 @@
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
-require File.dirname(__FILE__) + '/helper.rb'
+require File.expand_path(File.join(File.dirname(__FILE__),'helper.rb'))
require 'test/unit'
require 'flt/bigdecimal'
include Nio
require 'yaml'
@@ -71,10 +71,31 @@
assert_equal "123456789.25",123456789.25.nio_write
assert_equal "123456789.25",BigDecimal('123456789.25').nio_write
assert_equal "123456789.25",(Rational(123456789)+Rational(1,4)).nio_write
end
+ def test_optional_mode_prec_parameters
+ x = 0.1
+ assert_equal '0.1000000000', x.nio_write(Fmt.prec(10, :all_digits=>true))
+ assert_equal '1.000000000E-1', x.nio_write(Fmt.prec(10, :sci, :all_digits=>true))
+ assert_equal '0.1', x.nio_write(Fmt.prec(10, :all_digits=>false))
+ assert_equal '0.10000', x.nio_write(Fmt.prec(5).mode(:gen, :all_digits=>true))
+ assert_equal '1.0000E-1', x.nio_write(Fmt.prec(5).mode(:sci, :all_digits=>true))
+ end
+
+ def test_fmt_constructor
+ x = 0.1
+ assert_equal '0.10000000000000001', x.nio_write(Fmt[:all_digits=>true])
+ assert_equal '0.1', x.nio_write(Fmt(:all_digits=>false))
+ assert_equal '0.10000000000000001', x.nio_write(Fmt(:all_digits=>true))
+ assert_equal '0.1', x.nio_write(Fmt.prec(5)[:all_digits=>false])
+ assert_equal '0.10000', x.nio_write(Fmt.prec(5)[:all_digits=>true])
+ assert_equal '0,1', x.nio_write(Fmt[:comma])
+ assert_equal '0.10000000000000001', x.nio_write(Fmt[:all_digits=>true])
+ assert_equal '0,10000000000000001', x.nio_write(Fmt[:comma][:all_digits=>true])
+ end
+
def test_basic_fmt_float
assert_equal 2,Float::RADIX
assert_equal 53,Float::MANT_DIG
@@ -365,10 +386,10 @@
assert_equal 1.234567890123456, x_f
assert_equal BigDecimal(x_txt), x_d
assert_equal Fmt.convert(x_d,Float,:exact), x_f
assert_equal Fmt.convert(x_d,Float,:approx), x_f
- x_d = BigDecimal('355')/226
+ x_d = BigDecimal('355').div(226,20)
x_f = Float(355)/226
assert_equal Fmt.convert(x_d,Float,:exact), x_f
assert_equal Fmt.convert(x_d,Float,:approx), x_f
end