Browse Source

Add tests for floats

pull/388/head
Kat 3 years ago
parent
commit
da03102bbe
  1. 2
      app/models/case_log.rb
  2. 135
      spec/models/case_log_spec.rb

2
app/models/case_log.rb

@ -90,7 +90,7 @@ class CaseLog < ApplicationRecord
num_of_weeks = NUM_OF_WEEKS_FROM_PERIOD[period] num_of_weeks = NUM_OF_WEEKS_FROM_PERIOD[period]
return unless field_value && num_of_weeks return unless field_value && num_of_weeks
field_value / 52 * num_of_weeks (field_value / 52 * num_of_weeks).round(2)
end end
def applicable_income_range def applicable_income_range

135
spec/models/case_log_spec.rb

@ -372,6 +372,21 @@ RSpec.describe CaseLog do
end end
end end
end end
it "correctly derives floats" do
case_log.update!(supcharg: 100.12, pscharge: 100.13, scharge: 100.98, brent: 100.97, period: 2)
record_from_db = ActiveRecord::Base.connection.execute("select wtcharge, wsupchrg, wpschrge, wscharge, wrent from case_logs where id=#{case_log.id}").to_a[0]
expect(case_log.wsupchrg).to eq(50.06)
expect(case_log.wpschrge).to eq(50.07)
expect(case_log.wscharge).to eq(50.49)
expect(case_log.wrent).to eq(50.49)
expect(case_log.wtcharge).to eq(201.1)
expect(record_from_db["wsupchrg"]).to eq(50.06)
expect(record_from_db["wpschrge"]).to eq(50.07)
expect(record_from_db["wscharge"]).to eq(50.49)
expect(record_from_db["wrent"]).to eq(50.49)
expect(record_from_db["wtcharge"]).to eq(201.1)
end
end end
context "when rent is paid every 4 weeks" do context "when rent is paid every 4 weeks" do
@ -438,6 +453,21 @@ RSpec.describe CaseLog do
end end
end end
end end
it "correctly derives floats" do
case_log.update!(supcharg: 100.12, pscharge: 100.13, scharge: 100.98, brent: 100.97, period: 3)
record_from_db = ActiveRecord::Base.connection.execute("select wtcharge, wsupchrg, wpschrge, wscharge, wrent from case_logs where id=#{case_log.id}").to_a[0]
expect(case_log.wsupchrg).to eq(25.03)
expect(case_log.wpschrge).to eq(25.03)
expect(case_log.wscharge).to eq(25.24)
expect(case_log.wrent).to eq(25.24)
expect(case_log.wtcharge).to eq(100.55)
expect(record_from_db["wsupchrg"]).to eq(25.03)
expect(record_from_db["wpschrge"]).to eq(25.03)
expect(record_from_db["wscharge"]).to eq(25.24)
expect(record_from_db["wrent"]).to eq(25.24)
expect(record_from_db["wtcharge"]).to eq(100.55)
end
end end
context "when rent is paid every calendar month" do context "when rent is paid every calendar month" do
@ -504,6 +534,21 @@ RSpec.describe CaseLog do
end end
end end
end end
it "correctly derives floats" do
case_log.update!(supcharg: 100.12, pscharge: 100.13, scharge: 100.98, brent: 100.97, period: 4)
record_from_db = ActiveRecord::Base.connection.execute("select wtcharge, wsupchrg, wpschrge, wscharge, wrent from case_logs where id=#{case_log.id}").to_a[0]
expect(case_log.wsupchrg).to eq(23.10)
expect(case_log.wpschrge).to eq(23.11)
expect(case_log.wscharge).to eq(23.30)
expect(case_log.wrent).to eq(23.30)
expect(case_log.wtcharge).to eq(92.82)
expect(record_from_db["wsupchrg"]).to eq(23.10)
expect(record_from_db["wpschrge"]).to eq(23.11)
expect(record_from_db["wscharge"]).to eq(23.30)
expect(record_from_db["wrent"]).to eq(23.30)
expect(record_from_db["wtcharge"]).to eq(92.82)
end
end end
context "when rent is paid weekly for 50 weeks" do context "when rent is paid weekly for 50 weeks" do
@ -570,6 +615,21 @@ RSpec.describe CaseLog do
end end
end end
end end
it "correctly derives floats" do
case_log.update!(supcharg: 100.12, pscharge: 100.13, scharge: 100.98, brent: 100.97, period: 5)
record_from_db = ActiveRecord::Base.connection.execute("select wtcharge, wsupchrg, wpschrge, wscharge, wrent from case_logs where id=#{case_log.id}").to_a[0]
expect(case_log.wsupchrg).to eq(96.27)
expect(case_log.wpschrge).to eq(96.28)
expect(case_log.wscharge).to eq(97.1)
expect(case_log.wrent).to eq(97.09)
expect(case_log.wtcharge).to eq(386.73)
expect(record_from_db["wsupchrg"]).to eq(96.27)
expect(record_from_db["wpschrge"]).to eq(96.28)
expect(record_from_db["wscharge"]).to eq(97.1)
expect(record_from_db["wrent"]).to eq(97.09)
expect(record_from_db["wtcharge"]).to eq(386.73)
end
end end
context "when rent is paid weekly for 49 weeks" do context "when rent is paid weekly for 49 weeks" do
@ -636,6 +696,21 @@ RSpec.describe CaseLog do
end end
end end
end end
it "correctly derives floats" do
case_log.update!(supcharg: 100.12, pscharge: 100.13, scharge: 100.98, brent: 100.97, period: 6)
record_from_db = ActiveRecord::Base.connection.execute("select wtcharge, wsupchrg, wpschrge, wscharge, wrent from case_logs where id=#{case_log.id}").to_a[0]
expect(case_log.wsupchrg).to eq(94.34)
expect(case_log.wpschrge).to eq(94.35)
expect(case_log.wscharge).to eq(95.15)
expect(case_log.wrent).to eq(95.14)
expect(case_log.wtcharge).to eq(379)
expect(record_from_db["wsupchrg"]).to eq(94.34)
expect(record_from_db["wpschrge"]).to eq(94.35)
expect(record_from_db["wscharge"]).to eq(95.15)
expect(record_from_db["wrent"]).to eq(95.14)
expect(record_from_db["wtcharge"]).to eq(379)
end
end end
context "when rent is paid weekly for 48 weeks" do context "when rent is paid weekly for 48 weeks" do
@ -702,6 +777,21 @@ RSpec.describe CaseLog do
end end
end end
end end
it "correctly derives floats" do
case_log.update!(supcharg: 100.12, pscharge: 100.13, scharge: 100.98, brent: 100.97, period: 7)
record_from_db = ActiveRecord::Base.connection.execute("select wtcharge, wsupchrg, wpschrge, wscharge, wrent from case_logs where id=#{case_log.id}").to_a[0]
expect(case_log.wsupchrg).to eq(92.42)
expect(case_log.wpschrge).to eq(92.43)
expect(case_log.wscharge).to eq(93.21)
expect(case_log.wrent).to eq(93.20)
expect(case_log.wtcharge).to eq(371.26)
expect(record_from_db["wsupchrg"]).to eq(92.42)
expect(record_from_db["wpschrge"]).to eq(92.43)
expect(record_from_db["wscharge"]).to eq(93.21)
expect(record_from_db["wrent"]).to eq(93.20)
expect(record_from_db["wtcharge"]).to eq(371.26)
end
end end
context "when rent is paid weekly for 47 weeks" do context "when rent is paid weekly for 47 weeks" do
@ -768,6 +858,21 @@ RSpec.describe CaseLog do
end end
end end
end end
it "correctly derives floats" do
case_log.update!(supcharg: 100.12, pscharge: 100.13, scharge: 100.98, brent: 100.97, period: 8)
record_from_db = ActiveRecord::Base.connection.execute("select wtcharge, wsupchrg, wpschrge, wscharge, wrent from case_logs where id=#{case_log.id}").to_a[0]
expect(case_log.wsupchrg).to eq(90.49)
expect(case_log.wpschrge).to eq(90.50)
expect(case_log.wscharge).to eq(91.27)
expect(case_log.wrent).to eq(91.26)
expect(case_log.wtcharge).to eq(363.53)
expect(record_from_db["wsupchrg"]).to eq(90.49)
expect(record_from_db["wpschrge"]).to eq(90.50)
expect(record_from_db["wscharge"]).to eq(91.27)
expect(record_from_db["wrent"]).to eq(91.26)
expect(record_from_db["wtcharge"]).to eq(363.53)
end
end end
context "when rent is paid weekly for 46 weeks" do context "when rent is paid weekly for 46 weeks" do
@ -834,6 +939,21 @@ RSpec.describe CaseLog do
end end
end end
end end
it "correctly derives floats" do
case_log.update!(supcharg: 100.12, pscharge: 100.13, scharge: 100.98, brent: 100.97, period: 9)
record_from_db = ActiveRecord::Base.connection.execute("select wtcharge, wsupchrg, wpschrge, wscharge, wrent from case_logs where id=#{case_log.id}").to_a[0]
expect(case_log.wsupchrg).to eq(88.57)
expect(case_log.wpschrge).to eq(88.58)
expect(case_log.wscharge).to eq(89.33)
expect(case_log.wrent).to eq(89.32)
expect(case_log.wtcharge).to eq(355.79)
expect(record_from_db["wsupchrg"]).to eq(88.57)
expect(record_from_db["wpschrge"]).to eq(88.58)
expect(record_from_db["wscharge"]).to eq(89.33)
expect(record_from_db["wrent"]).to eq(89.32)
expect(record_from_db["wtcharge"]).to eq(355.79)
end
end end
context "when rent is paid weekly for 52 weeks" do context "when rent is paid weekly for 52 weeks" do
@ -900,6 +1020,21 @@ RSpec.describe CaseLog do
end end
end end
end end
it "correctly derives floats" do
case_log.update!(supcharg: 100.12, pscharge: 100.13, scharge: 100.98, brent: 100.97, period: 1)
record_from_db = ActiveRecord::Base.connection.execute("select wtcharge, wsupchrg, wpschrge, wscharge, wrent from case_logs where id=#{case_log.id}").to_a[0]
expect(case_log.wsupchrg).to eq(100.12)
expect(case_log.wpschrge).to eq(100.13)
expect(case_log.wscharge).to eq(100.98)
expect(case_log.wrent).to eq(100.97)
expect(case_log.wtcharge).to eq(402.2)
expect(record_from_db["wsupchrg"]).to eq(100.12)
expect(record_from_db["wpschrge"]).to eq(100.13)
expect(record_from_db["wscharge"]).to eq(100.98)
expect(record_from_db["wrent"]).to eq(100.97)
expect(record_from_db["wtcharge"]).to eq(402.2)
end
end end
end end

Loading…
Cancel
Save