Sha256: 448a163a936fc363c5be881f002b8b8b9880476274552dc18132ae5a7d8cf76f

Contents?: true

Size: 691 Bytes

Versions: 12

Compression:

Stored size: 691 Bytes

Contents

module Array::Cross
  def cross(other, &block)
    if !block_given?
      r = []
      cross(other) do |mine, others|
        r << [ mine, others ]
      end
      return r 
    else    
      each do |obj|
        other.each do |oo| yield obj, oo end
      end
    end
  end
end

Array.send :include, Array::Cross

module Array::Cross::Etest
  def test_cross
    assert_equal( [[1,1]],                            [1].cross([1])  )
    assert_equal( [[1,1], [2,1]],                     [1, 2].cross([1])  )
    assert_equal( [[1,1], [1,3], [2,1], [2,3]],       [1, 2].cross([1, 3])  )
    assert_equal( [],                                 [1, 2].cross([])  )
  end
end if VEX_TEST == "base"

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
vex-0.6.2 lib/vex/base/array/cross.rb
vex-0.4.4 lib/vex/base/array/cross.rb
vex-0.4.2 lib/vex/base/array/cross.rb
vex-0.3.3 lib/vex/base/array/cross.rb
vex-0.2.9 lib/vex/base/array/cross.rb
vex-0.2.8 lib/vex/base/array/cross.rb
vex-0.2.7 lib/vex/base/array/cross.rb
vex-0.2.6 lib/vex/base/array/cross.rb
vex-0.2.5 lib/vex/base/array/cross.rb
vex-0.2.2 lib/vex/base/array/cross.rb
vex-0.2.1 lib/vex/base/array/cross.rb
vex-0.2 lib/vex/base/array/cross.rb