Class: AgileTrello::StandardDeviationCalculator

Inherits:
Object
  • Object
show all
Defined in:
lib/StandardDeviationCalculator.rb

Instance Method Summary collapse

Constructor Details

#initialize(average_cycle_time_calculator) ⇒ StandardDeviationCalculator

Returns a new instance of StandardDeviationCalculator.



3
4
5
6
# File 'lib/StandardDeviationCalculator.rb', line 3

def initialize(average_cycle_time_calculator)
  @average_cycle_time_calculator = average_cycle_time_calculator
  @cycle_times = []
end

Instance Method Details

#add(cycle_time) ⇒ Object



8
9
10
11
# File 'lib/StandardDeviationCalculator.rb', line 8

def add(cycle_time)
  @average_cycle_time_calculator.add(cycle_time)
  @cycle_times.push(cycle_time)
end

#standard_deviationObject



13
14
15
16
17
18
19
20
21
# 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