diff options
Diffstat (limited to 'spec/ruby/core/enumerator/produce_spec.rb')
-rw-r--r-- | spec/ruby/core/enumerator/produce_spec.rb | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/spec/ruby/core/enumerator/produce_spec.rb b/spec/ruby/core/enumerator/produce_spec.rb index f6f1dcd429..c69fb49303 100644 --- a/spec/ruby/core/enumerator/produce_spec.rb +++ b/spec/ruby/core/enumerator/produce_spec.rb @@ -1,36 +1,34 @@ require_relative '../../spec_helper' -ruby_version_is "2.7" do - describe "Enumerator.produce" do - it "creates an infinite enumerator" do - enum = Enumerator.produce(0) { |prev| prev + 1 } - enum.take(5).should == [0, 1, 2, 3, 4] - end - - it "terminates iteration when block raises StopIteration exception" do - enum = Enumerator.produce(0) do | prev| - raise StopIteration if prev >= 2 - prev + 1 - end +describe "Enumerator.produce" do + it "creates an infinite enumerator" do + enum = Enumerator.produce(0) { |prev| prev + 1 } + enum.take(5).should == [0, 1, 2, 3, 4] + end - enum.to_a.should == [0, 1, 2] + it "terminates iteration when block raises StopIteration exception" do + enum = Enumerator.produce(0) do | prev| + raise StopIteration if prev >= 2 + prev + 1 end - context "when initial value skipped" do - it "uses nil instead" do - ScratchPad.record [] - enum = Enumerator.produce { |prev| ScratchPad << prev; (prev || 0) + 1 } + enum.to_a.should == [0, 1, 2] + end + + context "when initial value skipped" do + it "uses nil instead" do + ScratchPad.record [] + enum = Enumerator.produce { |prev| ScratchPad << prev; (prev || 0) + 1 } - enum.take(3).should == [1, 2, 3] - ScratchPad.recorded.should == [nil, 1, 2] - end + enum.take(3).should == [1, 2, 3] + ScratchPad.recorded.should == [nil, 1, 2] + end - it "starts enumerable from result of first block call" do - array = "a\nb\nc\nd".lines - lines = Enumerator.produce { array.shift }.take_while { |s| s } + it "starts enumerable from result of first block call" do + array = "a\nb\nc\nd".lines + lines = Enumerator.produce { array.shift }.take_while { |s| s } - lines.should == ["a\n", "b\n", "c\n", "d"] - end + lines.should == ["a\n", "b\n", "c\n", "d"] end end end |