Sha256: 1352efe239d90743be4444a052f7fb2418fa41b9cd398d65b96f00419c20f30e
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
require 'spec_helper' describe :frequency do it 'should pick an item from an array based on frequency key' do options = [ { :name => 'one', :frequency => 10 }, { :name => 'two', :frequency => 5 }, { :name => 'three', :frequency => 1 } ] options.random_by_frequency(5.7).should == options[0] options.random_by_frequency(12).should == options[1] options.random_by_frequency(15).should == options[2] end it 'should pick an item from a hash based on frequency key' do options = { :one => { :name => 'one', :frequency => 10 }, :two => { :name => 'two', :frequency => 5 }, :three => { :name => 'three', :frequency => 1 } } options.random_by_frequency(5).should == :one options.random_by_frequency(12).should == :two options.random_by_frequency(15).should == :three end it 'should pick an item from a hash based on frequency value' do options = { 'one' => 10, 'two' => 5, 'three' => 1 } options.random_by_frequency(5).should == 'one' options.random_by_frequency(12).should == 'two' options.random_by_frequency(15).should == 'three' end it 'should be pretty close to probability' do options = { 'one' => 1, 'two' => 3 } 10000.times.count{ options.random_by_frequency == "two" }.should > 6000 end it "should allow floating randomizations" do options = { :a => 0.1 } options.random_by_frequency.should eq :a end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bootstripe-0.2.23 | spec/frequency_spec.rb |