0
0
Fork 0

Make interface for weighting input smaller

The input object must now only respond to each and must contain
arrays.
This commit is contained in:
Stormwind 2015-04-25 22:52:20 +02:00
parent 9a013f53fd
commit f561b2c769
4 changed files with 12 additions and 26 deletions

View File

@ -20,7 +20,7 @@ module Rubella
# @return Rubella::Weighting::Base # @return Rubella::Weighting::Base
# @raise ArgumentError # @raise ArgumentError
# #
def initialize(buckets = 10) def initialize buckets = 10
self.buckets = buckets self.buckets = buckets
end end
@ -31,7 +31,7 @@ module Rubella
# #
def buckets= buckets def buckets= buckets
# Must be divideable by 100 # Must be divideable by 100
if([1, 2, 5, 10, 20, 50].index(buckets) == nil) if [1, 2, 5, 10, 20, 50].index(buckets) == nil
raise ArgumentError.new "Amount of buckets must be 1, 2, 5, 10, 20 "+ raise ArgumentError.new "Amount of buckets must be 1, 2, 5, 10, 20 "+
"or 50" "or 50"
end end

View File

@ -17,18 +17,13 @@ module Rubella
# @param input Rubella::Input An input object # @param input Rubella::Input An input object
# @return Rubella::Storage # @return Rubella::Storage
def parse input def parse input
data = input.data
# no data, no work
return [] if data.length == 0
# total amount of cores
total_amount = data[0].length
# prepare data # prepare data
data_list = Array.new() data_list = Array.new()
bucket_no = 0 bucket_no = 0
total_amount = nil
data.each do |cores| input.each do |cores|
total_amount = cores.length if total_amount.nil?
# every 10 load percent one heatpoint # every 10 load percent one heatpoint
i = 0 i = 0
data_list << Array.new(buckets) do data_list << Array.new(buckets) do

View File

@ -18,14 +18,10 @@ module Rubella
# @param input Rubella::Input An input object # @param input Rubella::Input An input object
# @return Rubella::Storage # @return Rubella::Storage
def parse input def parse input
data = input.data
# no data, no work
return [] if data.length == 0
# prepare data # prepare data
data_list = Array.new() data_list = Array.new()
data.each do |cores| input.each do |cores|
# Add all loads to compute how much % is one % load # Add all loads to compute how much % is one % load
load_sum = 0 load_sum = 0

View File

@ -4,7 +4,7 @@ module Rubella
module Weighting module Weighting
# The Rubella::Weighting::PerValue object weights every bucket set to 1 in # The Rubella::Weighting::PerValue object weights every bucket set to 1 in
# ammount. So if you have have for example four cores, every core is # amount. So if you have have for example four cores, every core is
# weighted to 0.25 no matter how much the load of a single core is. It's # weighted to 0.25 no matter how much the load of a single core is. It's
# just a "as is" weighting. # just a "as is" weighting.
# #
@ -17,17 +17,12 @@ module Rubella
# @param input Rubella::Input An input object # @param input Rubella::Input An input object
# @return Rubella::Storage # @return Rubella::Storage
def parse input def parse input
data = input.data
# no data, no work
return [] if data.length == 0
# total amount of cores
total_amount = data[0].length
# prepare data # prepare data
data_list = Array.new() data_list = Array.new()
total_amount = nil
data.each do |cores| input.each do |cores|
total_amount = cores.length if total_amount.nil?
# every 10 load percent one heatpoint # every 10 load percent one heatpoint
i = 0 i = 0
data_list << Array.new(buckets) do data_list << Array.new(buckets) do