Browse Source

Refactor and fix wrong test names

pull/1184/head
Kat 3 years ago
parent
commit
33a8417273
  1. 16
      app/models/derived_variables/sales_log_variables.rb
  2. 6
      spec/models/sales_log_spec.rb

16
app/models/derived_variables/sales_log_variables.rb

@ -26,7 +26,7 @@ private
def total_elder def total_elder
ages = [age1, age2, age3, age4, age5, age6] ages = [age1, age2, age3, age4, age5, age6]
ages.count { |x| !x.nil? && x >= 60 } ages.count { |age| age.present? && age >= 60 }
end end
def total_child def total_child
@ -35,11 +35,11 @@ private
end end
def total_adult def total_adult
total = !age1.nil? && age1 >= 16 && age1 < 60 ? 1 : 0 total = age1.present? && age1.between?(16, 59) ? 1 : 0
total + (2..6).count do |i| total + (2..6).count do |i|
age = public_send("age#{i}") age = public_send("age#{i}")
relat = public_send("relat#{i}") relat = public_send("relat#{i}")
!age.nil? && ((age >= 16 && age < 18 && %w[P X].include?(relat)) || age >= 18 && age < 60) age.present? && ((age.between?(16, 17) && %w[P X].include?(relat)) || age.between?(18, 59))
end end
end end
@ -48,7 +48,7 @@ private
if only_one_elder? if only_one_elder?
1 1
elsif two_adults_including_elders? elsif only_two_elders?
2 2
elsif only_one_adult? elsif only_one_adult?
3 3
@ -56,14 +56,14 @@ private
4 4
elsif one_adult_with_at_least_one_child? elsif one_adult_with_at_least_one_child?
5 5
elsif two_adults_with_at_least_one_child? elsif at_least_two_adults_with_at_least_one_child?
6 6
else else
9 9
end end
end end
def two_adults_with_at_least_one_child? def at_least_two_adults_with_at_least_one_child?
total_elder.zero? && total_adult >= 2 && totchild >= 1 total_elder.zero? && total_adult >= 2 && totchild >= 1
end end
@ -79,8 +79,8 @@ private
total_elder.zero? && total_adult == 1 && totchild.zero? total_elder.zero? && total_adult == 1 && totchild.zero?
end end
def two_adults_including_elders? def only_two_elders?
(total_elder + total_adult) == 2 && total_elder >= 1 total_elder == 2 && total_adult.zero? && totchild.zero?
end end
def only_one_elder? def only_one_elder?

6
spec/models/sales_log_spec.rb

@ -237,13 +237,13 @@ RSpec.describe SalesLog, type: :model do
described_class.create!({ described_class.create!({
jointpur: 1, jointpur: 1,
hholdcount: 3, hholdcount: 3,
relat2: "X", relat2: "C",
relat3: "C", relat3: "C",
relat4: "X", relat4: "X",
relat5: "C", relat5: "C",
age1: 22, age1: 22,
age2: 60, age2: 40,
age3: 15, age3: 19,
age4: 88, age4: 88,
age5: 14, age5: 14,
}) })

Loading…
Cancel
Save