Class: AgileTrello::StandardDeviationCalculator
- Inherits:
-
Object
- Object
- AgileTrello::StandardDeviationCalculator
- Defined in:
- lib/StandardDeviationCalculator.rb
Instance Method Summary collapse
- #add(cycle_time) ⇒ Object
-
#initialize(average_cycle_time_calculator) ⇒ StandardDeviationCalculator
constructor
A new instance of StandardDeviationCalculator.
- #standard_deviation ⇒ Object
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_deviation ⇒ Object
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 |