diff options
author | mrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-01-24 05:30:42 +0000 |
---|---|---|
committer | mrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-01-24 05:30:42 +0000 |
commit | 161ece479598629f4ace4fa23bfea7bc1331a8a0 (patch) | |
tree | a1a53636ef96bae6dc16fef9ec3ff0e3559bb3d6 /test/ruby/test_numeric.rb | |
parent | c56f61161a7baefb3d1ed3f815e5dc544b3accd6 (diff) | |
download | ruby-161ece479598629f4ace4fa23bfea7bc1331a8a0.tar.gz |
numeric.c: Fix negative step with float components
* numeric.c (ruby_float_step): fix negative step with float components.
* test/ruby/test_numeric.c (test_step_bug15537): add tests.
* test/ruby/test_range.c (test_step_bug15537): add tests.
[Bug #15537] [ruby-core:91101]
From: shuujii (Shuji KOBAYASHI) <shuujii@gmail.com>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_numeric.rb')
-rw-r--r-- | test/ruby/test_numeric.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/ruby/test_numeric.rb b/test/ruby/test_numeric.rb index e48c3448e8..f48bce5411 100644 --- a/test/ruby/test_numeric.rb +++ b/test/ruby/test_numeric.rb @@ -339,6 +339,20 @@ class TestNumeric < Test::Unit::TestCase assert_step [bignum]*4, [bignum, by: 0, to: 0], inf: true end + def test_step_bug15537 + assert_step [10.0, 8.0, 6.0, 4.0, 2.0], [10.0, 1, -2] + assert_step [10.0, 8.0, 6.0, 4.0, 2.0], [10.0, to: 1, by: -2] + assert_step [10.0, 8.0, 6.0, 4.0, 2.0], [10.0, 1, -2] + assert_step [10.0, 8.0, 6.0, 4.0, 2.0], [10, to: 1.0, by: -2] + assert_step [10.0, 8.0, 6.0, 4.0, 2.0], [10, 1.0, -2] + + assert_step [10.0, 9.0, 8.0, 7.0], [10, by: -1.0], inf: true + assert_step [10.0, 9.0, 8.0, 7.0], [10, by: -1.0, to: nil], inf: true + assert_step [10.0, 9.0, 8.0, 7.0], [10, nil, -1.0], inf: true + assert_step [10.0, 9.0, 8.0, 7.0], [10.0, by: -1], inf: true + assert_step [10.0, 9.0, 8.0, 7.0], [10.0, nil, -1], inf: true + end + def test_num2long assert_raise(TypeError) { 1 & nil } assert_raise(TypeError) { 1 & 1.0 } |