creditu-common-library 1.2.8 → 1.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -28,7 +28,7 @@ var InsuranceService = /** @class */ (function () {
|
|
|
28
28
|
var lifeInsurancePeriods = getLifeInsurancePeriods(IPCAmap);
|
|
29
29
|
if (propertyInsuranceRate.value() === 0)
|
|
30
30
|
throw new Error('Invalid property insurance rate');
|
|
31
|
-
var propertyInsurance = this.math.multiply(propertyAmount,
|
|
31
|
+
var propertyInsurance = this.math.multiply(propertyAmount, propertyInsuranceRate.value());
|
|
32
32
|
return this.math.round(this.math.multiply(propertyInsurance, lifeInsurancePeriods), 2);
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
@@ -40,7 +40,7 @@ var InsuranceService = /** @class */ (function () {
|
|
|
40
40
|
guarder_1.Guarder.defined(lifeInsuranceRate, 'CreditInsuranceRate');
|
|
41
41
|
if (lifeInsuranceRate.value() === 0)
|
|
42
42
|
throw new Error('Invalid life insurance rate');
|
|
43
|
-
var lifeInsurance = this.math.multiply(balance,
|
|
43
|
+
var lifeInsurance = this.math.multiply(balance, lifeInsuranceRate.value());
|
|
44
44
|
var result = this.math.round(lifeInsurance, 2);
|
|
45
45
|
return result;
|
|
46
46
|
};
|
package/package.json
CHANGED
|
@@ -92,10 +92,10 @@ describe('installment-service for german method', () => {
|
|
|
92
92
|
const numberOfMonths = new NumberOfMonths(360);
|
|
93
93
|
const previousBalance = new PreviousBalance(129600);
|
|
94
94
|
const annualRate = 0.075;
|
|
95
|
-
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.
|
|
95
|
+
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.00017);
|
|
96
96
|
const inflationaryUpperBound = 0.001;
|
|
97
97
|
const propertyAmount = 160000;
|
|
98
|
-
const propertyInsuranceRate = new CreditInsuranceRate(0.
|
|
98
|
+
const propertyInsuranceRate = new CreditInsuranceRate(0.00003);
|
|
99
99
|
const IPCAmap = {
|
|
100
100
|
'2021-12-23': 0.0125,
|
|
101
101
|
'2022-01-05': 0.0095
|
|
@@ -189,10 +189,10 @@ describe('installment-service for german method', () => {
|
|
|
189
189
|
const numberOfMonths = new NumberOfMonths(360);
|
|
190
190
|
const previousBalance = new PreviousBalance(129600);
|
|
191
191
|
const annualRate = 0.075;
|
|
192
|
-
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.
|
|
192
|
+
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.00017);
|
|
193
193
|
const inflationaryUpperBound = 1;
|
|
194
194
|
const propertyAmount = 160000;
|
|
195
|
-
const propertyInsuranceRate = new CreditInsuranceRate(0.
|
|
195
|
+
const propertyInsuranceRate = new CreditInsuranceRate(0.00003);
|
|
196
196
|
const IPCAmap = {
|
|
197
197
|
'2021-12-23': 0.0125,
|
|
198
198
|
'2022-01-05': 0.0095
|
|
@@ -296,10 +296,10 @@ describe('installment-service for german method', () => {
|
|
|
296
296
|
const numberOfMonths = new NumberOfMonths(360);
|
|
297
297
|
const previousBalance = new PreviousBalance(129600);
|
|
298
298
|
const annualRate = 0.075;
|
|
299
|
-
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.
|
|
299
|
+
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.00017);
|
|
300
300
|
const inflationaryUpperBound = 1;
|
|
301
301
|
const propertyAmount = 160000;
|
|
302
|
-
const propertyInsuranceRate = new CreditInsuranceRate(0.
|
|
302
|
+
const propertyInsuranceRate = new CreditInsuranceRate(0.00003);
|
|
303
303
|
const IPCAmap = {
|
|
304
304
|
'2021-12-23': 0.0125,
|
|
305
305
|
'2022-01-05': 0.0095
|
|
@@ -432,10 +432,10 @@ describe('installment-service for german method', () => {
|
|
|
432
432
|
const numberOfMonths = new NumberOfMonths(360);
|
|
433
433
|
const previousBalance = new PreviousBalance(129240.00);
|
|
434
434
|
const annualRate = 0.075;
|
|
435
|
-
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.
|
|
435
|
+
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.00017);
|
|
436
436
|
const inflationaryUpperBound = 1;
|
|
437
437
|
const propertyAmount = 160000;
|
|
438
|
-
const propertyInsuranceRate = new CreditInsuranceRate(0.
|
|
438
|
+
const propertyInsuranceRate = new CreditInsuranceRate(0.00003);
|
|
439
439
|
const IPCAmap = {
|
|
440
440
|
'2021-01-05': 0.0095,
|
|
441
441
|
'2022-02-05': 0.0073
|
|
@@ -569,10 +569,10 @@ describe('installment-service for german method', () => {
|
|
|
569
569
|
const numberOfMonths = new NumberOfMonths(360);
|
|
570
570
|
const previousBalance = new PreviousBalance(129240);
|
|
571
571
|
const annualRate = 0.075;
|
|
572
|
-
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.
|
|
572
|
+
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.00017);
|
|
573
573
|
const inflationaryUpperBound = 0.005;
|
|
574
574
|
const propertyAmount = 160000;
|
|
575
|
-
const propertyInsuranceRate = new CreditInsuranceRate(0.
|
|
575
|
+
const propertyInsuranceRate = new CreditInsuranceRate(0.00003);
|
|
576
576
|
const IPCAmap = {
|
|
577
577
|
'2021-01-05': 0.0095,
|
|
578
578
|
'2022-02-05': 0.0073
|
|
@@ -879,10 +879,10 @@ describe('installment-service for german method', () => {
|
|
|
879
879
|
const numberOfMonths = new NumberOfMonths(360);
|
|
880
880
|
const previousBalance = new PreviousBalance(129240.00);
|
|
881
881
|
const annualRate = 0.075;
|
|
882
|
-
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.
|
|
882
|
+
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.00017);
|
|
883
883
|
const inflationaryUpperBound = 0.005;
|
|
884
884
|
const propertyAmount = 160000;
|
|
885
|
-
const propertyInsuranceRate = new CreditInsuranceRate(0.
|
|
885
|
+
const propertyInsuranceRate = new CreditInsuranceRate(0.00003);
|
|
886
886
|
const IPCAmap = { '2022-01-05': 0.0095, '2022-02-05': 0.0073 };
|
|
887
887
|
const inputs: DebtInputs = {
|
|
888
888
|
amortizationMethod,
|
|
@@ -901,7 +901,110 @@ describe('installment-service for german method', () => {
|
|
|
901
901
|
const result = service.getTotalMonthlyPayment(inputs, params);
|
|
902
902
|
expect(result).toEqual(expectedResult);
|
|
903
903
|
});
|
|
904
|
+
it('WEDSON caso productivo 1ra cuota', () => {
|
|
905
|
+
const expectedResult = {
|
|
906
|
+
IPCAByDates: [
|
|
907
|
+
{ date: '2021-12-23', ipca: 0.0125, dailyIPCA: 0.0004008068 },
|
|
908
|
+
{ date: '2021-12-24', ipca: 0.0125, dailyIPCA: 0.0004008068 },
|
|
909
|
+
{ date: '2021-12-25', ipca: 0.0125, dailyIPCA: 0.0004008068 },
|
|
910
|
+
{ date: '2021-12-26', ipca: 0.0125, dailyIPCA: 0.0004008068 },
|
|
911
|
+
{ date: '2021-12-27', ipca: 0.0125, dailyIPCA: 0.0004008068 },
|
|
912
|
+
{ date: '2021-12-28', ipca: 0.0125, dailyIPCA: 0.0004008068 },
|
|
913
|
+
{ date: '2021-12-29', ipca: 0.0125, dailyIPCA: 0.0004008068 },
|
|
914
|
+
{ date: '2021-12-30', ipca: 0.0125, dailyIPCA: 0.0004008068 },
|
|
915
|
+
{ date: '2021-12-31', ipca: 0.0125, dailyIPCA: 0.0004008068 },
|
|
916
|
+
{ date: '2022-01-01', ipca: 0.0095, dailyIPCA: 0.0003050516 },
|
|
917
|
+
{ date: '2022-01-02', ipca: 0.0095, dailyIPCA: 0.0003050516 },
|
|
918
|
+
{ date: '2022-01-03', ipca: 0.0095, dailyIPCA: 0.0003050516 },
|
|
919
|
+
{ date: '2022-01-04', ipca: 0.0095, dailyIPCA: 0.0003050516 },
|
|
920
|
+
{ date: '2022-01-05', ipca: 0.0095, dailyIPCA: 0.0003050516 }
|
|
921
|
+
],
|
|
922
|
+
balanceValues: {
|
|
923
|
+
balances: [
|
|
924
|
+
129651.94456128,
|
|
925
|
+
129703.9099422934,
|
|
926
|
+
129755.8961513849,
|
|
927
|
+
129807.9031969025,
|
|
928
|
+
129859.9310871976,
|
|
929
|
+
129911.9798306249,
|
|
930
|
+
129964.0494355425,
|
|
931
|
+
130016.1399103118,
|
|
932
|
+
130055.8015418173,
|
|
933
|
+
130095.4752721669,
|
|
934
|
+
130135.1611050514,
|
|
935
|
+
130174.8590441628,
|
|
936
|
+
130214.569093194
|
|
937
|
+
],
|
|
938
|
+
balanceMonetaryUpdateValues: [
|
|
939
|
+
51.94456128, 51.9653810134,
|
|
940
|
+
51.9862090915, 52.0070455176,
|
|
941
|
+
52.0278902951, 52.0487434273,
|
|
942
|
+
52.0696049176, 52.0904747693,
|
|
943
|
+
39.6616315055, 39.6737303496,
|
|
944
|
+
39.6858328845, 39.6979391114,
|
|
945
|
+
39.7100490312
|
|
946
|
+
],
|
|
947
|
+
balanceUpperBoundMonetaryUpdateValues: [
|
|
948
|
+
0, 0, 0, 0, 0, 0,
|
|
949
|
+
0, 0, 0, 0, 0, 0,
|
|
950
|
+
0
|
|
951
|
+
],
|
|
952
|
+
inflationaryBoundDifferenceValues: [
|
|
953
|
+
0, 0, 0, 0, 0, 0,
|
|
954
|
+
0, 0, 0, 0, 0, 0,
|
|
955
|
+
0
|
|
956
|
+
]
|
|
957
|
+
},
|
|
958
|
+
balance: 130214.569093194,
|
|
959
|
+
balanceAfter: 129240.00286363,
|
|
960
|
+
ipcaUpdate: 614.569093194,
|
|
961
|
+
dailyRate: 0.0002009109,
|
|
962
|
+
interest: 330.09,
|
|
963
|
+
monthlyPayment: 1304.656229564,
|
|
964
|
+
monthlyPaymentWithInsurances: 1331.596229564,
|
|
965
|
+
amortization: 361.70713637,
|
|
966
|
+
amortizationIPCA: 612.859093194,
|
|
967
|
+
debtorLifeInsuranceFee: 22.14,
|
|
968
|
+
codebtorLifeInsuranceFee: 0,
|
|
969
|
+
propertyInsuranceFee: 4.8
|
|
970
|
+
};
|
|
971
|
+
const amortizationMethod = AmortizationMethod.GERMAN;
|
|
972
|
+
const paymentNumber = new PaymentNumber(1);
|
|
973
|
+
const numberOfMonths = new NumberOfMonths(360);
|
|
974
|
+
const previousBalance = new PreviousBalance(129600);
|
|
975
|
+
const annualRate = 0.075;
|
|
976
|
+
// const debtorLifeInsuranceRate = new CreditInsuranceRate(0.00017); // 0.00017
|
|
977
|
+
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.00017); // 0.00017
|
|
978
|
+
const inflationaryUpperBound = 1;
|
|
979
|
+
const propertyAmount = 160000;
|
|
980
|
+
// const propertyInsuranceRate = new CreditInsuranceRate(0.00003); // 0.00003
|
|
981
|
+
const propertyInsuranceRate = new CreditInsuranceRate(0.00003); // 0.00003
|
|
982
|
+
// const IPCAmap = { '2022-01-05': 0.0095, '2022-02-05': 0.0073 };
|
|
983
|
+
const IPCAmap = {
|
|
984
|
+
// '2021-12-23': 1.25,
|
|
985
|
+
'2021-12-23': 0.0125,
|
|
986
|
+
// '2022-01-05': 0.95,
|
|
987
|
+
'2022-01-05': 0.0095
|
|
988
|
+
};
|
|
989
|
+
const inputs: DebtInputs = {
|
|
990
|
+
amortizationMethod,
|
|
991
|
+
paymentNumber,
|
|
992
|
+
numberOfMonths,
|
|
993
|
+
previousBalance,
|
|
994
|
+
inflationaryUpperBound,
|
|
995
|
+
propertyAmount,
|
|
996
|
+
IPCAmap
|
|
997
|
+
};
|
|
998
|
+
const params: DebtParams = {
|
|
999
|
+
annualRate,
|
|
1000
|
+
debtorLifeInsuranceRate,
|
|
1001
|
+
propertyInsuranceRate
|
|
1002
|
+
};
|
|
1003
|
+
const result = service.getTotalMonthlyPayment(inputs, params);
|
|
1004
|
+
expect(expectedResult).toEqual(result);
|
|
1005
|
+
});
|
|
904
1006
|
});
|
|
1007
|
+
|
|
905
1008
|
describe('installment-service for french method', () => {
|
|
906
1009
|
const service = new InstallmentService(new MathService(true, 10));
|
|
907
1010
|
it('Alitio (inflationaryUpperBound 1) should return the calculated installment', () => {
|
|
@@ -979,10 +1082,10 @@ describe('installment-service for french method', () => {
|
|
|
979
1082
|
const numberOfMonths = new NumberOfMonths(162);
|
|
980
1083
|
const previousBalance = new PreviousBalance(480000.00); //
|
|
981
1084
|
const annualRate = 0.085;
|
|
982
|
-
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.
|
|
1085
|
+
const debtorLifeInsuranceRate = new CreditInsuranceRate(0.00017);
|
|
983
1086
|
const inflationaryUpperBound = 1;
|
|
984
1087
|
const propertyAmount = 845000;
|
|
985
|
-
const propertyInsuranceRate = new CreditInsuranceRate(0.
|
|
1088
|
+
const propertyInsuranceRate = new CreditInsuranceRate(0.00003);
|
|
986
1089
|
const IPCAmap = { '2022-01-19': 0.0095, '2022-02-05': 0.0073 };
|
|
987
1090
|
const inputs: DebtInputs = {
|
|
988
1091
|
amortizationMethod,
|