+ 2 columns
This commit is contained in:
parent
3759c6f55c
commit
1e8bff1cd3
@ -49,6 +49,8 @@
|
||||
<e p="BaseColumnWithXIRR.cs" t="Include" />
|
||||
<e p="BaseColumnWithXNPV.cs" t="Include" />
|
||||
<e p="CashflowColumn.cs" t="Include" />
|
||||
<e p="CashflowLeasingColumn.cs" t="Include" />
|
||||
<e p="CashflowMSFOColumn.cs" t="Include" />
|
||||
<e p="ComissionBonusExpensesColumn.cs" t="Include" />
|
||||
<e p="DateColumn.cs" t="Include" />
|
||||
<e p="DateTempColumn.cs" t="Include" />
|
||||
@ -148,6 +150,8 @@
|
||||
<e p="AcceptOsagoTests.cs" t="Include" />
|
||||
<e p="AcceptSumTests.cs" t="Include" />
|
||||
<e p="AgentComissionExpensesTests.cs" t="Include" />
|
||||
<e p="CashflowLeasingTests.cs" t="Include" />
|
||||
<e p="CashflowMSFOTests.cs" t="Include" />
|
||||
<e p="CashflowTests.cs" t="Include" />
|
||||
<e p="ComissionBonusExpensesTests.cs" t="Include" />
|
||||
<e p="DateColumnTests.cs" t="Include" />
|
||||
|
||||
52
.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
generated
52
.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
generated
@ -14,13 +14,12 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="2c3b0650-5589-43d4-b4b7-2979612bb30f" name="Default Changelist" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowLeasingColumn.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowLeasingTests.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowMSFOTests.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/contentModel.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/contentModel.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InsuranceBonusExpensesColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InsuranceBonusExpensesColumn.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/InsuranceBonusExpensesTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/InsuranceBonusExpensesTests.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/KaskoNmperGrTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/KaskoNmperGrTests.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@ -45,6 +44,7 @@
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/92/f4ccca9d/GoalSeekResult.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/F680C866-D120-4163-9634-EBD842255BE9/3D/HttpPostAttribute.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/InsuranceBonusExpensesColumn.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/AgentComissionExpensesColumn.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/F680C866-D120-4163-9634-EBD842255BE9/24/ControllerBase.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/9D995D4A-0EBE-4A93-85A6-BE06CB7C70EE/f6/ada9c10c/FactAttribute.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/558EFF1A-6D86-468A-B5D3-8B990CD1FB1A/C/Controller.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
@ -55,16 +55,6 @@
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DeprecationLDColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoBonusGrSumColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVBonusExpensesColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NSIBExpensesColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedPayments.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/PercentPaymentColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumWithVATColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TaxColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/VATColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/DoubleArrayComparer.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AcceptInsuranceTests.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AcceptKaskoTests.cs" />
|
||||
@ -98,14 +88,24 @@
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DateColumnTests.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/FinanceFormulas/FinanceFormulasTests.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/GPS_GrColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TLM_GrColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXNPV.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/InsuranceBonusExpensesTests.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InsuranceBonusExpensesColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/KaskoNmperGrTests.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/RatExpensesColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/AgentComissionExpensesColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ComissionBonusExpensesColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NSIBExpensesColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/RegistrExpensesColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TLM_GrColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TransExprensesColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowLeasingColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowLeasingTests.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowMSFOTests.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@ -181,7 +181,7 @@
|
||||
<workItem from="1603359602644" duration="13087000" />
|
||||
<workItem from="1603447491537" duration="4025000" />
|
||||
<workItem from="1603451569606" duration="6133000" />
|
||||
<workItem from="1603639854245" duration="6806000" />
|
||||
<workItem from="1603639854245" duration="10024000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="rename: flow">
|
||||
<created>1602593830686</created>
|
||||
@ -211,7 +211,14 @@
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1603456459093</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="5" />
|
||||
<task id="LOCAL-00005" summary="fix InsuranceBonusExpensesColumn">
|
||||
<created>1603646824466</created>
|
||||
<option name="number" value="00005" />
|
||||
<option name="presentableId" value="LOCAL-00005" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1603646824466</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="6" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
@ -238,7 +245,8 @@
|
||||
<MESSAGE value="more columns(expenses)" />
|
||||
<MESSAGE value="refactor columns" />
|
||||
<MESSAGE value="refactor types: double to decimal" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="refactor types: double to decimal" />
|
||||
<MESSAGE value="fix InsuranceBonusExpensesColumn" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="fix InsuranceBonusExpensesColumn" />
|
||||
</component>
|
||||
<component name="WindowStateProjectService">
|
||||
<state x="1077" y="489" key="#Web_Browsers" timestamp="1602508282238">
|
||||
@ -377,10 +385,10 @@
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state x="898" y="0" width="1161" height="1387" key="dock-window-1/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603198596935" />
|
||||
<state x="759" y="244" width="1137" height="959" key="find.popup" timestamp="1603457115656">
|
||||
<state x="759" y="244" width="1137" height="959" key="find.popup" timestamp="1603648670658">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state x="759" y="244" width="1137" height="959" key="find.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603457115656" />
|
||||
<state x="759" y="244" width="1137" height="959" key="find.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603648670658" />
|
||||
<state x="936" y="330" key="run.anything.popup" timestamp="1603290743275">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
|
||||
namespace EvoCalculator.Core.Calculation.Columns
|
||||
{
|
||||
public class CashflowLeasingColumn : BaseColumnWithXIRR
|
||||
{
|
||||
public CashflowLeasingColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
|
||||
{
|
||||
}
|
||||
|
||||
public void ComputeValues(PreparedValues preparedValues, SumColumn sumColumn,
|
||||
NegativeCashflowColumn negativeCashflowColumn,
|
||||
NSIBBruttoGrColumn nsibBruttoGrColumn, TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn)
|
||||
{
|
||||
Values[0] = -preparedValues.AcquisitionExpenses;
|
||||
Values[1] = sumColumn.Values[1];
|
||||
for (var i = 2; i < Values.Length; i++)
|
||||
{
|
||||
Values[i] = sumColumn.Values[i]
|
||||
+ negativeCashflowColumn.Values[i]
|
||||
- nsibBruttoGrColumn.Values[i]
|
||||
- tlmGrColumn.Values[i]
|
||||
- gpsGrColumn.Values[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
30
EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs
Normal file
30
EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs
Normal file
@ -0,0 +1,30 @@
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
|
||||
namespace EvoCalculator.Core.Calculation.Columns
|
||||
{
|
||||
public class CashflowMSFOColumn : BaseColumnWithXIRR
|
||||
{
|
||||
public CashflowMSFOColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
|
||||
{
|
||||
}
|
||||
|
||||
public void ComputeValues(PreparedValues preparedValues, SumColumn sumColumn,
|
||||
NegativeCashflowColumn negativeCashflowColumn,
|
||||
NSIBBruttoGrColumn nsibBruttoGrColumn, TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn,
|
||||
NPVBonusExpensesColumn npvBonusExpensesColumn, AgentComissionExpensesColumn agentComissionExpensesColumn)
|
||||
{
|
||||
Values[0] = -preparedValues.AcquisitionExpenses;
|
||||
Values[1] = sumColumn.Values[1] + npvBonusExpensesColumn.Values[1] + agentComissionExpensesColumn.Values[1];
|
||||
for (var i = 2; i < Values.Length; i++)
|
||||
{
|
||||
Values[i] = sumColumn.Values[i]
|
||||
+ negativeCashflowColumn.Values[i]
|
||||
- nsibBruttoGrColumn.Values[i]
|
||||
- tlmGrColumn.Values[i]
|
||||
- gpsGrColumn.Values[i]
|
||||
+ npvBonusExpensesColumn.Values[i]
|
||||
+ agentComissionExpensesColumn.Values[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +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)
|
||||
{
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,371 @@
|
||||
using System;
|
||||
using EvoCalculator.Core.Calculation.Columns;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using Xunit;
|
||||
|
||||
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
{
|
||||
public class CashflowMSFOTests
|
||||
{
|
||||
[Fact]
|
||||
public void CashflowMSFOTest1()
|
||||
{
|
||||
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)
|
||||
{
|
||||
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 npvBonusExpensesColumn = 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 agentComissionExpensesColumn = 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 cashflowMsfoColumn = new CashflowMSFOColumn(preparedValues.Nmper + 1, dateTempColumn);
|
||||
cashflowMsfoColumn.ComputeValues(preparedValues, sumColumn, negativeCashFlowColumn, nsibBruttoGrColumn,
|
||||
tlmGrColumn,
|
||||
gpsGrColumn,
|
||||
npvBonusExpensesColumn,
|
||||
agentComissionExpensesColumn
|
||||
);
|
||||
|
||||
|
||||
var expected = new[]
|
||||
{
|
||||
-2507300m,
|
||||
623323.69753125m,
|
||||
-358608.165405556m,
|
||||
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, cashflowMsfoColumn.Values.Length);
|
||||
Assert.Equal(0.0517445296049118, cashflowMsfoColumn.IRR, new DoubleArrayComparer(0.01));
|
||||
Assert.Equal(expected, cashflowMsfoColumn.Values, new DecimalArrayComparer());
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user