Sha256: 741534a63bcc41654559b94d2e608d34a59a49dda557f915198d709a72eca91b

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

require File.dirname(__FILE__) + '/spec_helper'
require 'sham'

Sham.random { rand }
Sham.half_index {|index| index/2 }
Sham.coin_toss(:unique => false) {|index| index % 2 == 1 ? 'heads' : 'tails' }
Sham.limited {|index| index%10 }
Sham.index {|index| index }
Sham.name  {|index| index }

describe Sham do
  it "should ensure generated values are unique" do
    values = (1..10).map { Sham.half_index }
    values.should == (0..9).to_a
  end

  it "should generate non-unique values when asked" do
    values = (1..4).map { Sham.coin_toss }
    values.should == ['heads', 'tails', 'heads', 'tails']
  end
  
  it "should generate more than a dozen values" do
    values = (1..25).map { Sham.index }
    values.should == (1..25).to_a
  end
    
  it "should generate the same sequence of values after a reset" do
    values1 = (1..10).map { Sham.random }
    Sham.reset
    values2 = (1..10).map { Sham.random }
    values2.should == values1
  end
  
  it "should die when it runs out of unique values" do
    lambda {
      (1..100).map { Sham.limited }
    }.should raise_error(RuntimeError)
  end
  
  it "should allow over-riding the name method" do
    Sham.name.should == 1
  end
  
    
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
elight-machinist-1.0.0 spec/sham_spec.rb
elight-machinist-1.0.1 spec/sham_spec.rb