mirror of
https://github.com/ruby/ruby.git
synced 2025-08-25 22:14:37 +02:00
enumerator.c: Introduce Enumerator::ArithmeticSequence
This commit introduces new core class Enumerator::ArithmeticSequence. Enumerator::ArithmeticSequence is a subclass of Enumerator, and represents a number generator of an arithmetic sequence. After this commit, Numeric#step and Range#step without blocks returned an ArithmeticSequence object instead of an Enumerator. This class introduces the following incompatibilities: - You can create a zero-step ArithmeticSequence, and its size is not ArgumentError, but Infinity. - You can create a negative-step ArithmeticSequence from a range. [ruby-core:82816] [Feature #13904] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
1777e39c2a
commit
f15069338d
11 changed files with 883 additions and 47 deletions
|
@ -632,7 +632,7 @@ class TestEnumerator < Test::Unit::TestCase
|
|||
assert_equal 4, (1..10).step(3).size
|
||||
assert_equal 3, (1...10).step(3).size
|
||||
assert_equal Float::INFINITY, (42..Float::INFINITY).step(2).size
|
||||
assert_raise(ArgumentError){ (1..10).step(-2).size }
|
||||
assert_equal 0, (1..10).step(-2).size
|
||||
end
|
||||
|
||||
def test_size_for_downup_to
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue