class Differential::Calculator::Totals
Value object that can capture basic calculations:
Constants
- DIGITS
Attributes
a_sigma[R]
a_size[R]
b_sigma[R]
b_size[R]
Public Class Methods
new()
click to toggle source
# File lib/differential/calculator/totals.rb, line 26 def initialize @a_sigma = BigDecimal(0, DIGITS) @a_size = 0 @b_sigma = BigDecimal(0, DIGITS) @b_size = 0 end
Public Instance Methods
add(value, side)
click to toggle source
# File lib/differential/calculator/totals.rb, line 37 def add(value, side) increment_sigma(value, side) increment_size(side) end
delta()
click to toggle source
# File lib/differential/calculator/totals.rb, line 33 def delta b_sigma - a_sigma end
Private Instance Methods
increment_sigma(value, side)
click to toggle source
# File lib/differential/calculator/totals.rb, line 44 def increment_sigma(value, side) case side when A @a_sigma += value when B @b_sigma += value else raise ArgumentError, "unknown side: #{side}" end nil end
increment_size(side)
click to toggle source
# File lib/differential/calculator/totals.rb, line 57 def increment_size(side) case side when A @a_size += 1.0 when B @b_size += 1.0 else raise ArgumentError, "unknown side: #{side}" end nil end