diff options
author | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-04-28 19:50:06 +0000 |
---|---|---|
committer | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-04-28 19:50:06 +0000 |
commit | 4fbb9aa3cb6c31ec128bfb31f59efa66d66adba4 (patch) | |
tree | 84a654b260261fe172f2584f60b3ba93e59f841d /spec/ruby/core/enumerator | |
parent | b864bd05bff2a61d55b08deb92e969f9fa55e07c (diff) | |
download | ruby-4fbb9aa3cb6c31ec128bfb31f59efa66d66adba4.tar.gz |
Update to ruby/spec@6f38a82
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/ruby/core/enumerator')
-rw-r--r-- | spec/ruby/core/enumerator/lazy/grep_v_spec.rb | 118 | ||||
-rw-r--r-- | spec/ruby/core/enumerator/lazy/uniq_spec.rb | 6 |
2 files changed, 61 insertions, 63 deletions
diff --git a/spec/ruby/core/enumerator/lazy/grep_v_spec.rb b/spec/ruby/core/enumerator/lazy/grep_v_spec.rb index 79f8760055..a0ec819505 100644 --- a/spec/ruby/core/enumerator/lazy/grep_v_spec.rb +++ b/spec/ruby/core/enumerator/lazy/grep_v_spec.rb @@ -1,86 +1,84 @@ require_relative '../../../spec_helper' require_relative 'fixtures/classes' -ruby_version_is "2.3" do - describe "Enumerator::Lazy#grep_v" do - before(:each) do - @yieldsmixed = EnumeratorLazySpecs::YieldsMixed.new.to_enum.lazy - @eventsmixed = EnumeratorLazySpecs::EventsMixed.new.to_enum.lazy - ScratchPad.record [] - end +describe "Enumerator::Lazy#grep_v" do + before(:each) do + @yieldsmixed = EnumeratorLazySpecs::YieldsMixed.new.to_enum.lazy + @eventsmixed = EnumeratorLazySpecs::EventsMixed.new.to_enum.lazy + ScratchPad.record [] + end - after(:each) do - ScratchPad.clear - end + after(:each) do + ScratchPad.clear + end + + it "requires an argument" do + Enumerator::Lazy.instance_method(:grep_v).arity.should == 1 + end + + it "returns a new instance of Enumerator::Lazy" do + ret = @yieldsmixed.grep_v(Object) {} + ret.should be_an_instance_of(Enumerator::Lazy) + ret.should_not equal(@yieldsmixed) - it "requires an argument" do - Enumerator::Lazy.instance_method(:grep_v).arity.should == 1 + ret = @yieldsmixed.grep_v(Object) + ret.should be_an_instance_of(Enumerator::Lazy) + ret.should_not equal(@yieldsmixed) + end + + it "sets #size to nil" do + Enumerator::Lazy.new(Object.new, 100) {}.grep_v(Object) {}.size.should == nil + Enumerator::Lazy.new(Object.new, 100) {}.grep_v(Object).size.should == nil + end + + describe "when the returned lazy enumerator is evaluated by Enumerable#first" do + it "stops after specified times when not given a block" do + (0..Float::INFINITY).lazy.grep_v(3..5).first(3).should == [0, 1, 2] + + @eventsmixed.grep_v(Symbol).first(1) + ScratchPad.recorded.should == [:before_yield] end - it "returns a new instance of Enumerator::Lazy" do - ret = @yieldsmixed.grep_v(Object) {} - ret.should be_an_instance_of(Enumerator::Lazy) - ret.should_not equal(@yieldsmixed) + it "stops after specified times when given a block" do + (0..Float::INFINITY).lazy.grep_v(4..8, &:succ).first(3).should == [1, 2, 3] - ret = @yieldsmixed.grep_v(Object) - ret.should be_an_instance_of(Enumerator::Lazy) - ret.should_not equal(@yieldsmixed) + @eventsmixed.grep_v(Symbol) {}.first(1) + ScratchPad.recorded.should == [:before_yield] end + end + + it "calls the block with a gathered array when yield with multiple arguments" do + yields = [] + @yieldsmixed.grep_v(Array) { |v| yields << v }.force + yields.should == EnumeratorLazySpecs::YieldsMixed.gathered_non_array_yields + @yieldsmixed.grep_v(Array).force.should == yields + end + + describe "on a nested Lazy" do it "sets #size to nil" do - Enumerator::Lazy.new(Object.new, 100) {}.grep_v(Object) {}.size.should == nil - Enumerator::Lazy.new(Object.new, 100) {}.grep_v(Object).size.should == nil + Enumerator::Lazy.new(Object.new, 100) {}.grep_v(Object).grep_v(Object) {}.size.should == nil + Enumerator::Lazy.new(Object.new, 100) {}.grep_v(Object).grep_v(Object).size.should == nil end describe "when the returned lazy enumerator is evaluated by Enumerable#first" do it "stops after specified times when not given a block" do - (0..Float::INFINITY).lazy.grep_v(3..5).first(3).should == [0, 1, 2] + (0..Float::INFINITY).lazy.grep_v(3..5).grep_v(6..10).first(3).should == [0, 1, 2] - @eventsmixed.grep_v(Symbol).first(1) + @eventsmixed.grep_v(Symbol).grep_v(String).first(1) ScratchPad.recorded.should == [:before_yield] end it "stops after specified times when given a block" do - (0..Float::INFINITY).lazy.grep_v(4..8, &:succ).first(3).should == [1, 2, 3] + (0..Float::INFINITY).lazy + .grep_v(1..2) { |n| n > 3 ? n : false } + .grep_v(false) { |n| n.even? ? n : false } + .first(3) + .should == [4, false, 6] - @eventsmixed.grep_v(Symbol) {}.first(1) + @eventsmixed.grep_v(Symbol) {}.grep_v(String) {}.first(1) ScratchPad.recorded.should == [:before_yield] end end - - it "calls the block with a gathered array when yield with multiple arguments" do - yields = [] - @yieldsmixed.grep_v(Array) { |v| yields << v }.force - yields.should == EnumeratorLazySpecs::YieldsMixed.gathered_non_array_yields - - @yieldsmixed.grep_v(Array).force.should == yields - end - - describe "on a nested Lazy" do - it "sets #size to nil" do - Enumerator::Lazy.new(Object.new, 100) {}.grep_v(Object).grep_v(Object) {}.size.should == nil - Enumerator::Lazy.new(Object.new, 100) {}.grep_v(Object).grep_v(Object).size.should == nil - end - - describe "when the returned lazy enumerator is evaluated by Enumerable#first" do - it "stops after specified times when not given a block" do - (0..Float::INFINITY).lazy.grep_v(3..5).grep_v(6..10).first(3).should == [0, 1, 2] - - @eventsmixed.grep_v(Symbol).grep_v(String).first(1) - ScratchPad.recorded.should == [:before_yield] - end - - it "stops after specified times when given a block" do - (0..Float::INFINITY).lazy - .grep_v(1..2) { |n| n > 3 ? n : false } - .grep_v(false) { |n| n.even? ? n : false } - .first(3) - .should == [4, false, 6] - - @eventsmixed.grep_v(Symbol) {}.grep_v(String) {}.first(1) - ScratchPad.recorded.should == [:before_yield] - end - end - end end end diff --git a/spec/ruby/core/enumerator/lazy/uniq_spec.rb b/spec/ruby/core/enumerator/lazy/uniq_spec.rb index 3c9acdc453..fea2bec637 100644 --- a/spec/ruby/core/enumerator/lazy/uniq_spec.rb +++ b/spec/ruby/core/enumerator/lazy/uniq_spec.rb @@ -13,7 +13,7 @@ ruby_version_is '2.4' do @lazy.force.should == [0, 1] end - ruby_bug "#14495", "2.4"..."2.5.1" do + ruby_bug "#14495", "2.4"..."2.5.2" do it 'return same value after rewind' do @lazy.force.should == [0, 1] @lazy.force.should == [0, 1] @@ -35,7 +35,7 @@ ruby_version_is '2.4' do @lazy.force.should == [0, 1] end - ruby_bug "#14495", "2.4"..."2.5.1" do + ruby_bug "#14495", "2.4"..."2.5.2" do it 'return same value after rewind' do @lazy.force.should == [0, 1] @lazy.force.should == [0, 1] @@ -60,7 +60,7 @@ ruby_version_is '2.4' do @lazy = enum.lazy end - ruby_bug "#14495", "2.4"..."2.5.1" do + ruby_bug "#14495", "2.4"..."2.5.2" do it 'return same value after rewind' do enum = @lazy.uniq { |_, label| label.downcase } enum.force.should == [[0, 'foo'], [2, 'bar']] |