Class: PavementConditionIndex::CdvIteration

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(deduct_values:, pavement_type:, q:) ⇒ CdvIteration

Returns a new instance of CdvIteration.



6
7
8
9
10
# File 'lib/pavement_condition_index/cdv_iteration.rb', line 6

def initialize(deduct_values: ,pavement_type: ,q: )
  @deduct_values = deduct_values
  @q = q
  @pavement_type = pavement_type
end

Instance Attribute Details

#deduct_valuesObject (readonly)

Returns the value of attribute deduct_values.



4
5
6
# File 'lib/pavement_condition_index/cdv_iteration.rb', line 4

def deduct_values
  @deduct_values
end

#qObject (readonly)

Returns the value of attribute q.



4
5
6
# File 'lib/pavement_condition_index/cdv_iteration.rb', line 4

def q
  @q
end

Instance Method Details

#adjusted_deduct_valuesObject



12
13
14
15
16
17
18
19
# File 'lib/pavement_condition_index/cdv_iteration.rb', line 12

def adjusted_deduct_values
  @adjusted_deduct_values ||= begin
    c = @deduct_values.clone
    a = c.shift(@q)
    a += c.map {|dv| [dv,2.0].min }
    a
  end
end

#corrected_deduct_valueObject



25
26
27
# File 'lib/pavement_condition_index/cdv_iteration.rb', line 25

def corrected_deduct_value
  @corrected_deduct_value ||= PavementConditionIndex::Lookups::CorrectedDeductValues.new(pavement_type: @pavement_type, q: @q).call(total_deduct_value)
end

#total_deduct_valueObject



21
22
23
# File 'lib/pavement_condition_index/cdv_iteration.rb', line 21

def total_deduct_value
  @total_deduct_value ||= adjusted_deduct_values.reduce(:+)
end