Sha256: 17d2b0d7e7a3f70f847343212ab110d4f2d51c2ffd10acf26fc842ba3a4e0e26
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
# encoding: utf-8 require 'spec_helper' describe Aggregate::Variance, '.call' do subject do values.reduce(default) do |accumulator, value| object.call(accumulator, value) end end let(:default) { object.default } let(:object) { described_class } context 'when the values are not nil' do let(:values) { [-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6 ] } let(:count) { values.count } let(:mean) { 0.0 } let(:sum_of_squares) { values.map { |value| value ** 2.0 }.reduce(:+) } it 'returns the expected count' do subject.fetch(0).should be(count) end it 'returns the expected mean' do subject.fetch(1).should eql(mean) end it 'returns the expected sum of squares' do subject.fetch(2).should eql(sum_of_squares) end end context 'when the values are nil' do let(:values) { [ nil ] } let(:count) { default.fetch(0) } let(:mean) { default.fetch(1) } let(:sum_of_squares) { default.fetch(2) } it 'returns the default count' do subject.fetch(0).should be(count) end it 'returns the default mean' do subject.fetch(1).should eql(mean) end it 'returns the default sum of squares' do subject.fetch(2).should eql(sum_of_squares) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
axiom-0.1.0 | spec/unit/axiom/aggregate/variance/class_methods/call_spec.rb |