spec/lib/loan_spec.rb in finance_math-1.0.1 vs spec/lib/loan_spec.rb in finance_math-1.0.2
- old
+ new
@@ -1,109 +1,109 @@
require 'spec_helper'
describe Loan do
it "should return initial set nominal rate" do
- loan = Loan.new(10, 12, 1000)
+ loan = Loan.new(nominal_rate: 10, duration: 12, amount: 1000)
expect(loan.nominal_rate).to eq(10)
end
it "should return initial set duration period" do
- loan = Loan.new(10, 12, 1000)
+ loan = Loan.new(nominal_rate: 10, duration: 12, amount: 1000)
expect(loan.duration).to eq(12)
end
it "should return initial set amount loaned" do
- loan = Loan.new(10, 12, 1000)
+ loan = Loan.new(nominal_rate: 10, duration: 12, amount: 1000)
expect(loan.amount).to eq(1000)
end
context ".pmt" do
it "should return correct pmt value" do
- loan = Loan.new(10, 12, 1000)
+ loan = Loan.new(nominal_rate: 10, duration: 12, amount: 1000)
expect(loan.pmt).to eq(87.9158872300099)
end
it "should return correct pmt value" do
- loan = Loan.new(0, 12, 1200)
+ loan = Loan.new(nominal_rate: 0, duration: 12, amount: 1200)
expect(loan.pmt).to eq(100)
end
it "should return correct pmt value" do
- loan = Loan.new(0, 36, 10000)
+ loan = Loan.new(nominal_rate: 0, duration: 36, amount: 10000)
expect(loan.pmt).to eq(277.77777777777777)
end
it "should return correct pmt value" do
- loan = Loan.new(0, 6, 10000)
+ loan = Loan.new(nominal_rate: 0, duration: 6, amount: 10000)
expect(loan.pmt).to eq(1666.6666666666667)
end
it "should return correct pmt value" do
- loan = Loan.new(13, 90, 1000000)
+ loan = Loan.new(nominal_rate: 13, duration: 90, amount: 1000000)
expect(loan.pmt).to eq(17449.90775727763)
end
end
context ".apr, edge cases" do
it "should return correct apr value" do
- loan = Loan.new(16, 24, 9200)
+ loan = Loan.new(nominal_rate: 16, duration: 24, amount: 9200)
expect(loan.apr).to eq(24.699310868498614)
end
it "should return correct apr value" do
- loan = Loan.new(13, 24, 10000)
+ loan = Loan.new(nominal_rate: 13, duration: 24, amount: 10000)
expect(loan.apr).to eq(21.589972932434698)
end
it "should return correct apr value" do
- loan = Loan.new(13, 18, 10000)
+ loan = Loan.new(nominal_rate: 13, duration: 18, amount: 10000)
expect(loan.apr).to eq(24.1815502466296)
end
it "should return correct apr value" do
- loan = Loan.new(13, 12, 10000)
+ loan = Loan.new(nominal_rate: 13, duration: 12, amount: 10000)
expect(loan.apr).to eq(29.179538647635006)
end
it "should return correct apr value" do
- loan = Loan.new(13, 6, 10000)
+ loan = Loan.new(nominal_rate: 13, duration: 6, amount: 10000)
expect(loan.apr).to eq(42.82076503747119)
end
it "should return correct apr value" do
- loan = Loan.new(13, 36, 10000)
+ loan = Loan.new(nominal_rate: 13, duration: 36, amount: 10000)
expect(loan.apr).to eq(18.93638316167774)
end
it "should return correct apr value" do
- loan = Loan.new(13, 90, 10000000)
+ loan = Loan.new(nominal_rate: 13, duration: 90, amount: 10000000)
expect(loan.apr).to eq(15.690778147507167)
end
it "should return correct apr value" do
- loan = Loan.new(13, 90, 50000000)
+ loan = Loan.new(nominal_rate: 13, duration: 90, amount: 50000000)
expect(loan.apr).to eq(15.690778147507167)
end
it "should return correct apr value" do
- loan = Loan.new(13, 1, 50000000)
+ loan = Loan.new(nominal_rate: 13, duration: 1, amount: 50000000)
expect(loan.apr).to eq(118.47826151517138)
end
it "should return correct apr value" do
- loan = Loan.new(80, 1, 1000)
+ loan = Loan.new(nominal_rate: 80, duration: 1, amount: 1000)
expect(loan.apr).to eq(191.30434783476406)
end
it "should return correct apr value" do
- loan = Loan.new(36, 200, 500)
+ loan = Loan.new(nominal_rate: 36, duration: 200, amount: 500)
expect(loan.apr).to eq(39.173057290003044)
end
it "should return correct apr value" do
- loan = Loan.new(15, 36, 10000, 5, 3, 10)
+ loan = Loan.new(nominal_rate: 15, duration: 36, amount: 10000, structure_fee: 5, currency_protection: 3, fee: 10)
expect(loan.apr).to eq(23.964418264624054)
end
end
end
\ No newline at end of file