Ignore:
Timestamp:
Jul 9, 2020, 8:51:43 AM (4 years ago)
Author:
coas-nagasima
Message:

mrubyを2.1.1に更新

Location:
EcnlProtoTool/trunk/mruby-2.1.1
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/mruby-2.1.1/test/t/float.rb

    r331 r439  
    11##
    22# Float ISO Test
     3
     4if Object.const_defined?(:Float)
    35
    46assert('Float', '15.2.9') do
     
    8183
    8284assert('Float#finite?', '15.2.9.3.9') do
    83   assert_true 3.123456789.finite?
    84   assert_false (1.0 / 0.0).finite?
     85  assert_predicate 3.123456789, :finite?
     86  assert_not_predicate 1.0 / 0.0, :finite?
    8587end
    8688
     
    138140  assert_raise(FloatDomainError){ nan.round }
    139141  assert_raise(FloatDomainError){ nan.round(-1) }
    140   assert_true(nan.round(1).nan?)
     142  assert_predicate(nan.round(1), :nan?)
    141143end
    142144
     
    177179
    178180assert('Float#nan?') do
    179   assert_true (0.0/0.0).nan?
    180   assert_false 0.0.nan?
    181   assert_false (1.0/0.0).nan?
    182   assert_false (-1.0/0.0).nan?
     181  assert_predicate(0.0/0.0, :nan?)
     182  assert_not_predicate(0.0, :nan?)
     183  assert_not_predicate(1.0/0.0, :nan?)
     184  assert_not_predicate(-1.0/0.0, :nan?)
    183185end
    184186
     
    204206  assert_equal(-1, -23.0 >> 128)
    205207end
     208
     209assert('Float#to_s') do
     210  uses_float = 4e38.infinite?  # enable MRB_USE_FLOAT?
     211
     212  assert_equal("Infinity", Float::INFINITY.to_s)
     213  assert_equal("-Infinity", (-Float::INFINITY).to_s)
     214  assert_equal("NaN", Float::NAN.to_s)
     215  assert_equal("0", 0.0.to_s)
     216  assert_equal("-0", -0.0.to_s)
     217  assert_equal("-3.25", -3.25.to_s)
     218  assert_equal("50", 50.0.to_s)
     219  assert_equal("0.0125", 0.0125.to_s)
     220  assert_equal("-0.0125", -0.0125.to_s)
     221  assert_equal("1.0e-10", 0.0000000001.to_s)
     222  assert_equal("-1.0e-10", -0.0000000001.to_s)
     223  assert_equal("1.0e+20", 1e20.to_s)
     224  assert_equal("-1.0e+20", -1e20.to_s)
     225  assert_equal("1.0e+16", 10000000000000000.0.to_s)
     226  assert_equal("-1.0e+16", -10000000000000000.0.to_s)
     227  assert_equal("100000", 100000.0.to_s)
     228  assert_equal("-100000", -100000.0.to_s)
     229  if uses_float
     230    assert_equal("1.0e+08", 100000000.0.to_s)
     231    assert_equal("-1.0e+08", -100000000.0.to_s)
     232    assert_equal("1.0e+07", 10000000.0.to_s)
     233    assert_equal("-1.0e+07", -10000000.0.to_s)
     234  else
     235    assert_equal("1.0e+15", 1000000000000000.0.to_s)
     236    assert_equal("-1.0e+15", -1000000000000000.0.to_s)
     237    assert_equal("100000000000000", 100000000000000.0.to_s)
     238    assert_equal("-100000000000000", -100000000000000.0.to_s)
     239  end
     240end
     241
     242assert('Float#eql?') do
     243  assert_operator(5.0, :eql?, 5.0)
     244  assert_not_operator(5.0, :eql?, 5)
     245  assert_not_operator(5.0, :eql?, "5.0")
     246end
     247
     248end # const_defined?(:Float)
Note: See TracChangeset for help on using the changeset viewer.