Sha256: c0c747ecbf24acfe3e4e97b8b132ba31e1bf54664ff1bd7e3e1ed15b5833a5ec

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

# Test facets/enumerable/collate.rb

require 'facets/enumerable/collate.rb'
require 'test/unit'

class TestEnumerableCollate < Test::Unit::TestCase

  def test_collate_hash_return
    a = { :a => 1, :b => 2, :c => 3 }
    e = { :a => 2, :b => 3, :c => 4 }
    assert_equal( e, a.collate{ |k,v| {k => v+1} } )
  end

  def test_collate_hash_of_array
    a = { :a => [1,2], :b => [2,3], :c => [3,4] }
    e = { :a => 2, :b => 6, :c => 12 }
    assert_equal( e, a.collate{ |k,v| [k, v[0]*v[1] ] } )
  end

  def test_collate_array_of_array
    a = [ [1,2], [2,3], [3,4] ]
    e = { [1,2] => 2, [2,3] => 6, [3,4] => 12 }
    assert_equal( e, a.collate{ |a| [a, a[0]*a[1] ] } )
  end

  def test_collate_squares
    numbers  = (1..3)
    squares  = numbers.collate{ |n| [n, n*n] }
    assert_equal( {1=>1, 2=>4, 3=>9}, squares )
  end

  def test_collate_roots
    numbers  = (1..3)
    sq_roots = numbers.collate{ |n| [n*n, n] }
    assert_equal( {1=>1, 4=>2, 9=>3}, sq_roots )
  end

  def test_collate_inplace!
    a = { :a => 1, :b => 2, :c => 3 }
    e = { :a => 2, :b => 3, :c => 4 }
    a.collate!{ |k,v| { k => v+1 } }
    assert_equal( e, a )
  end

  def test_collate_inplace_again!
    h  = {:a=>1,:b=>2,:c=>3}
    h.collate!{ |k,v| [v, v*v] }
    assert_equal( {1=>1, 2=>4, 3=>9}, h )
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
facets-2.1.3 test/unit/enumerable/test_collate.rb