Add tests for Rubella::Weighting::Base
This commit is contained in:
parent
b87dfc273e
commit
b53d134e2e
|
@ -10,3 +10,4 @@ require 'rubella'
|
||||||
require 'rubella/storage'
|
require 'rubella/storage'
|
||||||
require 'rubella/input/base'
|
require 'rubella/input/base'
|
||||||
require 'rubella/input/json'
|
require 'rubella/input/json'
|
||||||
|
require 'rubella/weighting/base'
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Rubella::Weighting::Base, '.buckets=' do
|
||||||
|
|
||||||
|
it "uses the given value" do
|
||||||
|
weighting = Rubella::Weighting::Base.new
|
||||||
|
|
||||||
|
weighting.buckets = 5
|
||||||
|
|
||||||
|
expect(weighting.buckets).to eq(5)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "accepts one of 1, 2, 5, 10, 20, 50" do
|
||||||
|
weighting = Rubella::Weighting::Base.new
|
||||||
|
|
||||||
|
[1, 2, 5, 10, 20, 50].each do |amount|
|
||||||
|
weighting.buckets = amount
|
||||||
|
expect(weighting.buckets).to eq(amount)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it "throws an ArgumentError if the value is not 1, 2, 5, 10, 20, 50" do
|
||||||
|
weighting = Rubella::Weighting::Base.new
|
||||||
|
|
||||||
|
expect{ weighting.buckets = 7 }.to raise_error(ArgumentError)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,11 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Rubella::Weighting::Base, '.buckets' do
|
||||||
|
|
||||||
|
it "returns the current amount of buckets" do
|
||||||
|
weighting = Rubella::Weighting::Base.new 20
|
||||||
|
|
||||||
|
expect(weighting.buckets).to eq(20)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,23 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Rubella::Weighting::Base, '.new' do
|
||||||
|
|
||||||
|
it "creates a new Weighting instance" do
|
||||||
|
weighting = Rubella::Weighting::Base.new
|
||||||
|
|
||||||
|
expect(weighting).to be_instance_of(Rubella::Weighting::Base)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "uses 10 buckets by default" do
|
||||||
|
weighting = Rubella::Weighting::Base.new
|
||||||
|
|
||||||
|
expect(weighting.buckets).to eq(10)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "uses the given number of buckets" do
|
||||||
|
weighting = Rubella::Weighting::Base.new 5
|
||||||
|
|
||||||
|
expect(weighting.buckets).to eq(5)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,11 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Rubella::Weighting::Base, '.parse' do
|
||||||
|
|
||||||
|
it "raises NotImplementedError" do
|
||||||
|
weighting = Rubella::Weighting::Base.new
|
||||||
|
|
||||||
|
expect{ weighting.parse(nil) }.to raise_error(NotImplementedError)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,19 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Rubella::Weighting::Base, '@steps' do
|
||||||
|
|
||||||
|
it "is always buckets/100" do
|
||||||
|
weighting = Rubella::Weighting::Implementation.new
|
||||||
|
|
||||||
|
weighting.buckets = 20
|
||||||
|
expect(weighting.steps).to eq(5)
|
||||||
|
|
||||||
|
weighting.buckets = 10
|
||||||
|
expect(weighting.steps).to eq(10)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
class Rubella::Weighting::Implementation < Rubella::Weighting::Base
|
||||||
|
attr_reader :steps
|
||||||
|
end
|
Loading…
Reference in New Issue