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