auto calculate props in preparedValues

This commit is contained in:
Chika 2020-12-18 16:13:20 +03:00
parent 1492cca5ae
commit 4b4e118013
13 changed files with 2663 additions and 2619 deletions

View File

@ -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;
}
}

View File

@ -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());
// }
// }
// }

View File

@ -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());
// }
// }
// }

View File

@ -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());
// }
// }
// }

View File

@ -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());
// }
// }
// }

View File

@ -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());
// }
// }
// }

View File

@ -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());
// }
// }
// }

View File

@ -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());
// }
// }
// }

View File

@ -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());
// }
// }
// }

View File

@ -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());
// }
// }
// }

View File

@ -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());
// }
// }
// }

View File

@ -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());
// }
// }
// }