Sha256: 0f2558ce24505cad0e1a1c7a011f70a883cab221fd4fa7f67fa881157f653e86
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
require 'spec_helper' describe MonteCarlo::Experiment do let(:times) { 1000 } let(:sample_value) { 1 } let(:computation) { -> (sample) {sample * 2} } let(:experiment) do experiment = MonteCarlo::Experiment.new experiment.times = 1000 experiment.sample_method = -> { sample_value } experiment.computation = computation experiment end describe :run do it 'should raise a NoSampleMethodError if a sample method is not defined' do experiment.sample_method = nil expect { experiment.run }.to raise_error MonteCarlo::Errors::NoSampleMethodError end it 'should call the sample_method the correct number of times' do sample_double = double(call: sample_value) experiment.sample_method = sample_double expect(sample_double).to receive(:call).exactly(times).times experiment.run end it 'should return an array of result objects' do results = experiment.run expect(results).to all( be_a MonteCarlo::Result ) end it 'should return results with correct sample values' do results = experiment.run expect(results.map(&:sample_value)).to all( eq sample_value) end it 'should return results with correct values' do results = experiment.run expect(results.map(&:value)).to all( eq computation.call(sample_value)) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
monte_carlo-0.0.1 | spec/lib/monte_carlo/experiment_spec.rb |