From 3a22d113ee1f3c3b5a64494cde4ae217d97d8f4d Mon Sep 17 00:00:00 2001 From: ksss Date: Tue, 27 Mar 2018 10:53:33 +0900 Subject: Reimplement `Enumerable#zip` with Enumerator for fix some specs - [passes each element of the result array to a block and return nil if a block is given](https://github.com/ruby/spec/blob/a585ec35d185435e5c11f371ba4ed2a29d8817bd/core/enumerable/zip_spec.rb#L11-L17) - [converts arguments to arrays using #to_ary](https://github.com/ruby/spec/blob/a585ec35d185435e5c11f371ba4ed2a29d8817bd/core/enumerable/zip_spec.rb#L23-L27) - [converts arguments to enums using #to_enum](https://github.com/ruby/spec/blob/a585ec35d185435e5c11f371ba4ed2a29d8817bd/core/enumerable/zip_spec.rb#L29-L34) - [gathers whole arrays as elements when each yields multiple](https://github.com/ruby/spec/blob/a585ec35d185435e5c11f371ba4ed2a29d8817bd/core/enumerable/zip_spec.rb#L36-L39) --- mrbgems/mruby-enumerator/test/enumerator.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'mrbgems/mruby-enumerator/test/enumerator.rb') diff --git a/mrbgems/mruby-enumerator/test/enumerator.rb b/mrbgems/mruby-enumerator/test/enumerator.rb index 4c904a81d..428ea0307 100644 --- a/mrbgems/mruby-enumerator/test/enumerator.rb +++ b/mrbgems/mruby-enumerator/test/enumerator.rb @@ -544,3 +544,13 @@ assert 'Range#each' do end assert_equal [1,2,3,4,5], c end + +assert 'Enumerable#zip' do + assert_equal [[1, 10], [2, 11], [3, 12]], [1,2,3].zip(10..Float::INFINITY) + + ret = [] + assert_equal nil, [1,2,3].zip(10..Float::INFINITY) { |i| ret << i } + assert_equal [[1, 10], [2, 11], [3, 12]], ret + + assert_raise(TypeError) { [1].zip(1) } +end -- cgit v1.2.3