class AgileTrello::StandardDeviationCalculator
Public Class Methods
new(average_cycle_time_calculator)
click to toggle source
# File lib/StandardDeviationCalculator.rb, line 3 def initialize(average_cycle_time_calculator) @average_cycle_time_calculator = average_cycle_time_calculator @cycle_times = [] end
Public Instance Methods
add(cycle_time)
click to toggle source
# File lib/StandardDeviationCalculator.rb, line 8 def add(cycle_time) @average_cycle_time_calculator.add(cycle_time) @cycle_times.push(cycle_time) end
standard_deviation()
click to toggle source
# File lib/StandardDeviationCalculator.rb, line 13 def standard_deviation mean = @average_cycle_time_calculator.average return 0 if mean == 0 squared_deviations = @cycle_times.map do |cycle_time| (cycle_time - mean) ** 2 end variance = squared_deviations.reduce(:+) / squared_deviations.length standard_deviation = Math.sqrt(variance).round(2) end