Sha256: 3ca9a5fc23770e1b1a8454b15435446f147631aadc7d8cdb87dfe5789abc51a5

Contents?: true

Size: 1.16 KB

Versions: 11

Compression:

Stored size: 1.16 KB

Contents

require 'test_helper'


class EnumeratorTest < Test::Unit::TestCase
  context "Enumerator" do
    context "#with_object" do
      should "conform to doc" do
        animals = %w(cat dog wombat).to_enum 
        hash = animals.with_object({}).each do |item, memo| 
          memo[item] = item.upcase.reverse 
        end 
        assert_equal({"cat"=>"TAC", "dog"=>"GOD", "wombat"=>"TABMOW"}, hash)
      end
    end
    
    context "#new" do
      should "should accept block" do
        enum = Enumerator.new do |yielder|
          yielder.yield "This syntax is"
          yielder.yield "cool!"
        end
        assert enum.is_a?(Enumerator)
        2.times do
          assert_equal ["This syntax is", "cool!"], enum.to_a
        end
      end
    end
    
    context "#each" do
      should "should not require block" do
        assert_nothing_raised { [42].to_enum.each }
        assert_equal [42], [42].to_enum.each.to_a
      end
    end
    
    context "#next" do
      should "conform to doc" do
        enum = [10, 20].to_enum 
        assert_equal 10, enum.next
        assert_equal 20, enum.next
        assert_raise(StopIteration){ enum.next} 
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
backports-2.3.0 test/enumerator_test.rb
backports-2.2.1 test/enumerator_test.rb
backports-2.2.0 test/enumerator_test.rb
backports-2.1.0 test/enumerator_test.rb
backports-2.0.3 test/enumerator_test.rb
backports-2.0.2 test/enumerator_test.rb
backports-2.0.1 test/enumerator_test.rb
backports-2.0.0 test/enumerator_test.rb
backports-1.18.2 test/enumerator_test.rb
backports-1.18.1 test/enumerator_test.rb
backports-1.18.0 test/enumerator_test.rb