diff options
| author | cremno <[email protected]> | 2014-05-05 00:06:17 +0200 |
|---|---|---|
| committer | cremno <[email protected]> | 2014-05-05 00:19:08 +0200 |
| commit | 964ce6e3272f18325bda7756420409600120a99e (patch) | |
| tree | 972387bec7c82729f4ba96ebb8ce1a70bcf45ed2 /test/t/integer.rb | |
| parent | 7a8a97cceeb98ced03b79306a41d5a35185ea92b (diff) | |
| download | mruby-964ce6e3272f18325bda7756420409600120a99e.tar.gz mruby-964ce6e3272f18325bda7756420409600120a99e.zip | |
test fixnum overflow for add, sub and mul
Diffstat (limited to 'test/t/integer.rb')
| -rw-r--r-- | test/t/integer.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/t/integer.rb b/test/t/integer.rb index 66dd61c0b..58a102943 100644 --- a/test/t/integer.rb +++ b/test/t/integer.rb @@ -18,6 +18,14 @@ assert('Integer#+', '15.2.8.3.1') do assert_raise(TypeError){ 0+nil } assert_raise(TypeError){ 1+nil } + + c = Mrbtest::FIXNUM_MAX + 1 + d = Mrbtest::FIXNUM_MAX.__send__(:+, 1) + e = Mrbtest::FIXNUM_MAX + 1.0 + assert_equal Float, c.class + assert_equal Float, d.class + assert_float e, c + assert_float e, d end assert('Integer#-', '15.2.8.3.2') do @@ -26,6 +34,14 @@ assert('Integer#-', '15.2.8.3.2') do assert_equal 1, a assert_equal 1.0, b + + c = Mrbtest::FIXNUM_MIN - 1 + d = Mrbtest::FIXNUM_MIN.__send__(:-, 1) + e = Mrbtest::FIXNUM_MIN - 1.0 + assert_equal Float, c.class + assert_equal Float, d.class + assert_float e, c + assert_float e, d end assert('Integer#*', '15.2.8.3.3') do @@ -37,6 +53,14 @@ assert('Integer#*', '15.2.8.3.3') do assert_raise(TypeError){ 0*nil } assert_raise(TypeError){ 1*nil } + + c = Mrbtest::FIXNUM_MAX * 2 + d = Mrbtest::FIXNUM_MAX.__send__(:*, 2) + e = Mrbtest::FIXNUM_MAX * 2.0 + assert_equal Float, c.class + assert_equal Float, d.class + assert_float e, c + assert_float e, d end assert('Integer#/', '15.2.8.3.4') do |
