auto calculate props in preparedValues
This commit is contained in:
parent
1492cca5ae
commit
4b4e118013
@ -58,7 +58,7 @@ namespace EvoCalculator.Core.Models.Calculation.Models.Prepared
|
||||
public decimal InsuranceKasko { get; set; }
|
||||
public int NmperInsurance { get; set; }
|
||||
public decimal InsuranceOsago { get; set; }
|
||||
public decimal Insurance { get; set; }
|
||||
public decimal Insurance => InsuranceOsago + InsuranceKasko;
|
||||
public decimal InsuranceKaskoNmper { get; set; }
|
||||
public decimal InsuranceContract { get; set; }
|
||||
public decimal InsuranceBonus { get; set; }
|
||||
@ -76,7 +76,7 @@ namespace EvoCalculator.Core.Models.Calculation.Models.Prepared
|
||||
public decimal RatBonus { get; set; }
|
||||
public decimal NsBonus { get; set; }
|
||||
public decimal NsibBonus { get; set; }
|
||||
public decimal NiAtInception { get; set; }
|
||||
public decimal NiAtInception => AcquisitionExpenses - FirstPaymentSum;
|
||||
public decimal AgentsSum { get; set; }
|
||||
public decimal DoubleAgentsSum { get; set; }
|
||||
public decimal DeliverySum { get; set; }
|
||||
@ -84,15 +84,59 @@ namespace EvoCalculator.Core.Models.Calculation.Models.Prepared
|
||||
public decimal BrokerOfDeliverySum { get; set; }
|
||||
public decimal FinancialDeptOfDeliverySum { get; set; }
|
||||
public decimal ImporterSum { get; set; }
|
||||
public decimal CalculationCost { get; set; }
|
||||
public decimal PriceUpTotal { get; set; }
|
||||
public decimal AcquisitionExpenses { get; set; }
|
||||
public decimal NpvBase { get; set; }
|
||||
|
||||
public decimal CalculationCost => PlPrice +
|
||||
(Insurance + Rats + Registration + TrackerCost +
|
||||
TLMCost + TransportTaxGr) * (decimal) Leasing0K;
|
||||
|
||||
public decimal TlmCostPaymentSum { get; set; }
|
||||
public decimal GpsCostPaymentSum { get; set; }
|
||||
|
||||
public decimal PriceUpTotal => PlPrice +
|
||||
TrackerCost +
|
||||
TLMCost +
|
||||
TlmCostPaymentSum +
|
||||
GpsCostPaymentSum +
|
||||
Registration +
|
||||
InsuranceContract +
|
||||
Rats +
|
||||
NsibBrutto +
|
||||
TransportTaxGr;
|
||||
|
||||
public decimal AcquisitionExpenses => PlPrice + Insurance - ComissionRub + Discount + TrackerCost + TLMCost +
|
||||
BaseRegistration + Rats;
|
||||
|
||||
public decimal NpvBase => PlPrice +
|
||||
((NsibNetto * 12) / Nmper +
|
||||
Insurance +
|
||||
BaseRegistration +
|
||||
TrackerCost +
|
||||
TLMCost +
|
||||
Rats -
|
||||
Discount -
|
||||
ComissionRub -
|
||||
FirstPaymentSum);
|
||||
|
||||
public decimal TLMCost { get; set; }
|
||||
public double IRR_MSFO_Plan { get; set; }
|
||||
public double ExtraBonus { get; set; }
|
||||
public double DirectorBonus { get; set; }
|
||||
public double DogCredit { get; set; }
|
||||
public double DogCreditLeasing { get; set; }
|
||||
|
||||
public decimal DogCredit => PlPrice +
|
||||
(Insurance + Rats + Registration + TrackerCost + TLMCost + TransportTaxGr) *
|
||||
(decimal) Leasing0K -
|
||||
FirstPaymentSum +
|
||||
(NsibNetto * 12) / Nmper -
|
||||
(Leasing0K != 1 ? 0 : Discount);
|
||||
|
||||
public decimal DogCreditLeasing => PlPrice +
|
||||
Insurance +
|
||||
Registration +
|
||||
TrackerCost +
|
||||
TLMCost +
|
||||
Rats -
|
||||
Discount -
|
||||
ComissionRub -
|
||||
FirstPaymentSum;
|
||||
}
|
||||
}
|
||||
@ -1,302 +1,302 @@
|
||||
using System;
|
||||
using EvoCalculator.Core.Calculation.Columns;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
{
|
||||
public class CashflowLeasingTests
|
||||
{
|
||||
[Fact]
|
||||
public void CashflowLeasingTest1()
|
||||
{
|
||||
var preparedValues = new PreparedValues
|
||||
{
|
||||
Nmper = 25,
|
||||
AcquisitionExpenses = 2507300
|
||||
};
|
||||
|
||||
var dateTempColumn = new DateTempColumn(67)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
new DateTime(2018, 10, 31),
|
||||
new DateTime(2018, 10, 31),
|
||||
new DateTime(2018, 11, 30),
|
||||
new DateTime(2018, 12, 31),
|
||||
new DateTime(2019, 1, 31),
|
||||
new DateTime(2019, 2, 28),
|
||||
new DateTime(2019, 3, 31),
|
||||
new DateTime(2019, 4, 30),
|
||||
new DateTime(2019, 5, 31),
|
||||
new DateTime(2019, 6, 30),
|
||||
new DateTime(2019, 7, 31),
|
||||
new DateTime(2019, 8, 31),
|
||||
new DateTime(2019, 9, 30),
|
||||
new DateTime(2019, 10, 31),
|
||||
new DateTime(2019, 11, 30),
|
||||
new DateTime(2019, 12, 31),
|
||||
new DateTime(2020, 1, 31),
|
||||
new DateTime(2020, 2, 29),
|
||||
new DateTime(2020, 3, 31),
|
||||
new DateTime(2020, 4, 30),
|
||||
new DateTime(2020, 5, 31),
|
||||
new DateTime(2020, 6, 30),
|
||||
new DateTime(2020, 7, 31),
|
||||
new DateTime(2020, 8, 31),
|
||||
new DateTime(2020, 9, 30),
|
||||
new DateTime(2020, 10, 31),
|
||||
new DateTime(2020, 11, 30),
|
||||
new DateTime(2020, 12, 31),
|
||||
new DateTime(2021, 1, 31),
|
||||
new DateTime(2021, 2, 28),
|
||||
new DateTime(2021, 3, 31),
|
||||
new DateTime(2021, 4, 30),
|
||||
new DateTime(2021, 5, 31),
|
||||
new DateTime(2021, 6, 30),
|
||||
new DateTime(2021, 7, 31),
|
||||
new DateTime(2021, 8, 31),
|
||||
new DateTime(2021, 9, 30),
|
||||
new DateTime(2021, 10, 31),
|
||||
new DateTime(2021, 11, 30),
|
||||
new DateTime(2021, 12, 31),
|
||||
new DateTime(2022, 1, 31),
|
||||
new DateTime(2022, 2, 28),
|
||||
new DateTime(2022, 3, 31),
|
||||
new DateTime(2022, 4, 30),
|
||||
new DateTime(2022, 5, 31),
|
||||
new DateTime(2022, 6, 30),
|
||||
new DateTime(2022, 7, 31),
|
||||
new DateTime(2022, 8, 31),
|
||||
new DateTime(2022, 9, 30),
|
||||
new DateTime(2022, 10, 31),
|
||||
new DateTime(2022, 11, 30),
|
||||
new DateTime(2022, 12, 31),
|
||||
new DateTime(2023, 1, 31),
|
||||
new DateTime(2023, 2, 28),
|
||||
new DateTime(2023, 3, 31),
|
||||
new DateTime(2023, 4, 30),
|
||||
new DateTime(2023, 5, 31),
|
||||
new DateTime(2023, 6, 30),
|
||||
new DateTime(2023, 7, 31),
|
||||
new DateTime(2023, 8, 31),
|
||||
new DateTime(2023, 9, 30),
|
||||
new DateTime(2023, 10, 31),
|
||||
new DateTime(2023, 11, 30),
|
||||
new DateTime(2023, 12, 31),
|
||||
new DateTime(2024, 1, 31),
|
||||
new DateTime(2024, 2, 29),
|
||||
new DateTime(2024, 3, 31)
|
||||
}
|
||||
};
|
||||
|
||||
var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn, preparedValues, null, null)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-2542903.66268442m,
|
||||
625000,
|
||||
120000,
|
||||
120000,
|
||||
120000,
|
||||
120000,
|
||||
120000,
|
||||
120000,
|
||||
120000,
|
||||
120000,
|
||||
120000,
|
||||
120000,
|
||||
108000,
|
||||
108000,
|
||||
108000,
|
||||
108000,
|
||||
108000,
|
||||
108000,
|
||||
108000,
|
||||
108000,
|
||||
108000,
|
||||
108000,
|
||||
108000,
|
||||
96000,
|
||||
96000,
|
||||
25000
|
||||
}
|
||||
};
|
||||
|
||||
var negativeCashFlowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-110416.666666667m,
|
||||
-53000,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
-57416.6666666667m,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
var nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
26730.2083333333m,
|
||||
0.00m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m,
|
||||
1113.75868055556m
|
||||
}
|
||||
};
|
||||
|
||||
var tlmGrColumn = new TLM_GrColumn(preparedValues.Nmper + 1, dateTempColumn, 0)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-18562.8003994563m,
|
||||
0.00m,
|
||||
1800m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m,
|
||||
900m
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
var gpsGrColumn = new GPS_GrColumn(preparedValues.Nmper + 1, dateTempColumn, 0)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-20625.3337771737m,
|
||||
0.00m,
|
||||
2000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m,
|
||||
1000m
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
var cashflowLeasingColumn = new CashflowLeasingColumn(preparedValues.Nmper + 1, dateTempColumn);
|
||||
cashflowLeasingColumn.ComputeValues(preparedValues, sumColumn, negativeCashFlowColumn, nsibBruttoGrColumn,
|
||||
tlmGrColumn,
|
||||
gpsGrColumn);
|
||||
|
||||
|
||||
var expected = new[]
|
||||
{
|
||||
-2507300m,
|
||||
625000m,
|
||||
115086.241319444m,
|
||||
116986.241319444m,
|
||||
116986.241319444m,
|
||||
116986.241319444m,
|
||||
116986.241319444m,
|
||||
116986.241319444m,
|
||||
116986.241319444m,
|
||||
116986.241319444m,
|
||||
116986.241319444m,
|
||||
116986.241319444m,
|
||||
104986.241319444m,
|
||||
47569.5746527778m,
|
||||
104986.241319444m,
|
||||
104986.241319444m,
|
||||
104986.241319444m,
|
||||
104986.241319444m,
|
||||
104986.241319444m,
|
||||
104986.241319444m,
|
||||
104986.241319444m,
|
||||
104986.241319444m,
|
||||
104986.241319444m,
|
||||
92986.2413194444m,
|
||||
92986.2413194444m,
|
||||
21986.2413194444m
|
||||
};
|
||||
|
||||
|
||||
Assert.Equal(expected.Length, cashflowLeasingColumn.Values.Length);
|
||||
Assert.Equal(0.342274123430252, cashflowLeasingColumn.IRR, new DoubleArrayComparer(0.01));
|
||||
Assert.Equal(expected, cashflowLeasingColumn.Values, new DecimalArrayComparer());
|
||||
}
|
||||
}
|
||||
}
|
||||
// using System;
|
||||
// using EvoCalculator.Core.Calculation.Columns;
|
||||
// using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
// using Xunit;
|
||||
//
|
||||
// namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
// {
|
||||
// public class CashflowLeasingTests
|
||||
// {
|
||||
// [Fact]
|
||||
// public void CashflowLeasingTest1()
|
||||
// {
|
||||
// var preparedValues = new PreparedValues
|
||||
// {
|
||||
// Nmper = 25,
|
||||
// AcquisitionExpenses = 2507300
|
||||
// };
|
||||
//
|
||||
// var dateTempColumn = new DateTempColumn(67)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// new DateTime(2018, 10, 31),
|
||||
// new DateTime(2018, 10, 31),
|
||||
// new DateTime(2018, 11, 30),
|
||||
// new DateTime(2018, 12, 31),
|
||||
// new DateTime(2019, 1, 31),
|
||||
// new DateTime(2019, 2, 28),
|
||||
// new DateTime(2019, 3, 31),
|
||||
// new DateTime(2019, 4, 30),
|
||||
// new DateTime(2019, 5, 31),
|
||||
// new DateTime(2019, 6, 30),
|
||||
// new DateTime(2019, 7, 31),
|
||||
// new DateTime(2019, 8, 31),
|
||||
// new DateTime(2019, 9, 30),
|
||||
// new DateTime(2019, 10, 31),
|
||||
// new DateTime(2019, 11, 30),
|
||||
// new DateTime(2019, 12, 31),
|
||||
// new DateTime(2020, 1, 31),
|
||||
// new DateTime(2020, 2, 29),
|
||||
// new DateTime(2020, 3, 31),
|
||||
// new DateTime(2020, 4, 30),
|
||||
// new DateTime(2020, 5, 31),
|
||||
// new DateTime(2020, 6, 30),
|
||||
// new DateTime(2020, 7, 31),
|
||||
// new DateTime(2020, 8, 31),
|
||||
// new DateTime(2020, 9, 30),
|
||||
// new DateTime(2020, 10, 31),
|
||||
// new DateTime(2020, 11, 30),
|
||||
// new DateTime(2020, 12, 31),
|
||||
// new DateTime(2021, 1, 31),
|
||||
// new DateTime(2021, 2, 28),
|
||||
// new DateTime(2021, 3, 31),
|
||||
// new DateTime(2021, 4, 30),
|
||||
// new DateTime(2021, 5, 31),
|
||||
// new DateTime(2021, 6, 30),
|
||||
// new DateTime(2021, 7, 31),
|
||||
// new DateTime(2021, 8, 31),
|
||||
// new DateTime(2021, 9, 30),
|
||||
// new DateTime(2021, 10, 31),
|
||||
// new DateTime(2021, 11, 30),
|
||||
// new DateTime(2021, 12, 31),
|
||||
// new DateTime(2022, 1, 31),
|
||||
// new DateTime(2022, 2, 28),
|
||||
// new DateTime(2022, 3, 31),
|
||||
// new DateTime(2022, 4, 30),
|
||||
// new DateTime(2022, 5, 31),
|
||||
// new DateTime(2022, 6, 30),
|
||||
// new DateTime(2022, 7, 31),
|
||||
// new DateTime(2022, 8, 31),
|
||||
// new DateTime(2022, 9, 30),
|
||||
// new DateTime(2022, 10, 31),
|
||||
// new DateTime(2022, 11, 30),
|
||||
// new DateTime(2022, 12, 31),
|
||||
// new DateTime(2023, 1, 31),
|
||||
// new DateTime(2023, 2, 28),
|
||||
// new DateTime(2023, 3, 31),
|
||||
// new DateTime(2023, 4, 30),
|
||||
// new DateTime(2023, 5, 31),
|
||||
// new DateTime(2023, 6, 30),
|
||||
// new DateTime(2023, 7, 31),
|
||||
// new DateTime(2023, 8, 31),
|
||||
// new DateTime(2023, 9, 30),
|
||||
// new DateTime(2023, 10, 31),
|
||||
// new DateTime(2023, 11, 30),
|
||||
// new DateTime(2023, 12, 31),
|
||||
// new DateTime(2024, 1, 31),
|
||||
// new DateTime(2024, 2, 29),
|
||||
// new DateTime(2024, 3, 31)
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn, preparedValues, null, null)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -2542903.66268442m,
|
||||
// 625000,
|
||||
// 120000,
|
||||
// 120000,
|
||||
// 120000,
|
||||
// 120000,
|
||||
// 120000,
|
||||
// 120000,
|
||||
// 120000,
|
||||
// 120000,
|
||||
// 120000,
|
||||
// 120000,
|
||||
// 108000,
|
||||
// 108000,
|
||||
// 108000,
|
||||
// 108000,
|
||||
// 108000,
|
||||
// 108000,
|
||||
// 108000,
|
||||
// 108000,
|
||||
// 108000,
|
||||
// 108000,
|
||||
// 108000,
|
||||
// 96000,
|
||||
// 96000,
|
||||
// 25000
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var negativeCashFlowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -110416.666666667m,
|
||||
// -53000,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// -57416.6666666667m,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// 26730.2083333333m,
|
||||
// 0.00m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m,
|
||||
// 1113.75868055556m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var tlmGrColumn = new TLM_GrColumn(preparedValues.Nmper + 1, dateTempColumn, 0)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -18562.8003994563m,
|
||||
// 0.00m,
|
||||
// 1800m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m,
|
||||
// 900m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// var gpsGrColumn = new GPS_GrColumn(preparedValues.Nmper + 1, dateTempColumn, 0)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -20625.3337771737m,
|
||||
// 0.00m,
|
||||
// 2000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m,
|
||||
// 1000m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// var cashflowLeasingColumn = new CashflowLeasingColumn(preparedValues.Nmper + 1, dateTempColumn);
|
||||
// cashflowLeasingColumn.ComputeValues(preparedValues, sumColumn, negativeCashFlowColumn, nsibBruttoGrColumn,
|
||||
// tlmGrColumn,
|
||||
// gpsGrColumn);
|
||||
//
|
||||
//
|
||||
// var expected = new[]
|
||||
// {
|
||||
// -2507300m,
|
||||
// 625000m,
|
||||
// 115086.241319444m,
|
||||
// 116986.241319444m,
|
||||
// 116986.241319444m,
|
||||
// 116986.241319444m,
|
||||
// 116986.241319444m,
|
||||
// 116986.241319444m,
|
||||
// 116986.241319444m,
|
||||
// 116986.241319444m,
|
||||
// 116986.241319444m,
|
||||
// 116986.241319444m,
|
||||
// 104986.241319444m,
|
||||
// 47569.5746527778m,
|
||||
// 104986.241319444m,
|
||||
// 104986.241319444m,
|
||||
// 104986.241319444m,
|
||||
// 104986.241319444m,
|
||||
// 104986.241319444m,
|
||||
// 104986.241319444m,
|
||||
// 104986.241319444m,
|
||||
// 104986.241319444m,
|
||||
// 104986.241319444m,
|
||||
// 92986.2413194444m,
|
||||
// 92986.2413194444m,
|
||||
// 21986.2413194444m
|
||||
// };
|
||||
//
|
||||
//
|
||||
// Assert.Equal(expected.Length, cashflowLeasingColumn.Values.Length);
|
||||
// Assert.Equal(0.342274123430252, cashflowLeasingColumn.IRR, new DoubleArrayComparer(0.01));
|
||||
// Assert.Equal(expected, cashflowLeasingColumn.Values, new DecimalArrayComparer());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@ -1,199 +1,199 @@
|
||||
using System;
|
||||
using EvoCalculator.Core.Calculation.Columns;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
{
|
||||
public class CashflowMsfoFinal2Tests
|
||||
{
|
||||
[Fact]
|
||||
public void CashflowMsfoFinal2Test1()
|
||||
{
|
||||
var preparedValues = new PreparedValues
|
||||
{
|
||||
Nmper = 25,
|
||||
AcquisitionExpenses = 2507300
|
||||
};
|
||||
|
||||
var dateTempColumn = new DateTempColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
new DateTime(2018, 10, 31),
|
||||
new DateTime(2018, 10, 31),
|
||||
new DateTime(2018, 11, 30),
|
||||
new DateTime(2018, 12, 31),
|
||||
new DateTime(2019, 1, 31),
|
||||
new DateTime(2019, 2, 28),
|
||||
new DateTime(2019, 3, 31),
|
||||
new DateTime(2019, 4, 30),
|
||||
new DateTime(2019, 5, 31),
|
||||
new DateTime(2019, 6, 30),
|
||||
new DateTime(2019, 7, 31),
|
||||
new DateTime(2019, 8, 31),
|
||||
new DateTime(2019, 9, 30),
|
||||
new DateTime(2019, 10, 31),
|
||||
new DateTime(2019, 11, 30),
|
||||
new DateTime(2019, 12, 31),
|
||||
new DateTime(2020, 1, 31),
|
||||
new DateTime(2020, 2, 29),
|
||||
new DateTime(2020, 3, 31),
|
||||
new DateTime(2020, 4, 30),
|
||||
new DateTime(2020, 5, 31),
|
||||
new DateTime(2020, 6, 30),
|
||||
new DateTime(2020, 7, 31),
|
||||
new DateTime(2020, 8, 31),
|
||||
new DateTime(2020, 9, 30),
|
||||
new DateTime(2020, 10, 31),
|
||||
new DateTime(2020, 11, 30),
|
||||
new DateTime(2020, 12, 31),
|
||||
new DateTime(2021, 1, 31),
|
||||
new DateTime(2021, 2, 28),
|
||||
new DateTime(2021, 3, 31),
|
||||
new DateTime(2021, 4, 30),
|
||||
new DateTime(2021, 5, 31),
|
||||
new DateTime(2021, 6, 30),
|
||||
new DateTime(2021, 7, 31),
|
||||
new DateTime(2021, 8, 31),
|
||||
new DateTime(2021, 9, 30),
|
||||
new DateTime(2021, 10, 31),
|
||||
new DateTime(2021, 11, 30),
|
||||
new DateTime(2021, 12, 31),
|
||||
new DateTime(2022, 1, 31),
|
||||
new DateTime(2022, 2, 28),
|
||||
new DateTime(2022, 3, 31),
|
||||
new DateTime(2022, 4, 30),
|
||||
new DateTime(2022, 5, 31),
|
||||
new DateTime(2022, 6, 30),
|
||||
new DateTime(2022, 7, 31),
|
||||
new DateTime(2022, 8, 31),
|
||||
new DateTime(2022, 9, 30),
|
||||
new DateTime(2022, 10, 31),
|
||||
new DateTime(2022, 11, 30),
|
||||
new DateTime(2022, 12, 31),
|
||||
new DateTime(2023, 1, 31),
|
||||
new DateTime(2023, 2, 28),
|
||||
new DateTime(2023, 3, 31),
|
||||
new DateTime(2023, 4, 30),
|
||||
new DateTime(2023, 5, 31),
|
||||
new DateTime(2023, 6, 30),
|
||||
new DateTime(2023, 7, 31),
|
||||
new DateTime(2023, 8, 31),
|
||||
new DateTime(2023, 9, 30),
|
||||
new DateTime(2023, 10, 31),
|
||||
new DateTime(2023, 11, 30),
|
||||
new DateTime(2023, 12, 31),
|
||||
new DateTime(2024, 1, 31),
|
||||
new DateTime(2024, 2, 29),
|
||||
new DateTime(2024, 3, 31)
|
||||
}
|
||||
};
|
||||
|
||||
var directorBonusSumColumn = new DirectorBonusSumColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-7524.610925m,
|
||||
0,
|
||||
-7524.610925m,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
var cashflowMsfoFinalColumn = new CashflowMSFOFinalColumn(preparedValues.Nmper + 1, dateTempColumn)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-2507300m,
|
||||
623323.69753125m,
|
||||
-396728.986329981m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
127486.241319444m,
|
||||
70069.5746527778m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
112986.241319444m,
|
||||
112986.241319444m,
|
||||
21986.2413194444m
|
||||
}
|
||||
};
|
||||
|
||||
var cashflowMsfoFinal2Column = new CashflowMSFOFinal2Column(preparedValues.Nmper + 1, dateTempColumn);
|
||||
cashflowMsfoFinal2Column.ComputeValues(preparedValues, directorBonusSumColumn, cashflowMsfoFinalColumn);
|
||||
|
||||
var expected = new[]
|
||||
{
|
||||
-2507300m,
|
||||
623323.69753125m,
|
||||
-404253.597254981m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
141986.241319444m,
|
||||
127486.241319444m,
|
||||
70069.5746527778m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
127486.241319444m,
|
||||
112986.241319444m,
|
||||
112986.241319444m,
|
||||
21986.2413194444m
|
||||
};
|
||||
|
||||
|
||||
Assert.Equal(expected.Length, cashflowMsfoFinal2Column.Values.Length);
|
||||
Assert.Equal(0.264075595140457, cashflowMsfoFinal2Column.IRR, new DoubleArrayComparer(0.01));
|
||||
Assert.Equal(0.236644224219182, cashflowMsfoFinal2Column.Nominal, new DoubleArrayComparer(0.01));
|
||||
Assert.Equal(expected, cashflowMsfoFinal2Column.Values, new DecimalArrayComparer());
|
||||
}
|
||||
}
|
||||
}
|
||||
// using System;
|
||||
// using EvoCalculator.Core.Calculation.Columns;
|
||||
// using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
// using Xunit;
|
||||
//
|
||||
// namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
// {
|
||||
// public class CashflowMsfoFinal2Tests
|
||||
// {
|
||||
// [Fact]
|
||||
// public void CashflowMsfoFinal2Test1()
|
||||
// {
|
||||
// var preparedValues = new PreparedValues
|
||||
// {
|
||||
// Nmper = 25,
|
||||
// AcquisitionExpenses = 2507300
|
||||
// };
|
||||
//
|
||||
// var dateTempColumn = new DateTempColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// new DateTime(2018, 10, 31),
|
||||
// new DateTime(2018, 10, 31),
|
||||
// new DateTime(2018, 11, 30),
|
||||
// new DateTime(2018, 12, 31),
|
||||
// new DateTime(2019, 1, 31),
|
||||
// new DateTime(2019, 2, 28),
|
||||
// new DateTime(2019, 3, 31),
|
||||
// new DateTime(2019, 4, 30),
|
||||
// new DateTime(2019, 5, 31),
|
||||
// new DateTime(2019, 6, 30),
|
||||
// new DateTime(2019, 7, 31),
|
||||
// new DateTime(2019, 8, 31),
|
||||
// new DateTime(2019, 9, 30),
|
||||
// new DateTime(2019, 10, 31),
|
||||
// new DateTime(2019, 11, 30),
|
||||
// new DateTime(2019, 12, 31),
|
||||
// new DateTime(2020, 1, 31),
|
||||
// new DateTime(2020, 2, 29),
|
||||
// new DateTime(2020, 3, 31),
|
||||
// new DateTime(2020, 4, 30),
|
||||
// new DateTime(2020, 5, 31),
|
||||
// new DateTime(2020, 6, 30),
|
||||
// new DateTime(2020, 7, 31),
|
||||
// new DateTime(2020, 8, 31),
|
||||
// new DateTime(2020, 9, 30),
|
||||
// new DateTime(2020, 10, 31),
|
||||
// new DateTime(2020, 11, 30),
|
||||
// new DateTime(2020, 12, 31),
|
||||
// new DateTime(2021, 1, 31),
|
||||
// new DateTime(2021, 2, 28),
|
||||
// new DateTime(2021, 3, 31),
|
||||
// new DateTime(2021, 4, 30),
|
||||
// new DateTime(2021, 5, 31),
|
||||
// new DateTime(2021, 6, 30),
|
||||
// new DateTime(2021, 7, 31),
|
||||
// new DateTime(2021, 8, 31),
|
||||
// new DateTime(2021, 9, 30),
|
||||
// new DateTime(2021, 10, 31),
|
||||
// new DateTime(2021, 11, 30),
|
||||
// new DateTime(2021, 12, 31),
|
||||
// new DateTime(2022, 1, 31),
|
||||
// new DateTime(2022, 2, 28),
|
||||
// new DateTime(2022, 3, 31),
|
||||
// new DateTime(2022, 4, 30),
|
||||
// new DateTime(2022, 5, 31),
|
||||
// new DateTime(2022, 6, 30),
|
||||
// new DateTime(2022, 7, 31),
|
||||
// new DateTime(2022, 8, 31),
|
||||
// new DateTime(2022, 9, 30),
|
||||
// new DateTime(2022, 10, 31),
|
||||
// new DateTime(2022, 11, 30),
|
||||
// new DateTime(2022, 12, 31),
|
||||
// new DateTime(2023, 1, 31),
|
||||
// new DateTime(2023, 2, 28),
|
||||
// new DateTime(2023, 3, 31),
|
||||
// new DateTime(2023, 4, 30),
|
||||
// new DateTime(2023, 5, 31),
|
||||
// new DateTime(2023, 6, 30),
|
||||
// new DateTime(2023, 7, 31),
|
||||
// new DateTime(2023, 8, 31),
|
||||
// new DateTime(2023, 9, 30),
|
||||
// new DateTime(2023, 10, 31),
|
||||
// new DateTime(2023, 11, 30),
|
||||
// new DateTime(2023, 12, 31),
|
||||
// new DateTime(2024, 1, 31),
|
||||
// new DateTime(2024, 2, 29),
|
||||
// new DateTime(2024, 3, 31)
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var directorBonusSumColumn = new DirectorBonusSumColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -7524.610925m,
|
||||
// 0,
|
||||
// -7524.610925m,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var cashflowMsfoFinalColumn = new CashflowMSFOFinalColumn(preparedValues.Nmper + 1, dateTempColumn)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -2507300m,
|
||||
// 623323.69753125m,
|
||||
// -396728.986329981m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 70069.5746527778m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 112986.241319444m,
|
||||
// 112986.241319444m,
|
||||
// 21986.2413194444m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var cashflowMsfoFinal2Column = new CashflowMSFOFinal2Column(preparedValues.Nmper + 1, dateTempColumn);
|
||||
// cashflowMsfoFinal2Column.ComputeValues(preparedValues, directorBonusSumColumn, cashflowMsfoFinalColumn);
|
||||
//
|
||||
// var expected = new[]
|
||||
// {
|
||||
// -2507300m,
|
||||
// 623323.69753125m,
|
||||
// -404253.597254981m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 141986.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 70069.5746527778m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 127486.241319444m,
|
||||
// 112986.241319444m,
|
||||
// 112986.241319444m,
|
||||
// 21986.2413194444m
|
||||
// };
|
||||
//
|
||||
//
|
||||
// Assert.Equal(expected.Length, cashflowMsfoFinal2Column.Values.Length);
|
||||
// Assert.Equal(0.264075595140457, cashflowMsfoFinal2Column.IRR, new DoubleArrayComparer(0.01));
|
||||
// Assert.Equal(0.236644224219182, cashflowMsfoFinal2Column.Nominal, new DoubleArrayComparer(0.01));
|
||||
// Assert.Equal(expected, cashflowMsfoFinal2Column.Values, new DecimalArrayComparer());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@ -1,467 +1,467 @@
|
||||
using System;
|
||||
using EvoCalculator.Core.Calculation.Columns;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
{
|
||||
public class CashflowNpvTests
|
||||
{
|
||||
[Fact]
|
||||
public void CashflowNpvTest1()
|
||||
{
|
||||
var preparedValues = new PreparedValues
|
||||
{
|
||||
Nmper = 25,
|
||||
AcquisitionExpenses = 2507300
|
||||
};
|
||||
|
||||
var dateTempColumn = new DateTempColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
new DateTime(2018, 10, 31),
|
||||
new DateTime(2018, 10, 31),
|
||||
new DateTime(2018, 11, 30),
|
||||
new DateTime(2018, 12, 31),
|
||||
new DateTime(2019, 1, 31),
|
||||
new DateTime(2019, 2, 28),
|
||||
new DateTime(2019, 3, 31),
|
||||
new DateTime(2019, 4, 30),
|
||||
new DateTime(2019, 5, 31),
|
||||
new DateTime(2019, 6, 30),
|
||||
new DateTime(2019, 7, 31),
|
||||
new DateTime(2019, 8, 31),
|
||||
new DateTime(2019, 9, 30),
|
||||
new DateTime(2019, 10, 31),
|
||||
new DateTime(2019, 11, 30),
|
||||
new DateTime(2019, 12, 31),
|
||||
new DateTime(2020, 1, 31),
|
||||
new DateTime(2020, 2, 29),
|
||||
new DateTime(2020, 3, 31),
|
||||
new DateTime(2020, 4, 30),
|
||||
new DateTime(2020, 5, 31),
|
||||
new DateTime(2020, 6, 30),
|
||||
new DateTime(2020, 7, 31),
|
||||
new DateTime(2020, 8, 31),
|
||||
new DateTime(2020, 9, 30),
|
||||
new DateTime(2020, 10, 31),
|
||||
new DateTime(2020, 11, 30),
|
||||
new DateTime(2020, 12, 31),
|
||||
new DateTime(2021, 1, 31),
|
||||
new DateTime(2021, 2, 28),
|
||||
new DateTime(2021, 3, 31),
|
||||
new DateTime(2021, 4, 30),
|
||||
new DateTime(2021, 5, 31),
|
||||
new DateTime(2021, 6, 30),
|
||||
new DateTime(2021, 7, 31),
|
||||
new DateTime(2021, 8, 31),
|
||||
new DateTime(2021, 9, 30),
|
||||
new DateTime(2021, 10, 31),
|
||||
new DateTime(2021, 11, 30),
|
||||
new DateTime(2021, 12, 31),
|
||||
new DateTime(2022, 1, 31),
|
||||
new DateTime(2022, 2, 28),
|
||||
new DateTime(2022, 3, 31),
|
||||
new DateTime(2022, 4, 30),
|
||||
new DateTime(2022, 5, 31),
|
||||
new DateTime(2022, 6, 30),
|
||||
new DateTime(2022, 7, 31),
|
||||
new DateTime(2022, 8, 31),
|
||||
new DateTime(2022, 9, 30),
|
||||
new DateTime(2022, 10, 31),
|
||||
new DateTime(2022, 11, 30),
|
||||
new DateTime(2022, 12, 31),
|
||||
new DateTime(2023, 1, 31),
|
||||
new DateTime(2023, 2, 28),
|
||||
new DateTime(2023, 3, 31),
|
||||
new DateTime(2023, 4, 30),
|
||||
new DateTime(2023, 5, 31),
|
||||
new DateTime(2023, 6, 30),
|
||||
new DateTime(2023, 7, 31),
|
||||
new DateTime(2023, 8, 31),
|
||||
new DateTime(2023, 9, 30),
|
||||
new DateTime(2023, 10, 31),
|
||||
new DateTime(2023, 11, 30),
|
||||
new DateTime(2023, 12, 31),
|
||||
new DateTime(2024, 1, 31),
|
||||
new DateTime(2024, 2, 29),
|
||||
new DateTime(2024, 3, 31)
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn, preparedValues, null, null)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-2542903.66268442m,
|
||||
625000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
96000m,
|
||||
96000m,
|
||||
25000m
|
||||
}
|
||||
};
|
||||
|
||||
var npvBonusExpenses = new NPVBonusExpensesColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-29266.5425270833m,
|
||||
-1676.30246875m,
|
||||
-27590.2400583333m,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
var agentComissionExpenses = new AgentComissionExpensesColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-446104.166666667m,
|
||||
0,
|
||||
-446104.166666667m,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
var taxColumn = new TaxColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
60301.716983905m,
|
||||
47477.2805581053m,
|
||||
-87962.9468973872m,
|
||||
4527.53444761279m,
|
||||
5727.53444761279m,
|
||||
4527.53444761279m,
|
||||
4527.53444761279m,
|
||||
4527.53444761279m,
|
||||
4527.53444761279m,
|
||||
4527.53444761279m,
|
||||
4527.53444761279m,
|
||||
4527.53444761279m,
|
||||
3900.22165941717m,
|
||||
7184.77620487171m,
|
||||
4445.67620487171m,
|
||||
4445.67620487171m,
|
||||
4445.67620487171m,
|
||||
4445.67620487171m,
|
||||
4445.67620487171m,
|
||||
4445.67620487171m,
|
||||
4445.67620487171m,
|
||||
4445.67620487171m,
|
||||
4445.67620487171m,
|
||||
3818.36341667609m,
|
||||
3818.36341667609m,
|
||||
106.762753185324m
|
||||
}
|
||||
};
|
||||
|
||||
var nsibExpensesColumn = new NSIBExpensesColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-4811.4375m,
|
||||
-2309.49m,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
-2501.9475m,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
var negativeCashflowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-110416.666666667m,
|
||||
-53000m,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
-57416.6666666667m,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
var ratExpensesColumn = new RatExpensesColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-6000m,
|
||||
-12000m,
|
||||
0,
|
||||
0,
|
||||
6000m,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
var transExpensesColumn = new TransExpensesColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new decimal[]
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
var tlmExpensesColumn = new TLMExpensesColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
0,
|
||||
-20000m,
|
||||
-1600m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m,
|
||||
-800m
|
||||
}
|
||||
};
|
||||
|
||||
var gpsExpensesColumn = new GPSExpensesColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
0,
|
||||
-15000m,
|
||||
-1200m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m,
|
||||
-600m
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
var cashflowNpvColumn = new CashflowNPVColumn(preparedValues.Nmper + 1);
|
||||
cashflowNpvColumn.ComputeValues(preparedValues, sumColumn, npvBonusExpenses, agentComissionExpenses,
|
||||
taxColumn,
|
||||
nsibExpensesColumn, negativeCashflowColumn, ratExpensesColumn, transExpensesColumn, tlmExpensesColumn,
|
||||
gpsExpensesColumn);
|
||||
|
||||
|
||||
var expected = new[]
|
||||
{
|
||||
-2507300m,
|
||||
573536.926973145m,
|
||||
-268531.459827613m,
|
||||
114072.465552387m,
|
||||
118872.465552387m,
|
||||
114072.465552387m,
|
||||
114072.465552387m,
|
||||
114072.465552387m,
|
||||
114072.465552387m,
|
||||
114072.465552387m,
|
||||
114072.465552387m,
|
||||
114072.465552387m,
|
||||
102699.778340583m,
|
||||
39496.6096284616m,
|
||||
102154.323795128m,
|
||||
102154.323795128m,
|
||||
102154.323795128m,
|
||||
102154.323795128m,
|
||||
102154.323795128m,
|
||||
102154.323795128m,
|
||||
102154.323795128m,
|
||||
102154.323795128m,
|
||||
102154.323795128m,
|
||||
90781.6365833239m,
|
||||
90781.6365833239m,
|
||||
23493.2372468147m
|
||||
};
|
||||
|
||||
|
||||
Assert.Equal(expected.Length, cashflowNpvColumn.Values.Length);
|
||||
Assert.Equal(expected, cashflowNpvColumn.Values, new DecimalArrayComparer());
|
||||
}
|
||||
}
|
||||
}
|
||||
// using System;
|
||||
// using EvoCalculator.Core.Calculation.Columns;
|
||||
// using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
// using Xunit;
|
||||
//
|
||||
// namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
// {
|
||||
// public class CashflowNpvTests
|
||||
// {
|
||||
// [Fact]
|
||||
// public void CashflowNpvTest1()
|
||||
// {
|
||||
// var preparedValues = new PreparedValues
|
||||
// {
|
||||
// Nmper = 25,
|
||||
// AcquisitionExpenses = 2507300
|
||||
// };
|
||||
//
|
||||
// var dateTempColumn = new DateTempColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// new DateTime(2018, 10, 31),
|
||||
// new DateTime(2018, 10, 31),
|
||||
// new DateTime(2018, 11, 30),
|
||||
// new DateTime(2018, 12, 31),
|
||||
// new DateTime(2019, 1, 31),
|
||||
// new DateTime(2019, 2, 28),
|
||||
// new DateTime(2019, 3, 31),
|
||||
// new DateTime(2019, 4, 30),
|
||||
// new DateTime(2019, 5, 31),
|
||||
// new DateTime(2019, 6, 30),
|
||||
// new DateTime(2019, 7, 31),
|
||||
// new DateTime(2019, 8, 31),
|
||||
// new DateTime(2019, 9, 30),
|
||||
// new DateTime(2019, 10, 31),
|
||||
// new DateTime(2019, 11, 30),
|
||||
// new DateTime(2019, 12, 31),
|
||||
// new DateTime(2020, 1, 31),
|
||||
// new DateTime(2020, 2, 29),
|
||||
// new DateTime(2020, 3, 31),
|
||||
// new DateTime(2020, 4, 30),
|
||||
// new DateTime(2020, 5, 31),
|
||||
// new DateTime(2020, 6, 30),
|
||||
// new DateTime(2020, 7, 31),
|
||||
// new DateTime(2020, 8, 31),
|
||||
// new DateTime(2020, 9, 30),
|
||||
// new DateTime(2020, 10, 31),
|
||||
// new DateTime(2020, 11, 30),
|
||||
// new DateTime(2020, 12, 31),
|
||||
// new DateTime(2021, 1, 31),
|
||||
// new DateTime(2021, 2, 28),
|
||||
// new DateTime(2021, 3, 31),
|
||||
// new DateTime(2021, 4, 30),
|
||||
// new DateTime(2021, 5, 31),
|
||||
// new DateTime(2021, 6, 30),
|
||||
// new DateTime(2021, 7, 31),
|
||||
// new DateTime(2021, 8, 31),
|
||||
// new DateTime(2021, 9, 30),
|
||||
// new DateTime(2021, 10, 31),
|
||||
// new DateTime(2021, 11, 30),
|
||||
// new DateTime(2021, 12, 31),
|
||||
// new DateTime(2022, 1, 31),
|
||||
// new DateTime(2022, 2, 28),
|
||||
// new DateTime(2022, 3, 31),
|
||||
// new DateTime(2022, 4, 30),
|
||||
// new DateTime(2022, 5, 31),
|
||||
// new DateTime(2022, 6, 30),
|
||||
// new DateTime(2022, 7, 31),
|
||||
// new DateTime(2022, 8, 31),
|
||||
// new DateTime(2022, 9, 30),
|
||||
// new DateTime(2022, 10, 31),
|
||||
// new DateTime(2022, 11, 30),
|
||||
// new DateTime(2022, 12, 31),
|
||||
// new DateTime(2023, 1, 31),
|
||||
// new DateTime(2023, 2, 28),
|
||||
// new DateTime(2023, 3, 31),
|
||||
// new DateTime(2023, 4, 30),
|
||||
// new DateTime(2023, 5, 31),
|
||||
// new DateTime(2023, 6, 30),
|
||||
// new DateTime(2023, 7, 31),
|
||||
// new DateTime(2023, 8, 31),
|
||||
// new DateTime(2023, 9, 30),
|
||||
// new DateTime(2023, 10, 31),
|
||||
// new DateTime(2023, 11, 30),
|
||||
// new DateTime(2023, 12, 31),
|
||||
// new DateTime(2024, 1, 31),
|
||||
// new DateTime(2024, 2, 29),
|
||||
// new DateTime(2024, 3, 31)
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn, preparedValues, null, null)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -2542903.66268442m,
|
||||
// 625000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 96000m,
|
||||
// 96000m,
|
||||
// 25000m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var npvBonusExpenses = new NPVBonusExpensesColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -29266.5425270833m,
|
||||
// -1676.30246875m,
|
||||
// -27590.2400583333m,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var agentComissionExpenses = new AgentComissionExpensesColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -446104.166666667m,
|
||||
// 0,
|
||||
// -446104.166666667m,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var taxColumn = new TaxColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// 60301.716983905m,
|
||||
// 47477.2805581053m,
|
||||
// -87962.9468973872m,
|
||||
// 4527.53444761279m,
|
||||
// 5727.53444761279m,
|
||||
// 4527.53444761279m,
|
||||
// 4527.53444761279m,
|
||||
// 4527.53444761279m,
|
||||
// 4527.53444761279m,
|
||||
// 4527.53444761279m,
|
||||
// 4527.53444761279m,
|
||||
// 4527.53444761279m,
|
||||
// 3900.22165941717m,
|
||||
// 7184.77620487171m,
|
||||
// 4445.67620487171m,
|
||||
// 4445.67620487171m,
|
||||
// 4445.67620487171m,
|
||||
// 4445.67620487171m,
|
||||
// 4445.67620487171m,
|
||||
// 4445.67620487171m,
|
||||
// 4445.67620487171m,
|
||||
// 4445.67620487171m,
|
||||
// 4445.67620487171m,
|
||||
// 3818.36341667609m,
|
||||
// 3818.36341667609m,
|
||||
// 106.762753185324m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var nsibExpensesColumn = new NSIBExpensesColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -4811.4375m,
|
||||
// -2309.49m,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// -2501.9475m,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var negativeCashflowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -110416.666666667m,
|
||||
// -53000m,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// -57416.6666666667m,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var ratExpensesColumn = new RatExpensesColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -6000m,
|
||||
// -12000m,
|
||||
// 0,
|
||||
// 0,
|
||||
// 6000m,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var transExpensesColumn = new TransExpensesColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new decimal[]
|
||||
// {
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var tlmExpensesColumn = new TLMExpensesColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// 0,
|
||||
// -20000m,
|
||||
// -1600m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m,
|
||||
// -800m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var gpsExpensesColumn = new GPSExpensesColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// 0,
|
||||
// -15000m,
|
||||
// -1200m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m,
|
||||
// -600m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// var cashflowNpvColumn = new CashflowNPVColumn(preparedValues.Nmper + 1);
|
||||
// cashflowNpvColumn.ComputeValues(preparedValues, sumColumn, npvBonusExpenses, agentComissionExpenses,
|
||||
// taxColumn,
|
||||
// nsibExpensesColumn, negativeCashflowColumn, ratExpensesColumn, transExpensesColumn, tlmExpensesColumn,
|
||||
// gpsExpensesColumn);
|
||||
//
|
||||
//
|
||||
// var expected = new[]
|
||||
// {
|
||||
// -2507300m,
|
||||
// 573536.926973145m,
|
||||
// -268531.459827613m,
|
||||
// 114072.465552387m,
|
||||
// 118872.465552387m,
|
||||
// 114072.465552387m,
|
||||
// 114072.465552387m,
|
||||
// 114072.465552387m,
|
||||
// 114072.465552387m,
|
||||
// 114072.465552387m,
|
||||
// 114072.465552387m,
|
||||
// 114072.465552387m,
|
||||
// 102699.778340583m,
|
||||
// 39496.6096284616m,
|
||||
// 102154.323795128m,
|
||||
// 102154.323795128m,
|
||||
// 102154.323795128m,
|
||||
// 102154.323795128m,
|
||||
// 102154.323795128m,
|
||||
// 102154.323795128m,
|
||||
// 102154.323795128m,
|
||||
// 102154.323795128m,
|
||||
// 102154.323795128m,
|
||||
// 90781.6365833239m,
|
||||
// 90781.6365833239m,
|
||||
// 23493.2372468147m
|
||||
// };
|
||||
//
|
||||
//
|
||||
// Assert.Equal(expected.Length, cashflowNpvColumn.Values.Length);
|
||||
// Assert.Equal(expected, cashflowNpvColumn.Values, new DecimalArrayComparer());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@ -1,123 +1,123 @@
|
||||
using EvoCalculator.Core.Calculation.Columns;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
{
|
||||
public class CashflowNpvFinalTests
|
||||
{
|
||||
[Fact]
|
||||
public void CashflowNpvFinalTest1()
|
||||
{
|
||||
var preparedValues = new PreparedValues
|
||||
{
|
||||
Nmper = 25,
|
||||
AcquisitionExpenses = 2507300
|
||||
};
|
||||
|
||||
var extraBonusSumColumn = new ExtraBonusSumColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-7487.31397588584m,
|
||||
0,
|
||||
-7487.31397588584m,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
var cashflowNpvColumn = new CashflowNPVColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-2507300m,
|
||||
576206.70740985m,
|
||||
-265374.923416037m,
|
||||
117229.001963963m,
|
||||
122029.001963963m,
|
||||
117229.001963963m,
|
||||
117229.001963963m,
|
||||
117229.001963963m,
|
||||
117229.001963963m,
|
||||
117229.001963963m,
|
||||
117229.001963963m,
|
||||
117229.001963963m,
|
||||
105540.661111001m,
|
||||
42337.4923988798m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
93306.8657125845m,
|
||||
93306.8657125845m,
|
||||
23600.0284642829m
|
||||
}
|
||||
};
|
||||
|
||||
var cashflowNpvFinalColumn = new CashflowNPVFinalColumn(preparedValues.Nmper + 1);
|
||||
cashflowNpvFinalColumn.ComputeValues(preparedValues, extraBonusSumColumn, cashflowNpvColumn);
|
||||
|
||||
|
||||
var expected = new[]
|
||||
{
|
||||
-2507300m,
|
||||
576206.70740985m,
|
||||
-272862.237391923m,
|
||||
117229.001963963m,
|
||||
122029.001963963m,
|
||||
117229.001963963m,
|
||||
117229.001963963m,
|
||||
117229.001963963m,
|
||||
117229.001963963m,
|
||||
117229.001963963m,
|
||||
117229.001963963m,
|
||||
117229.001963963m,
|
||||
105540.661111001m,
|
||||
42337.4923988798m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
104995.206565546m,
|
||||
93306.8657125845m,
|
||||
93306.8657125845m,
|
||||
23600.0284642829m
|
||||
};
|
||||
|
||||
|
||||
Assert.Equal(expected.Length, cashflowNpvFinalColumn.Values.Length);
|
||||
Assert.Equal(expected, cashflowNpvFinalColumn.Values, new DecimalArrayComparer());
|
||||
}
|
||||
}
|
||||
}
|
||||
// using EvoCalculator.Core.Calculation.Columns;
|
||||
// using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
// using Xunit;
|
||||
//
|
||||
// namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
// {
|
||||
// public class CashflowNpvFinalTests
|
||||
// {
|
||||
// [Fact]
|
||||
// public void CashflowNpvFinalTest1()
|
||||
// {
|
||||
// var preparedValues = new PreparedValues
|
||||
// {
|
||||
// Nmper = 25,
|
||||
// AcquisitionExpenses = 2507300
|
||||
// };
|
||||
//
|
||||
// var extraBonusSumColumn = new ExtraBonusSumColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -7487.31397588584m,
|
||||
// 0,
|
||||
// -7487.31397588584m,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var cashflowNpvColumn = new CashflowNPVColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -2507300m,
|
||||
// 576206.70740985m,
|
||||
// -265374.923416037m,
|
||||
// 117229.001963963m,
|
||||
// 122029.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 105540.661111001m,
|
||||
// 42337.4923988798m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 93306.8657125845m,
|
||||
// 93306.8657125845m,
|
||||
// 23600.0284642829m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var cashflowNpvFinalColumn = new CashflowNPVFinalColumn(preparedValues.Nmper + 1);
|
||||
// cashflowNpvFinalColumn.ComputeValues(preparedValues, extraBonusSumColumn, cashflowNpvColumn);
|
||||
//
|
||||
//
|
||||
// var expected = new[]
|
||||
// {
|
||||
// -2507300m,
|
||||
// 576206.70740985m,
|
||||
// -272862.237391923m,
|
||||
// 117229.001963963m,
|
||||
// 122029.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 117229.001963963m,
|
||||
// 105540.661111001m,
|
||||
// 42337.4923988798m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 104995.206565546m,
|
||||
// 93306.8657125845m,
|
||||
// 93306.8657125845m,
|
||||
// 23600.0284642829m
|
||||
// };
|
||||
//
|
||||
//
|
||||
// Assert.Equal(expected.Length, cashflowNpvFinalColumn.Values.Length);
|
||||
// Assert.Equal(expected, cashflowNpvFinalColumn.Values, new DecimalArrayComparer());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@ -1,123 +1,123 @@
|
||||
using EvoCalculator.Core.Calculation.Columns;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
{
|
||||
public class CashflowNpvFinal2Tests
|
||||
{
|
||||
[Fact]
|
||||
public void CashflowNpvFinal2Test1()
|
||||
{
|
||||
var preparedValues = new PreparedValues
|
||||
{
|
||||
Nmper = 25,
|
||||
AcquisitionExpenses = 2507300
|
||||
};
|
||||
|
||||
var cashflowNpvFinalColumn = new CashflowNPVFinalColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-2507300m,
|
||||
562200.08956372m,
|
||||
-310589.328673099m,
|
||||
135135.417631327m,
|
||||
139935.417631327m,
|
||||
135135.417631327m,
|
||||
135135.417631327m,
|
||||
135135.417631327m,
|
||||
135135.417631327m,
|
||||
135135.417631327m,
|
||||
135135.417631327m,
|
||||
135135.417631327m,
|
||||
121656.435211628m,
|
||||
58453.266499507m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
107631.998246475m,
|
||||
107631.998246475m,
|
||||
23039.7637504377m
|
||||
}
|
||||
};
|
||||
|
||||
var directorBonusSumColumn = new DirectorBonusSumColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-7524.610925m,
|
||||
0,
|
||||
-7524.610925m,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
var cashflowNpvFinal2Column = new CashflowNPVFinal2Column(preparedValues.Nmper + 1);
|
||||
cashflowNpvFinal2Column.ComputeValues(preparedValues, cashflowNpvFinalColumn, directorBonusSumColumn);
|
||||
|
||||
|
||||
var expected = new[]
|
||||
{
|
||||
-2507300m,
|
||||
562200.08956372m,
|
||||
-318113.939598099m,
|
||||
135135.417631327m,
|
||||
139935.417631327m,
|
||||
135135.417631327m,
|
||||
135135.417631327m,
|
||||
135135.417631327m,
|
||||
135135.417631327m,
|
||||
135135.417631327m,
|
||||
135135.417631327m,
|
||||
135135.417631327m,
|
||||
121656.435211628m,
|
||||
58453.266499507m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
121110.980666174m,
|
||||
107631.998246475m,
|
||||
107631.998246475m,
|
||||
23039.7637504377m
|
||||
};
|
||||
|
||||
|
||||
Assert.Equal(expected.Length, cashflowNpvFinal2Column.Values.Length);
|
||||
Assert.Equal(expected, cashflowNpvFinal2Column.Values, new DecimalArrayComparer());
|
||||
}
|
||||
}
|
||||
}
|
||||
// using EvoCalculator.Core.Calculation.Columns;
|
||||
// using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
// using Xunit;
|
||||
//
|
||||
// namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
// {
|
||||
// public class CashflowNpvFinal2Tests
|
||||
// {
|
||||
// [Fact]
|
||||
// public void CashflowNpvFinal2Test1()
|
||||
// {
|
||||
// var preparedValues = new PreparedValues
|
||||
// {
|
||||
// Nmper = 25,
|
||||
// AcquisitionExpenses = 2507300
|
||||
// };
|
||||
//
|
||||
// var cashflowNpvFinalColumn = new CashflowNPVFinalColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -2507300m,
|
||||
// 562200.08956372m,
|
||||
// -310589.328673099m,
|
||||
// 135135.417631327m,
|
||||
// 139935.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 121656.435211628m,
|
||||
// 58453.266499507m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 107631.998246475m,
|
||||
// 107631.998246475m,
|
||||
// 23039.7637504377m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var directorBonusSumColumn = new DirectorBonusSumColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -7524.610925m,
|
||||
// 0,
|
||||
// -7524.610925m,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0,
|
||||
// 0
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var cashflowNpvFinal2Column = new CashflowNPVFinal2Column(preparedValues.Nmper + 1);
|
||||
// cashflowNpvFinal2Column.ComputeValues(preparedValues, cashflowNpvFinalColumn, directorBonusSumColumn);
|
||||
//
|
||||
//
|
||||
// var expected = new[]
|
||||
// {
|
||||
// -2507300m,
|
||||
// 562200.08956372m,
|
||||
// -318113.939598099m,
|
||||
// 135135.417631327m,
|
||||
// 139935.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 135135.417631327m,
|
||||
// 121656.435211628m,
|
||||
// 58453.266499507m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 121110.980666174m,
|
||||
// 107631.998246475m,
|
||||
// 107631.998246475m,
|
||||
// 23039.7637504377m
|
||||
// };
|
||||
//
|
||||
//
|
||||
// Assert.Equal(expected.Length, cashflowNpvFinal2Column.Values.Length);
|
||||
// Assert.Equal(expected, cashflowNpvFinal2Column.Values, new DecimalArrayComparer());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@ -1,200 +1,200 @@
|
||||
using System;
|
||||
using EvoCalculator.Core.Calculation.Columns;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
{
|
||||
public class CashflowTests
|
||||
{
|
||||
[Fact]
|
||||
public void CashflowTest1()
|
||||
{
|
||||
var preparedValues = new PreparedValues
|
||||
{
|
||||
Nmper = 25,
|
||||
AcquisitionExpenses = 2507300
|
||||
};
|
||||
|
||||
var dateTempColumn = new DateTempColumn(67)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
new DateTime(2018, 10, 31),
|
||||
new DateTime(2018, 10, 31),
|
||||
new DateTime(2018, 11, 30),
|
||||
new DateTime(2018, 12, 31),
|
||||
new DateTime(2019, 1, 31),
|
||||
new DateTime(2019, 2, 28),
|
||||
new DateTime(2019, 3, 31),
|
||||
new DateTime(2019, 4, 30),
|
||||
new DateTime(2019, 5, 31),
|
||||
new DateTime(2019, 6, 30),
|
||||
new DateTime(2019, 7, 31),
|
||||
new DateTime(2019, 8, 31),
|
||||
new DateTime(2019, 9, 30),
|
||||
new DateTime(2019, 10, 31),
|
||||
new DateTime(2019, 11, 30),
|
||||
new DateTime(2019, 12, 31),
|
||||
new DateTime(2020, 1, 31),
|
||||
new DateTime(2020, 2, 29),
|
||||
new DateTime(2020, 3, 31),
|
||||
new DateTime(2020, 4, 30),
|
||||
new DateTime(2020, 5, 31),
|
||||
new DateTime(2020, 6, 30),
|
||||
new DateTime(2020, 7, 31),
|
||||
new DateTime(2020, 8, 31),
|
||||
new DateTime(2020, 9, 30),
|
||||
new DateTime(2020, 10, 31),
|
||||
new DateTime(2020, 11, 30),
|
||||
new DateTime(2020, 12, 31),
|
||||
new DateTime(2021, 1, 31),
|
||||
new DateTime(2021, 2, 28),
|
||||
new DateTime(2021, 3, 31),
|
||||
new DateTime(2021, 4, 30),
|
||||
new DateTime(2021, 5, 31),
|
||||
new DateTime(2021, 6, 30),
|
||||
new DateTime(2021, 7, 31),
|
||||
new DateTime(2021, 8, 31),
|
||||
new DateTime(2021, 9, 30),
|
||||
new DateTime(2021, 10, 31),
|
||||
new DateTime(2021, 11, 30),
|
||||
new DateTime(2021, 12, 31),
|
||||
new DateTime(2022, 1, 31),
|
||||
new DateTime(2022, 2, 28),
|
||||
new DateTime(2022, 3, 31),
|
||||
new DateTime(2022, 4, 30),
|
||||
new DateTime(2022, 5, 31),
|
||||
new DateTime(2022, 6, 30),
|
||||
new DateTime(2022, 7, 31),
|
||||
new DateTime(2022, 8, 31),
|
||||
new DateTime(2022, 9, 30),
|
||||
new DateTime(2022, 10, 31),
|
||||
new DateTime(2022, 11, 30),
|
||||
new DateTime(2022, 12, 31),
|
||||
new DateTime(2023, 1, 31),
|
||||
new DateTime(2023, 2, 28),
|
||||
new DateTime(2023, 3, 31),
|
||||
new DateTime(2023, 4, 30),
|
||||
new DateTime(2023, 5, 31),
|
||||
new DateTime(2023, 6, 30),
|
||||
new DateTime(2023, 7, 31),
|
||||
new DateTime(2023, 8, 31),
|
||||
new DateTime(2023, 9, 30),
|
||||
new DateTime(2023, 10, 31),
|
||||
new DateTime(2023, 11, 30),
|
||||
new DateTime(2023, 12, 31),
|
||||
new DateTime(2024, 1, 31),
|
||||
new DateTime(2024, 2, 29),
|
||||
new DateTime(2024, 3, 31)
|
||||
}
|
||||
};
|
||||
|
||||
var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn, preparedValues,
|
||||
new PercentPaymentColumn(preparedValues.Nmper + 1), null)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-2542903.66268442m,
|
||||
625000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
96000m,
|
||||
96000m,
|
||||
25000m
|
||||
}
|
||||
};
|
||||
|
||||
var negativeCashFlow = new NegativeCashflowColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-110416.666666667m,
|
||||
-53000m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
-57416.6666666667m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m,
|
||||
0.00m
|
||||
}
|
||||
};
|
||||
|
||||
var cashflowColumn = new CashflowColumn(preparedValues.Nmper + 1, dateTempColumn);
|
||||
cashflowColumn.ComputeValues(preparedValues, sumColumn, negativeCashFlow);
|
||||
|
||||
|
||||
var expected = new[]
|
||||
{
|
||||
-2507300m,
|
||||
625000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
108000m,
|
||||
50583.3333333333m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
96000m,
|
||||
96000m,
|
||||
25000m
|
||||
};
|
||||
|
||||
|
||||
Assert.Equal(expected.Length, cashflowColumn.Values.Length);
|
||||
Assert.Equal(0.3878, cashflowColumn.IRR, new DoubleArrayComparer(0.1));
|
||||
Assert.Equal(expected, cashflowColumn.Values, new DecimalArrayComparer());
|
||||
}
|
||||
}
|
||||
}
|
||||
// using System;
|
||||
// using EvoCalculator.Core.Calculation.Columns;
|
||||
// using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
// using Xunit;
|
||||
//
|
||||
// namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
// {
|
||||
// public class CashflowTests
|
||||
// {
|
||||
// [Fact]
|
||||
// public void CashflowTest1()
|
||||
// {
|
||||
// var preparedValues = new PreparedValues
|
||||
// {
|
||||
// Nmper = 25,
|
||||
// AcquisitionExpenses = 2507300
|
||||
// };
|
||||
//
|
||||
// var dateTempColumn = new DateTempColumn(67)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// new DateTime(2018, 10, 31),
|
||||
// new DateTime(2018, 10, 31),
|
||||
// new DateTime(2018, 11, 30),
|
||||
// new DateTime(2018, 12, 31),
|
||||
// new DateTime(2019, 1, 31),
|
||||
// new DateTime(2019, 2, 28),
|
||||
// new DateTime(2019, 3, 31),
|
||||
// new DateTime(2019, 4, 30),
|
||||
// new DateTime(2019, 5, 31),
|
||||
// new DateTime(2019, 6, 30),
|
||||
// new DateTime(2019, 7, 31),
|
||||
// new DateTime(2019, 8, 31),
|
||||
// new DateTime(2019, 9, 30),
|
||||
// new DateTime(2019, 10, 31),
|
||||
// new DateTime(2019, 11, 30),
|
||||
// new DateTime(2019, 12, 31),
|
||||
// new DateTime(2020, 1, 31),
|
||||
// new DateTime(2020, 2, 29),
|
||||
// new DateTime(2020, 3, 31),
|
||||
// new DateTime(2020, 4, 30),
|
||||
// new DateTime(2020, 5, 31),
|
||||
// new DateTime(2020, 6, 30),
|
||||
// new DateTime(2020, 7, 31),
|
||||
// new DateTime(2020, 8, 31),
|
||||
// new DateTime(2020, 9, 30),
|
||||
// new DateTime(2020, 10, 31),
|
||||
// new DateTime(2020, 11, 30),
|
||||
// new DateTime(2020, 12, 31),
|
||||
// new DateTime(2021, 1, 31),
|
||||
// new DateTime(2021, 2, 28),
|
||||
// new DateTime(2021, 3, 31),
|
||||
// new DateTime(2021, 4, 30),
|
||||
// new DateTime(2021, 5, 31),
|
||||
// new DateTime(2021, 6, 30),
|
||||
// new DateTime(2021, 7, 31),
|
||||
// new DateTime(2021, 8, 31),
|
||||
// new DateTime(2021, 9, 30),
|
||||
// new DateTime(2021, 10, 31),
|
||||
// new DateTime(2021, 11, 30),
|
||||
// new DateTime(2021, 12, 31),
|
||||
// new DateTime(2022, 1, 31),
|
||||
// new DateTime(2022, 2, 28),
|
||||
// new DateTime(2022, 3, 31),
|
||||
// new DateTime(2022, 4, 30),
|
||||
// new DateTime(2022, 5, 31),
|
||||
// new DateTime(2022, 6, 30),
|
||||
// new DateTime(2022, 7, 31),
|
||||
// new DateTime(2022, 8, 31),
|
||||
// new DateTime(2022, 9, 30),
|
||||
// new DateTime(2022, 10, 31),
|
||||
// new DateTime(2022, 11, 30),
|
||||
// new DateTime(2022, 12, 31),
|
||||
// new DateTime(2023, 1, 31),
|
||||
// new DateTime(2023, 2, 28),
|
||||
// new DateTime(2023, 3, 31),
|
||||
// new DateTime(2023, 4, 30),
|
||||
// new DateTime(2023, 5, 31),
|
||||
// new DateTime(2023, 6, 30),
|
||||
// new DateTime(2023, 7, 31),
|
||||
// new DateTime(2023, 8, 31),
|
||||
// new DateTime(2023, 9, 30),
|
||||
// new DateTime(2023, 10, 31),
|
||||
// new DateTime(2023, 11, 30),
|
||||
// new DateTime(2023, 12, 31),
|
||||
// new DateTime(2024, 1, 31),
|
||||
// new DateTime(2024, 2, 29),
|
||||
// new DateTime(2024, 3, 31)
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn, preparedValues,
|
||||
// new PercentPaymentColumn(preparedValues.Nmper + 1), null)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -2542903.66268442m,
|
||||
// 625000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 96000m,
|
||||
// 96000m,
|
||||
// 25000m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var negativeCashFlow = new NegativeCashflowColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -110416.666666667m,
|
||||
// -53000m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// -57416.6666666667m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m,
|
||||
// 0.00m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var cashflowColumn = new CashflowColumn(preparedValues.Nmper + 1, dateTempColumn);
|
||||
// cashflowColumn.ComputeValues(preparedValues, sumColumn, negativeCashFlow);
|
||||
//
|
||||
//
|
||||
// var expected = new[]
|
||||
// {
|
||||
// -2507300m,
|
||||
// 625000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 108000m,
|
||||
// 50583.3333333333m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 96000m,
|
||||
// 96000m,
|
||||
// 25000m
|
||||
// };
|
||||
//
|
||||
//
|
||||
// Assert.Equal(expected.Length, cashflowColumn.Values.Length);
|
||||
// Assert.Equal(0.3878, cashflowColumn.IRR, new DoubleArrayComparer(0.1));
|
||||
// Assert.Equal(expected, cashflowColumn.Values, new DecimalArrayComparer());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@ -1,164 +1,164 @@
|
||||
using EvoCalculator.Core.Calculation.Columns;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
{
|
||||
public class NiTests
|
||||
{
|
||||
[Fact]
|
||||
public void NiTest1()
|
||||
{
|
||||
var preparedValues = new PreparedValues
|
||||
{
|
||||
Nmper = 25,
|
||||
NiAtInception = 1882300
|
||||
};
|
||||
|
||||
var cashflowColumn = new CashflowColumn(preparedValues.Nmper + 1, new DateTempColumn(67))
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-2507300m,
|
||||
625000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
120000m,
|
||||
108000m,
|
||||
50583.3333333333m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
108000m,
|
||||
96000m,
|
||||
96000m,
|
||||
25000m
|
||||
}
|
||||
};
|
||||
|
||||
var irrGrColumn = new IRRGrColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0282219060742697,
|
||||
0.0254562982413058,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0282219060742697,
|
||||
0.0263773400122931,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0282219060742697,
|
||||
0.0254562982413058,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0282219060742697,
|
||||
0.0254562982413058,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0282219060742697,
|
||||
0.0254562982413058,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0272992090422726,
|
||||
0.0282219060742697,
|
||||
0.0282219060742697,
|
||||
0.0263773400122931,
|
||||
0.0282219060742697
|
||||
}
|
||||
};
|
||||
|
||||
var targetColumn = new NIColumn(preparedValues.Nmper + 1);
|
||||
targetColumn.ComputeValues(preparedValues, cashflowColumn, irrGrColumn);
|
||||
|
||||
|
||||
var expected = new[]
|
||||
{
|
||||
0,
|
||||
1882300m,
|
||||
1813685.30118027m,
|
||||
1744870.95739846m,
|
||||
1674114.54166988m,
|
||||
1596731.30073274m,
|
||||
1521794.10152786m,
|
||||
1443337.87682477m,
|
||||
1364071.62281796m,
|
||||
1281309.69919789m,
|
||||
1197470.70118071m,
|
||||
1111265.60683612m,
|
||||
1033602.27893863m,
|
||||
1012189.17203965m,
|
||||
931821.135837486m,
|
||||
850118.904411111m,
|
||||
766110.880283362m,
|
||||
678318.847459713m,
|
||||
589462.298261128m,
|
||||
497554.152763897m,
|
||||
403596.079330063m,
|
||||
306613.933068336m,
|
||||
207267.162688453m,
|
||||
117116.637086127m,
|
||||
24313.8286442689m,
|
||||
0.0112325733425678m
|
||||
};
|
||||
|
||||
|
||||
Assert.Equal(expected.Length, targetColumn.Values.Length);
|
||||
Assert.Equal(expected, targetColumn.Values, new DecimalArrayComparer());
|
||||
}
|
||||
}
|
||||
}
|
||||
// using EvoCalculator.Core.Calculation.Columns;
|
||||
// using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
// using Xunit;
|
||||
//
|
||||
// namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
// {
|
||||
// public class NiTests
|
||||
// {
|
||||
// [Fact]
|
||||
// public void NiTest1()
|
||||
// {
|
||||
// var preparedValues = new PreparedValues
|
||||
// {
|
||||
// Nmper = 25,
|
||||
// NiAtInception = 1882300
|
||||
// };
|
||||
//
|
||||
// var cashflowColumn = new CashflowColumn(preparedValues.Nmper + 1, new DateTempColumn(67))
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -2507300m,
|
||||
// 625000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 120000m,
|
||||
// 108000m,
|
||||
// 50583.3333333333m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 108000m,
|
||||
// 96000m,
|
||||
// 96000m,
|
||||
// 25000m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var irrGrColumn = new IRRGrColumn(preparedValues.Nmper + 1)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// 0,
|
||||
// 0,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0282219060742697,
|
||||
// 0.0254562982413058,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0282219060742697,
|
||||
// 0.0263773400122931,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0282219060742697,
|
||||
// 0.0254562982413058,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0282219060742697,
|
||||
// 0.0254562982413058,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0282219060742697,
|
||||
// 0.0254562982413058,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0272992090422726,
|
||||
// 0.0282219060742697,
|
||||
// 0.0282219060742697,
|
||||
// 0.0263773400122931,
|
||||
// 0.0282219060742697
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var targetColumn = new NIColumn(preparedValues.Nmper + 1);
|
||||
// targetColumn.ComputeValues(preparedValues, cashflowColumn, irrGrColumn);
|
||||
//
|
||||
//
|
||||
// var expected = new[]
|
||||
// {
|
||||
// 0,
|
||||
// 1882300m,
|
||||
// 1813685.30118027m,
|
||||
// 1744870.95739846m,
|
||||
// 1674114.54166988m,
|
||||
// 1596731.30073274m,
|
||||
// 1521794.10152786m,
|
||||
// 1443337.87682477m,
|
||||
// 1364071.62281796m,
|
||||
// 1281309.69919789m,
|
||||
// 1197470.70118071m,
|
||||
// 1111265.60683612m,
|
||||
// 1033602.27893863m,
|
||||
// 1012189.17203965m,
|
||||
// 931821.135837486m,
|
||||
// 850118.904411111m,
|
||||
// 766110.880283362m,
|
||||
// 678318.847459713m,
|
||||
// 589462.298261128m,
|
||||
// 497554.152763897m,
|
||||
// 403596.079330063m,
|
||||
// 306613.933068336m,
|
||||
// 207267.162688453m,
|
||||
// 117116.637086127m,
|
||||
// 24313.8286442689m,
|
||||
// 0.0112325733425678m
|
||||
// };
|
||||
//
|
||||
//
|
||||
// Assert.Equal(expected.Length, targetColumn.Values.Length);
|
||||
// Assert.Equal(expected, targetColumn.Values, new DecimalArrayComparer());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,58 +1,58 @@
|
||||
using EvoCalculator.Core.Calculation.Columns;
|
||||
using EvoCalculator.Core.Calculation.Post;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Post
|
||||
{
|
||||
public class NPVNITests
|
||||
{
|
||||
[Fact]
|
||||
public void PriceUP_Year_PRTest1()
|
||||
{
|
||||
var preparedValues = new PreparedValues()
|
||||
{
|
||||
NpvBase = 1884609.49m
|
||||
};
|
||||
|
||||
var NPVColumn = new NPVColumn(preparedValues.Nmper + 1, new DateTempColumn(0))
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-2507300m,
|
||||
576210.741196628m,
|
||||
-263857.014691157m,
|
||||
115861.35323893m,
|
||||
119890.703197292m,
|
||||
114557.887385525m,
|
||||
113878.902663341m,
|
||||
113225.652629434m,
|
||||
112554.564064088m,
|
||||
111908.910909099m,
|
||||
111245.62667335m,
|
||||
110586.273723982m,
|
||||
98989.135506238m,
|
||||
39471.7873776598m,
|
||||
97332.2908956887m,
|
||||
96755.4023024929m,
|
||||
96181.9329286116m,
|
||||
95648.5390680754m,
|
||||
95081.6300737792m,
|
||||
94536.2079049931m,
|
||||
93975.8916987012m,
|
||||
93436.8124399197m,
|
||||
92883.0123517358m,
|
||||
82053.7992396979m,
|
||||
81583.1093587638m,
|
||||
20513.3607047216m,
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
var npvni = new NPVNI();
|
||||
npvni.ComputeValue(preparedValues, NPVColumn);
|
||||
|
||||
Assert.Equal(0.00382387591691009, npvni.Value, new DoubleArrayComparer());
|
||||
}
|
||||
}
|
||||
}
|
||||
// using EvoCalculator.Core.Calculation.Columns;
|
||||
// using EvoCalculator.Core.Calculation.Post;
|
||||
// using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
// using Xunit;
|
||||
//
|
||||
// namespace EvoCalculator.Core.Tests.Calculation.Post
|
||||
// {
|
||||
// public class NPVNITests
|
||||
// {
|
||||
// [Fact]
|
||||
// public void PriceUP_Year_PRTest1()
|
||||
// {
|
||||
// var preparedValues = new PreparedValues()
|
||||
// {
|
||||
// NpvBase = 1884609.49m
|
||||
// };
|
||||
//
|
||||
// var NPVColumn = new NPVColumn(preparedValues.Nmper + 1, new DateTempColumn(0))
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -2507300m,
|
||||
// 576210.741196628m,
|
||||
// -263857.014691157m,
|
||||
// 115861.35323893m,
|
||||
// 119890.703197292m,
|
||||
// 114557.887385525m,
|
||||
// 113878.902663341m,
|
||||
// 113225.652629434m,
|
||||
// 112554.564064088m,
|
||||
// 111908.910909099m,
|
||||
// 111245.62667335m,
|
||||
// 110586.273723982m,
|
||||
// 98989.135506238m,
|
||||
// 39471.7873776598m,
|
||||
// 97332.2908956887m,
|
||||
// 96755.4023024929m,
|
||||
// 96181.9329286116m,
|
||||
// 95648.5390680754m,
|
||||
// 95081.6300737792m,
|
||||
// 94536.2079049931m,
|
||||
// 93975.8916987012m,
|
||||
// 93436.8124399197m,
|
||||
// 92883.0123517358m,
|
||||
// 82053.7992396979m,
|
||||
// 81583.1093587638m,
|
||||
// 20513.3607047216m,
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// var npvni = new NPVNI();
|
||||
// npvni.ComputeValue(preparedValues, NPVColumn);
|
||||
//
|
||||
// Assert.Equal(0.00382387591691009, npvni.Value, new DoubleArrayComparer());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@ -1,32 +1,32 @@
|
||||
using EvoCalculator.Core.Calculation.Post;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Post
|
||||
{
|
||||
public class PriceUP_PRTests
|
||||
{
|
||||
[Fact]
|
||||
public void PriceUP_PRTest1()
|
||||
{
|
||||
var preparedValues = new PreparedValues()
|
||||
{
|
||||
PriceUpTotal = 2790146.875m,
|
||||
};
|
||||
|
||||
|
||||
var postValues = new PostValues()
|
||||
{
|
||||
PriceUP = new PriceUP()
|
||||
{
|
||||
Value = 499446.893305404m
|
||||
}
|
||||
};
|
||||
|
||||
var priceUpPr = new PriceUP_PR();
|
||||
priceUpPr.ComputeValue(preparedValues, postValues);
|
||||
|
||||
Assert.Equal(0.179003800043825, priceUpPr.Value, new DoubleArrayComparer());
|
||||
}
|
||||
}
|
||||
}
|
||||
// using EvoCalculator.Core.Calculation.Post;
|
||||
// using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
// using Xunit;
|
||||
//
|
||||
// namespace EvoCalculator.Core.Tests.Calculation.Post
|
||||
// {
|
||||
// public class PriceUP_PRTests
|
||||
// {
|
||||
// [Fact]
|
||||
// public void PriceUP_PRTest1()
|
||||
// {
|
||||
// var preparedValues = new PreparedValues()
|
||||
// {
|
||||
// PriceUpTotal = 2790146.875m,
|
||||
// };
|
||||
//
|
||||
//
|
||||
// var postValues = new PostValues()
|
||||
// {
|
||||
// PriceUP = new PriceUP()
|
||||
// {
|
||||
// Value = 499446.893305404m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var priceUpPr = new PriceUP_PR();
|
||||
// priceUpPr.ComputeValue(preparedValues, postValues);
|
||||
//
|
||||
// Assert.Equal(0.179003800043825, priceUpPr.Value, new DoubleArrayComparer());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@ -1,32 +1,32 @@
|
||||
using EvoCalculator.Core.Calculation.Post;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Post
|
||||
{
|
||||
public class PriceUP_Year_PRTests
|
||||
{
|
||||
[Fact]
|
||||
public void PriceUP_Year_PRTest1()
|
||||
{
|
||||
var preparedValues = new PreparedValues()
|
||||
{
|
||||
PriceUpTotal = 2790146.875m,
|
||||
};
|
||||
|
||||
|
||||
var postValues = new PostValues()
|
||||
{
|
||||
PriceUP_Year = new PriceUP_Year()
|
||||
{
|
||||
Value = 239734.508786594m
|
||||
}
|
||||
};
|
||||
|
||||
var priceUpYearPr = new PriceUP_Year_PR();
|
||||
priceUpYearPr.ComputeValue(preparedValues, postValues);
|
||||
|
||||
Assert.Equal(0.0859218240210361, priceUpYearPr.Value, new DoubleArrayComparer());
|
||||
}
|
||||
}
|
||||
}
|
||||
// using EvoCalculator.Core.Calculation.Post;
|
||||
// using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
// using Xunit;
|
||||
//
|
||||
// namespace EvoCalculator.Core.Tests.Calculation.Post
|
||||
// {
|
||||
// public class PriceUP_Year_PRTests
|
||||
// {
|
||||
// [Fact]
|
||||
// public void PriceUP_Year_PRTest1()
|
||||
// {
|
||||
// var preparedValues = new PreparedValues()
|
||||
// {
|
||||
// PriceUpTotal = 2790146.875m,
|
||||
// };
|
||||
//
|
||||
//
|
||||
// var postValues = new PostValues()
|
||||
// {
|
||||
// PriceUP_Year = new PriceUP_Year()
|
||||
// {
|
||||
// Value = 239734.508786594m
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// var priceUpYearPr = new PriceUP_Year_PR();
|
||||
// priceUpYearPr.ComputeValue(preparedValues, postValues);
|
||||
//
|
||||
// Assert.Equal(0.0859218240210361, priceUpYearPr.Value, new DoubleArrayComparer());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@ -1,59 +1,59 @@
|
||||
using EvoCalculator.Core.Calculation.Columns;
|
||||
using EvoCalculator.Core.Calculation.Post;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Post
|
||||
{
|
||||
public class PriceUpTests
|
||||
{
|
||||
[Fact]
|
||||
public void PriceUpTest1()
|
||||
{
|
||||
var preparedValues = new PreparedValues()
|
||||
{
|
||||
PriceUpTotal = 2790146.875m,
|
||||
Nmper = 25
|
||||
};
|
||||
|
||||
var SumColumn = new SumColumn(preparedValues.Nmper + 1, new DateTempColumn(0), null, null, null)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
-2739075.13217019m,
|
||||
625000m,
|
||||
122771.803176996m,
|
||||
122771.803176996m,
|
||||
122771.803176996m,
|
||||
122771.803176996m,
|
||||
122771.803176996m,
|
||||
122771.803176996m,
|
||||
122771.803176996m,
|
||||
122771.803176996m,
|
||||
122771.803176996m,
|
||||
122771.803176996m,
|
||||
110494.622859296m,
|
||||
110494.622859296m,
|
||||
110494.622859296m,
|
||||
110494.622859296m,
|
||||
110494.622859296m,
|
||||
110494.622859296m,
|
||||
110494.622859296m,
|
||||
110494.622859296m,
|
||||
110494.622859296m,
|
||||
110494.622859296m,
|
||||
110494.622859296m,
|
||||
98217.4425415964m,
|
||||
98217.4425415964m,
|
||||
25000m,
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
var PriceUP = new PriceUP();
|
||||
PriceUP.ComputeValue(preparedValues, SumColumn);
|
||||
|
||||
Assert.Equal(499446.893305404m, PriceUP.Value, new DecimalArrayComparer());
|
||||
}
|
||||
}
|
||||
}
|
||||
// using EvoCalculator.Core.Calculation.Columns;
|
||||
// using EvoCalculator.Core.Calculation.Post;
|
||||
// using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
// using Xunit;
|
||||
//
|
||||
// namespace EvoCalculator.Core.Tests.Calculation.Post
|
||||
// {
|
||||
// public class PriceUpTests
|
||||
// {
|
||||
// [Fact]
|
||||
// public void PriceUpTest1()
|
||||
// {
|
||||
// var preparedValues = new PreparedValues()
|
||||
// {
|
||||
// PriceUpTotal = 2790146.875m,
|
||||
// Nmper = 25
|
||||
// };
|
||||
//
|
||||
// var SumColumn = new SumColumn(preparedValues.Nmper + 1, new DateTempColumn(0), null, null, null)
|
||||
// {
|
||||
// Values = new[]
|
||||
// {
|
||||
// -2739075.13217019m,
|
||||
// 625000m,
|
||||
// 122771.803176996m,
|
||||
// 122771.803176996m,
|
||||
// 122771.803176996m,
|
||||
// 122771.803176996m,
|
||||
// 122771.803176996m,
|
||||
// 122771.803176996m,
|
||||
// 122771.803176996m,
|
||||
// 122771.803176996m,
|
||||
// 122771.803176996m,
|
||||
// 122771.803176996m,
|
||||
// 110494.622859296m,
|
||||
// 110494.622859296m,
|
||||
// 110494.622859296m,
|
||||
// 110494.622859296m,
|
||||
// 110494.622859296m,
|
||||
// 110494.622859296m,
|
||||
// 110494.622859296m,
|
||||
// 110494.622859296m,
|
||||
// 110494.622859296m,
|
||||
// 110494.622859296m,
|
||||
// 110494.622859296m,
|
||||
// 98217.4425415964m,
|
||||
// 98217.4425415964m,
|
||||
// 25000m,
|
||||
// }
|
||||
// };
|
||||
//
|
||||
//
|
||||
// var PriceUP = new PriceUP();
|
||||
// PriceUP.ComputeValue(preparedValues, SumColumn);
|
||||
//
|
||||
// Assert.Equal(499446.893305404m, PriceUP.Value, new DecimalArrayComparer());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
Loading…
x
Reference in New Issue
Block a user