diff options
Diffstat (limited to 'spec/ruby/shared/enumerator')
| -rw-r--r-- | spec/ruby/shared/enumerator/enum_for.rb | 57 | ||||
| -rw-r--r-- | spec/ruby/shared/enumerator/with_index.rb | 33 | ||||
| -rw-r--r-- | spec/ruby/shared/enumerator/with_object.rb | 42 |
3 files changed, 0 insertions, 132 deletions
diff --git a/spec/ruby/shared/enumerator/enum_for.rb b/spec/ruby/shared/enumerator/enum_for.rb deleted file mode 100644 index a67a76c461..0000000000 --- a/spec/ruby/shared/enumerator/enum_for.rb +++ /dev/null @@ -1,57 +0,0 @@ -describe :enum_for, shared: true do - it "is defined in Kernel" do - Kernel.method_defined?(@method).should be_true - end - - it "returns a new enumerator" do - "abc".send(@method).should be_an_instance_of(Enumerator) - end - - it "defaults the first argument to :each" do - enum = [1,2].send(@method) - enum.map { |v| v }.should == [1,2].each { |v| v } - end - - it "sets regexp matches in the caller" do - "wawa".send(@method, :scan, /./).map {|o| $& }.should == ["w", "a", "w", "a"] - a = [] - "wawa".send(@method, :scan, /./).each {|o| a << $& } - a.should == ["w", "a", "w", "a"] - end - - it "exposes multi-arg yields as an array" do - o = Object.new - def o.each - yield :a - yield :b1, :b2 - yield [:c] - yield :d1, :d2 - yield :e1, :e2, :e3 - end - - enum = o.send(@method) - enum.next.should == :a - enum.next.should == [:b1, :b2] - enum.next.should == [:c] - enum.next.should == [:d1, :d2] - enum.next.should == [:e1, :e2, :e3] - end - - it "uses the passed block's value to calculate the size of the enumerator" do - Object.new.enum_for { 100 }.size.should == 100 - end - - it "defers the evaluation of the passed block until #size is called" do - ScratchPad.record [] - - enum = Object.new.enum_for do - ScratchPad << :called - 100 - end - - ScratchPad.recorded.should be_empty - - enum.size - ScratchPad.recorded.should == [:called] - end -end diff --git a/spec/ruby/shared/enumerator/with_index.rb b/spec/ruby/shared/enumerator/with_index.rb deleted file mode 100644 index 89f40070e0..0000000000 --- a/spec/ruby/shared/enumerator/with_index.rb +++ /dev/null @@ -1,33 +0,0 @@ -require_relative '../../spec_helper' - -describe :enum_with_index, shared: true do - - require_relative '../../fixtures/enumerator/classes' - - before :each do - @origin = [1, 2, 3, 4] - @enum = @origin.to_enum - end - - it "passes each element and its index to block" do - a = [] - @enum.send(@method) { |o, i| a << [o, i] } - a.should == [[1, 0], [2, 1], [3, 2], [4, 3]] - end - - it "returns the object being enumerated when given a block" do - @enum.send(@method) { |o, i| :glark }.should equal(@origin) - end - - it "binds splat arguments properly" do - acc = [] - @enum.send(@method) { |*b| c,d = b; acc << c; acc << d } - [1, 0, 2, 1, 3, 2, 4, 3].should == acc - end - - it "returns an enumerator if no block is supplied" do - ewi = @enum.send(@method) - ewi.should be_an_instance_of(Enumerator) - ewi.to_a.should == [[1, 0], [2, 1], [3, 2], [4, 3]] - end -end diff --git a/spec/ruby/shared/enumerator/with_object.rb b/spec/ruby/shared/enumerator/with_object.rb deleted file mode 100644 index c2e3a79366..0000000000 --- a/spec/ruby/shared/enumerator/with_object.rb +++ /dev/null @@ -1,42 +0,0 @@ -require_relative '../../spec_helper' - -describe :enum_with_object, shared: true do - before :each do - @enum = [:a, :b].to_enum - @memo = '' - @block_params = @enum.send(@method, @memo).to_a - end - - it "receives an argument" do - @enum.method(@method).arity.should == 1 - end - - context "with block" do - it "returns the given object" do - ret = @enum.send(@method, @memo) do |elm, memo| - # nothing - end - ret.should equal(@memo) - end - - context "the block parameter" do - it "passes each element to first parameter" do - @block_params[0][0].should equal(:a) - @block_params[1][0].should equal(:b) - end - - it "passes the given object to last parameter" do - @block_params[0][1].should equal(@memo) - @block_params[1][1].should equal(@memo) - end - end - end - - context "without block" do - it "returns new Enumerator" do - ret = @enum.send(@method, @memo) - ret.should be_an_instance_of(Enumerator) - ret.should_not equal(@enum) - end - end -end |
