From 2f7175442fffecc1139312e9e1055ba37ba8527d Mon Sep 17 00:00:00 2001 From: KOBAYASHI Shuji Date: Tue, 17 Sep 2019 09:28:51 +0900 Subject: Fix `Fixnum#(to_s|inspect)` argument specs Before this patch: $ bin/mruby -e 'p 3.to_s(2)' trace (most recent call last): [0] -e:1 -e:1: 'to_s': wrong number of arguments (1 for 0) (ArgumentError) After this patch: $ bin/mruby -e 'p 3.to_s(2)' "11" --- test/t/integer.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'test/t/integer.rb') diff --git a/test/t/integer.rb b/test/t/integer.rb index 4ab49eb0a..bd7efa855 100644 --- a/test/t/integer.rb +++ b/test/t/integer.rb @@ -232,8 +232,16 @@ assert('Integer#to_i', '15.2.8.3.24') do end assert('Integer#to_s', '15.2.8.3.25') do - assert_equal '1', 1.to_s - assert_equal("-1", -1.to_s) + assert_equal "1", 1.to_s + assert_equal "-1", -1.to_s + assert_equal "1010", 10.to_s(2) + assert_equal "a", 10.to_s(36) + assert_equal "-a", -10.to_s(36) + assert_equal "30071", 12345.to_s(8) + assert_raise(ArgumentError) { 10.to_s(-1) } + assert_raise(ArgumentError) { 10.to_s(0) } + assert_raise(ArgumentError) { 10.to_s(1) } + assert_raise(ArgumentError) { 10.to_s(37) } end assert('Integer#truncate', '15.2.8.3.26') do -- cgit v1.2.3 From 549317a36b239cbe51a75b4cdb4abd49298773e8 Mon Sep 17 00:00:00 2001 From: KOBAYASHI Shuji Date: Mon, 23 Sep 2019 21:59:35 +0900 Subject: Fix `Fixnum` overflow test in `Integer#<<` test - Skip when `MRB_WITHOUT_FLOAT` is defined. - Make `Fixnum` overflow even when `MRB_INT64` is defined. --- test/t/integer.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'test/t/integer.rb') diff --git a/test/t/integer.rb b/test/t/integer.rb index bd7efa855..f9c44a64f 100644 --- a/test/t/integer.rb +++ b/test/t/integer.rb @@ -154,11 +154,11 @@ assert('Integer#<<', '15.2.8.3.12') do # Left Shift by a negative is Right Shift assert_equal 23, 46 << -1 - # Left Shift by 31 is bitShift overflow to SignedInt - assert_equal 2147483648, 1 << 31 + skip unless Object.const_defined?(:Float) - # -3 Left Shift by 30 is bitShift overflow to SignedInt - assert_equal(-3221225472, -3 << 30) + # Overflow to Fixnum + assert_float 9223372036854775808.0, 1 << 63 + assert_float(-13835058055282163712.0, -3 << 62) end assert('Integer#>>', '15.2.8.3.13') do -- cgit v1.2.3