Sha256: 5eed48cf61c1e3f03b7dd3ae8c8b8044f4539371f249460aff22d22c576e4f94

Contents?: true

Size: 1.18 KB

Versions: 21

Compression:

Stored size: 1.18 KB

Contents

assert("Enumerator::Lazy") do
  a = [1, 2]
  assert_equal Enumerator::Lazy, a.lazy.class
end

assert("Enumerator::Lazy laziness") do
  a = Object.new
  def a.each
    return to_enum :each unless block_given?
    self.b << 10
    yield 1
    self.b << 20
    yield 2
    self.b << 30
    yield 3
    self.b << 40
    yield 4
    self.b << 50
    yield 5
  end
  def a.b(b=nil)
    @b = b if b
    @b
  end

  a.b([])
  assert_equal [1,2], a.each.lazy.take(2).force
  assert_equal [10,20], a.b

  a.b([])
  assert_equal [2,4], a.each.lazy.select{|x|x%2==0}.take(2).force
  assert_equal [10,20,30,40], a.b

  a.b([])
  assert_equal [1], a.each.lazy.take_while{|x|x<2}.take(1).force
  assert_equal [10], a.b

  a.b([])
  assert_equal [1], a.each.lazy.take_while{|x|x<2}.take(4).force
  assert_equal [10,20], a.b
end

assert("Enumerator::Lazy#to_enum") do
  lazy_enum = (0..Float::INFINITY).lazy.to_enum(:each_slice, 2)
  assert_kind_of Enumerator::Lazy, lazy_enum
  assert_equal [0*1, 2*3, 4*5, 6*7], lazy_enum.map { |a| a.first * a.last }.first(4)
end

assert("Enumerator::Lazy#zip with cycle") do
  e1 = [1, 2, 3].cycle
  e2 = [:a, :b].cycle
  assert_equal [[1,:a],[2,:b],[3,:a]], e1.lazy.zip(e2).first(3)
end

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
script_core-0.3.2 ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
script_core-0.3.0 ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
script_core-0.2.7 ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
script_core-0.2.6 ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
script_core-0.2.5 ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
script_core-0.2.4 ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
script_core-0.2.3 ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
script_core-0.2.2 ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
script_core-0.2.1 ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
script_core-0.2.0 ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
script_core-0.1.1 ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
script_core-0.1.0 ext/enterprise_script_service/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
esruby-0.2.0 resources/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
esruby-0.1.5 resources/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
esruby-0.1.4 resources/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
esruby-0.1.3 resources/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
esruby-0.1.2 resources/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
esruby-0.1.1 resources/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
esruby-0.1.0 resources/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb
esruby-0.0.11 resources/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb