Sha256: 9c8a62a3c2c8a0e9f3525eb327b9c093a7f543d2795a29adc485a7470b42da70

Contents?: true

Size: 1.16 KB

Versions: 33

Compression:

Stored size: 1.16 KB

Contents

require 'helper'
require 'set'

class TestArrayUtils < Test::Unit::TestCase
  def setup
    @array = Faker::ArrayUtils.const_array("a".."c")
    @elems = Set.new("a".."c")
  end

  it "provides a way of freezing the elements and itself" do
    assert @array.respond_to?(:freeze_all)
    @array.freeze_all
    assert @array.frozen?
    @array.each { |e| assert e.frozen?  }
  end

  it "provides a way of getting a random element" do
    set = Set.new
    1000.times { set << @array.rand }
    assert set == @elems
  end

  it "provides a way of getting n random elements" do
    assert_equal @array.random_pick(3).sort, @array.sort

    1.upto(3) do |n|
      1000.times do
        new_arr = @array.random_pick(n)
        assert_equal n, new_arr.length
        new_arr.each do |e|
          assert @elems.include? e
        end
      end
    end
  end

  it "provides a way of shuffling the array" do
    assert_equal @array.shuffle.sort, @array.sort

    different_arrangements = 0

    1000.times do
      new_arr = @array.shuffle
      assert new_arr.to_set == @elems
      different_arrangements += 1 if new_arr != @array
    end

    assert different_arrangements > 0
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
ffaker-1.21.0 test/test_array_utils.rb
ffaker-1.20.0 test/test_array_utils.rb
ffaker-1.19.0 test/test_array_utils.rb
ffaker-1.18.0 test/test_array_utils.rb
ffaker-1.17.0 test/test_array_utils.rb
ffaker-1.16.2 test/test_array_utils.rb
ffaker-1.16.1 test/test_array_utils.rb
ffaker-1.16.0 test/test_array_utils.rb
ffaker-1.15.0 test/test_array_utils.rb
ffaker-1.14.0 test/test_array_utils.rb
ffaker-1.13.0 test/test_array_utils.rb
ffaker-1.12.1 test/test_array_utils.rb
ffaker-1.12.0 test/test_array_utils.rb
ffaker-1.11.0 test/test_array_utils.rb
ffaker-1.10.1 test/test_array_utils.rb
ffaker-1.9.1 test/test_array_utils.rb
ffaker-1.8.1 test/test_array_utils.rb
ffaker-1.8.0 test/test_array_utils.rb
ffaker-1.7.0 test/test_array_utils.rb
ffaker-1.6.0 test/test_array_utils.rb