module Minireq::Dsl::Pert
Public Instance Methods
calc_e95(efforts, rmserrs)
click to toggle source
@param efforts [Array<Float>] @param rmserrs [Array<Float>] @return [Hash<>] effort, error and effort 95%
# File lib/minireq/dsl/pert.rb, line 20 def calc_e95(efforts, rmserrs) eff = efforts.inject(0, :+) err = Math.sqrt(rmserrs.inject(0) { |sum, i| sum + i**2 }) e95 = eff + 2 * err {effort: eff, error: err, e95: e95} end
calc_pert(o:, m:, p:)
click to toggle source
@param o [Integer] optimistic esitmation @param m [Integer] most usual @param p [Integer] pessimistic @return [Hash<effort, rmserr>] average effort and root-mean-square error
# File lib/minireq/dsl/pert.rb, line 11 def calc_pert(o:, m:, p:) effort = (o + m * 4 + p) / 6.0 rmserr = (p - o) / 6.0 {effort: effort, rmserr: rmserr} end