last columns(!!!)

This commit is contained in:
Chika 2020-10-27 14:45:15 +03:00
parent 14f99e0f72
commit afd0ca1d13
28 changed files with 1966 additions and 167 deletions

View File

@ -45,6 +45,7 @@
<e p="AcceptSumColumn.cs" t="Include" />
<e p="AgentComissionExpensesColumn.cs" t="Include" />
<e p="BaseColumn.cs" t="Include" />
<e p="BaseColumnWithGoalSeek.cs" t="Include" />
<e p="BaseColumnWithNominal.cs" t="Include" />
<e p="BaseColumnWithSum.cs" t="Include" />
<e p="BaseColumnWithXIRR.cs" t="Include" />
@ -52,14 +53,21 @@
<e p="CashflowColumn.cs" t="Include" />
<e p="CashflowLeasingColumn.cs" t="Include" />
<e p="CashflowMSFOColumn.cs" t="Include" />
<e p="CashflowMSFOFinal2Column.cs" t="Include" />
<e p="CashflowMSFOFinalColumn.cs" t="Include" />
<e p="CashflowNPVColumn.cs" t="Include" />
<e p="CashflowNPVFinal2Column.cs" t="Include" />
<e p="CashflowNPVFinalColumn.cs" t="Include" />
<e p="CashflowNSIBColumn.cs" t="Include" />
<e p="ComissionBonusExpensesColumn.cs" t="Include" />
<e p="DateColumn.cs" t="Include" />
<e p="DateTempColumn.cs" t="Include" />
<e p="DeprecationColumn.cs" t="Include" />
<e p="DeprecationLDColumn.cs" t="Include" />
<e p="DeprecationLPColumn.cs" t="Include" />
<e p="DirectorBonusSumColumn.cs" t="Include" />
<e p="ExpensesColumn.cs" t="Include" />
<e p="ExtraBonusSumColumn.cs" t="Include" />
<e p="GPS_GrColumn.cs" t="Include" />
<e p="GPSExpensesColumn.cs" t="Include" />
<e p="InsuranceBonusExpensesColumn.cs" t="Include" />
@ -71,17 +79,21 @@
<e p="NIColumn.cs" t="Include" />
<e p="NPVBonusExpensesColumn.cs" t="Include" />
<e p="NPVColumn.cs" t="Include" />
<e p="NPVFinal2Column.cs" t="Include" />
<e p="NPVFinalColumn.cs" t="Include" />
<e p="NpvWeightColumn.cs" t="Include" />
<e p="NSIBBruttoGrColumn.cs" t="Include" />
<e p="NsibExpensesColumn.cs" t="Include" />
<e p="PercentPaymentColumn.cs" t="Include" />
<e p="RatExpensesColumn.cs" t="Include" />
<e p="RegistrExpensesColumn.cs" t="Include" />
<e p="RevenueColumn.cs" t="Include" />
<e p="SumColumn.cs" t="Include" />
<e p="SumCurrentColumn.cs" t="Include" />
<e p="SumCurrentInterestColumn.cs" t="Include" />
<e p="SumCurrentNegativeColumn.cs" t="Include" />
<e p="SumCurrentTLMColumn.cs" t="Include" />
<e p="SumRepaymentColumn.cs" t="Include" />
<e p="SumWithVATColumn.cs" t="Include" />
<e p="TaxColumn.cs" t="Include" />
<e p="TLM_GRColumn.cs" t="Include" />
@ -162,8 +174,13 @@
<e p="AcceptSumTests.cs" t="Include" />
<e p="AgentComissionExpensesTests.cs" t="Include" />
<e p="CashflowLeasingTests.cs" t="Include" />
<e p="CashflowMSFOFinal.cs" t="Include" />
<e p="CashflowMSFOFinal2.cs" t="Include" />
<e p="CashflowMSFOTests.cs" t="Include" />
<e p="CashflowNPV.cs" t="Include" />
<e p="CashflowNPVFinal.cs" t="Include" />
<e p="CashflowNPVFinal2.cs" t="Include" />
<e p="CashflowNSIB.cs" t="Include" />
<e p="CashflowTests.cs" t="Include" />
<e p="ComissionBonusExpensesTests.cs" t="Include" />
<e p="DateColumnTests.cs" t="Include" />
@ -171,7 +188,9 @@
<e p="DeprecationLDTests.cs" t="Include" />
<e p="DeprecationLPTests.cs" t="Include" />
<e p="DeprecationTests.cs" t="Include" />
<e p="DirectorBonusSum.cs" t="Include" />
<e p="ExpensesTests.cs" t="Include" />
<e p="ExtraBonusSum.cs" t="Include" />
<e p="GPS_GrTests.cs" t="Include" />
<e p="GPSExpensesTests.cs" t="Include" />
<e p="InsuranceBonusExpensesTests.cs" t="Include" />
@ -183,16 +202,20 @@
<e p="NI.cs" t="Include" />
<e p="NPV.cs" t="Include" />
<e p="NPVBonusExpensesTests.cs" t="Include" />
<e p="NPVFinal.cs" t="Include" />
<e p="NPVFinal2.cs" t="Include" />
<e p="NPVWeight.cs" t="Include" />
<e p="NSIBBruttoGrTests.cs" t="Include" />
<e p="NsibExpensesTests.cs" t="Include" />
<e p="PercentPaymentTests.cs" t="Include" />
<e p="RatExpensesTests.cs" t="Include" />
<e p="RegistrExpensesTests.cs" t="Include" />
<e p="Revenue.cs" t="Include" />
<e p="SumCurrent.cs" t="Include" />
<e p="SumCurrentInterest.cs" t="Include" />
<e p="SumCurrentNegative.cs" t="Include" />
<e p="SumCurrentTLM.cs" t="Include" />
<e p="SumRepaymentColumn.cs" t="Include" />
<e p="SumTest.cs" t="Include" />
<e p="SumWithVatTests.cs" t="Include" />
<e p="TaxColumnTests.cs" t="Include" />

View File

@ -14,51 +14,29 @@
</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/BaseColumnWithNominal.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/IRRGrColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InterestColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NIColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVWeightColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumCurrentColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumCurrentInterestColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumCurrentNegativeColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumCurrentTLMColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowNPV.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/IRRGr.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/Interest.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NI.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPV.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVWeight.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrent.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrentInterest.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrentNegative.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrentTLM.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithGoalSeek.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOFinal2Column.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOFinalColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinal2Column.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinalColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DirectorBonusSumColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ExtraBonusSumColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinal2Column.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinalColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/RevenueColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowMSFOFinal2.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowNPVFinal.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowNPVFinal2.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowNSIB.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DirectorBonusSum.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ExtraBonusSum.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVFinal.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVFinal2.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/Revenue.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/BaseColumnWithSum.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithSum.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXNPV.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXNPV.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ExpensesColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ExpensesColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TaxColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TaxColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TransExprensesColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TransExpensesColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowMSFOTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowMSFOTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationLDTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationLDTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationLPTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationLPTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ExpensesTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ExpensesTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/GPSExpensesTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/GPSExpensesTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/GPS_GrTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/GPS_GrTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVBonusExpensesTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVBonusExpensesTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NSIBBruttoGrTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NSIBBruttoGrTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NSIBExpensesTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NSIBExpensesTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TLMExpensesTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TLMExpensesTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TLM_GrTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TLM_GrTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TaxColumnTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TaxColumnTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TransExprensesTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TransExprensesTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/VATColumnTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/VATColumnTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedParams.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedParams.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" />
@ -83,11 +61,9 @@
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/18D5A60D-361A-4AFD-A431-F772FA87FCC3/d9/b0109e6d/TestInvoker`1.cs" root0="SKIP_HIGHLIGHTING" />
<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/CashflowMSFOColumn.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" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Tests/Calculation/Columns/CashflowMSFOTests.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/d6/c014ca2d/GoalSeekOptions.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/89/f5bc57e5/Trident.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/D0/TimeSpan.cs" root0="SKIP_HIGHLIGHTING" />
@ -96,36 +72,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<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.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" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowMSFO.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithNominal.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithSum.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXNPV.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TransExpensesColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowNPV.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NpvWeightColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPV.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVWeightColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVWeight.cs" />
@ -147,6 +93,36 @@
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrentInterest.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrentTLM.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumCurrentTLMColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumRepaymentColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumRepaymentColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedParams.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ExtraBonusSumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/ArrayComparer.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ExtraBonusSum.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowMSFOFinal.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOFinalColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/CashflowNPVFinal.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowNPVFinal.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinalColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVFinal.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinalColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DirectorBonusColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DirectorBonusSumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DirectorBonusSum.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowMSFOFinal2.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOFinal2Column.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowNPVFinal2.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinal2Column.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVFinal2.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinal2Column.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/BaseColumnWithGoalSeek.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithGoalSeek.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNSIBColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowNSIB.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/RevenueColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/Revenue.cs" />
</list>
</option>
</component>
@ -223,7 +199,8 @@
<workItem from="1603447491537" duration="4025000" />
<workItem from="1603451569606" duration="6133000" />
<workItem from="1603639854245" duration="10211000" />
<workItem from="1603704776782" duration="10254000" />
<workItem from="1603704776782" duration="11419000" />
<workItem from="1603792346415" duration="6565000" />
</task>
<task id="LOCAL-00001" summary="rename: flow">
<created>1602593830686</created>
@ -260,7 +237,14 @@
<option name="project" value="LOCAL" />
<updated>1603646824466</updated>
</task>
<option name="localTasksCounter" value="6" />
<task id="LOCAL-00006" summary="new column type | new columns">
<created>1603717567220</created>
<option name="number" value="00006" />
<option name="presentableId" value="LOCAL-00006" />
<option name="project" value="LOCAL" />
<updated>1603717567220</updated>
</task>
<option name="localTasksCounter" value="7" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@ -288,7 +272,8 @@
<MESSAGE value="refactor columns" />
<MESSAGE value="refactor types: double to decimal" />
<MESSAGE value="fix InsuranceBonusExpensesColumn" />
<option name="LAST_COMMIT_MESSAGE" value="fix InsuranceBonusExpensesColumn" />
<MESSAGE value="new column type | new columns" />
<option name="LAST_COMMIT_MESSAGE" value="new column type | new columns" />
</component>
<component name="WindowStateProjectService">
<state x="1077" y="489" key="#Web_Browsers" timestamp="1602508282238">
@ -303,110 +288,110 @@
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="1108" y="416" key="#com.intellij.ide.ui.customization.CustomizableActionsPanel.FindAvailableActionsDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603119675236" />
<state x="1027" y="545" key="ANALYSIS_DLG_com.jetbrains.rider.actions.impl.cleanup.RiderCodeCleanupAction$actionPerformed$dlg$1" timestamp="1603456160137">
<state x="1027" y="545" key="ANALYSIS_DLG_com.jetbrains.rider.actions.impl.cleanup.RiderCodeCleanupAction$actionPerformed$dlg$1" timestamp="1603798873159">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="1027" y="545" key="ANALYSIS_DLG_com.jetbrains.rider.actions.impl.cleanup.RiderCodeCleanupAction$actionPerformed$dlg$1/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603456160137" />
<state width="535" height="702" key="DebuggerActiveHint" timestamp="1603716439590">
<state x="1027" y="545" key="ANALYSIS_DLG_com.jetbrains.rider.actions.impl.cleanup.RiderCodeCleanupAction$actionPerformed$dlg$1/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798873159" />
<state width="535" height="702" key="DebuggerActiveHint" timestamp="1603716624018">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="535" height="702" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716439590" />
<state width="2517" height="682" key="GridCell.Tab.0.bottom" timestamp="1603716546080">
<state width="535" height="702" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716624018" />
<state width="2517" height="481" key="GridCell.Tab.0.bottom" timestamp="1603798181712">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.0.center" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181712" />
<state width="2517" height="481" key="GridCell.Tab.0.center" timestamp="1603798181712">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.0.left" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181712" />
<state width="2517" height="481" key="GridCell.Tab.0.left" timestamp="1603798181712">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.0.right" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181712" />
<state width="2517" height="481" key="GridCell.Tab.0.right" timestamp="1603798181712">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.1.bottom" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181712" />
<state width="2517" height="481" key="GridCell.Tab.1.bottom" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.1.center" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state width="2517" height="481" key="GridCell.Tab.1.center" timestamp="1603798181712">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.1.left" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181712" />
<state width="2517" height="481" key="GridCell.Tab.1.left" timestamp="1603798181712">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.1.right" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181712" />
<state width="2517" height="481" key="GridCell.Tab.1.right" timestamp="1603798181712">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.2.bottom" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181712" />
<state width="2517" height="481" key="GridCell.Tab.2.bottom" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.2.center" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state width="2517" height="481" key="GridCell.Tab.2.center" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.2.left" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state width="2517" height="481" key="GridCell.Tab.2.left" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.2.right" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state width="2517" height="481" key="GridCell.Tab.2.right" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.3.bottom" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state width="2517" height="481" key="GridCell.Tab.3.bottom" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.3.center" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state width="2517" height="481" key="GridCell.Tab.3.center" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.3.left" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state width="2517" height="481" key="GridCell.Tab.3.left" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.3.right" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state width="2517" height="481" key="GridCell.Tab.3.right" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.4.bottom" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state width="2517" height="481" key="GridCell.Tab.4.bottom" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.4.center" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state width="2517" height="481" key="GridCell.Tab.4.center" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.4.left" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state width="2517" height="481" key="GridCell.Tab.4.left" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="682" key="GridCell.Tab.4.right" timestamp="1603716546080">
<state width="2517" height="481" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state width="2517" height="481" key="GridCell.Tab.4.right" timestamp="1603798181713">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="682" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603716546080" />
<state width="2517" height="481" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798181713" />
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602854431119">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602854431119" />
<state x="1108" y="385" key="RiderGenerateDialog" timestamp="1603452136077">
<state x="1108" y="385" key="RiderGenerateDialog" timestamp="1603797366348">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="1108" y="385" key="RiderGenerateDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603452136077" />
<state x="1108" y="385" key="RiderGenerateDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603797366348" />
<state x="1078" y="410" key="RollbackChangesDialog" timestamp="1603457630228">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="1078" y="410" key="RollbackChangesDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603457630228" />
<state x="302" y="107" width="1537" height="899" key="SettingsEditor" timestamp="1603711979982">
<state x="302" y="107" width="1537" height="899" key="SettingsEditor" timestamp="1603793626448">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="302" y="107" width="1537" height="899" key="SettingsEditor/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603711979982" />
<state x="302" y="107" width="1537" height="899" key="SettingsEditor/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603793626448" />
<state width="498" height="446" key="SwitcherDM" timestamp="1603454051875">
<screen x="0" y="0" width="2560" height="1400" />
</state>
@ -415,26 +400,26 @@
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603709850962" />
<state x="872" y="433" key="Vcs.Push.Dialog.v2" timestamp="1603456466180">
<state x="872" y="433" key="Vcs.Push.Dialog.v2" timestamp="1603717569743">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="872" y="433" key="Vcs.Push.Dialog.v2/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603456466180" />
<state x="872" y="433" key="Vcs.Push.Dialog.v2/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603717569743" />
<state x="92" y="92" width="2376" height="1216" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog" timestamp="1603456576335">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="92" y="92" width="2376" height="1216" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603456576335" />
<state x="897" y="337" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser" timestamp="1603709612427">
<state x="897" y="337" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser" timestamp="1603793502729">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="897" y="337" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603709612427" />
<state x="897" y="337" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603793502729" />
<state x="898" y="0" width="1161" height="1387" key="dock-window-1" timestamp="1603198596935">
<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="1603714824423">
<state x="759" y="244" width="1137" height="959" key="find.popup" timestamp="1603797436819">
<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="1603714824423" />
<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="1603797436819" />
<state x="936" y="330" key="run.anything.popup" timestamp="1603290743275">
<screen x="0" y="0" width="2560" height="1400" />
</state>
@ -465,40 +450,27 @@
<line>256</line>
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Tests\Calculation\Columns\InsuranceBonusExpensesTests.cs" initialLine="256">
<startOffsets>
<option value="6716" />
<option value="6715" />
</startOffsets>
<endOffsets>
<option value="6788" />
<option value="6787" />
</endOffsets>
</properties>
<option name="timeStamp" value="7" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrentTLM.cs</url>
<line>86</line>
<line>85</line>
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Tests\Calculation\Columns\SumCurrentTLM.cs" initialLine="86">
<startOffsets>
<option value="2193" />
<option value="2186" />
</startOffsets>
<endOffsets>
<option value="2272" />
<option value="2265" />
</endOffsets>
</properties>
<option name="timeStamp" value="14" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumCurrentTLMColumn.cs</url>
<line>14</line>
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Calculation\Columns\SumCurrentTLMColumn.cs" initialLine="14">
<startOffsets>
<option value="388" />
</startOffsets>
<endOffsets>
<option value="389" />
</endOffsets>
</properties>
<option name="timeStamp" value="16" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<pin-to-top-manager>
@ -511,6 +483,9 @@
<watches-manager>
<configuration name="RiderUnitTests">
<watch expression="Convert.ToDecimal(&#10; (this._preparedValues.BaseCost - this._preparedValues.FirstPaymentSum) /&#10; this._preparedValues.Nmper)" />
<watch expression="tlmGrColumn.Values.Skip(i).Sum(x =&gt; x)" />
<watch expression="Values" />
<watch expression="Math.Abs(x - y)" />
</configuration>
</watches-manager>
</component>

View File

@ -0,0 +1,15 @@
using TridentGoalSeek;
namespace EvoCalculator.Core.Calculation.Columns
{
public abstract class BaseColumnWithGoalSeek : BaseColumnWithXIRR, IGoalSeekAlgorithm
{
public BaseColumnWithGoalSeek(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
{
}
public abstract decimal Calculate(decimal inputVariable);
protected abstract void FillValues(decimal x);
public abstract void ComputeValues(decimal requiredValue);
}
}

View File

@ -0,0 +1,20 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class CashflowMSFOFinal2Column : BaseColumnWithNominal
{
public CashflowMSFOFinal2Column(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
{
}
public void ComputeValues(PreparedValues preparedValues, DirectorBonusSumColumn directorBonusSumColumn,
CashflowMSFOFinalColumn cashflowMsfoFinalColumn)
{
Values[0] = -preparedValues.AcquisitionExpenses;
Values[1] = cashflowMsfoFinalColumn.Values[1];
for (var i = 2; i < Values.Length; i++)
Values[i] = cashflowMsfoFinalColumn.Values[i] + directorBonusSumColumn.Values[i];
}
}
}

View File

@ -0,0 +1,20 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class CashflowMSFOFinalColumn : BaseColumnWithNominal
{
public CashflowMSFOFinalColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
{
}
public void ComputeValues(PreparedValues preparedValues, CashflowMSFOColumn cashflowMsfoColumn,
ExtraBonusSumColumn extraBonusSumColumn)
{
Values[0] = -preparedValues.AcquisitionExpenses;
Values[1] = cashflowMsfoColumn.Values[1];
for (var i = 2; i < Values.Length; i++)
Values[i] = cashflowMsfoColumn.Values[i] + extraBonusSumColumn.Values[i];
}
}
}

View File

@ -0,0 +1,21 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class CashflowNPVFinal2Column : BaseColumn<decimal>
{
public CashflowNPVFinal2Column(int count) : base(count)
{
}
public void ComputeValues(PreparedValues preparedValues, CashflowNPVFinalColumn cashflowNpvFinalColumn,
DirectorBonusSumColumn directorBonusSumColumn)
{
Values[0] = -preparedValues.AcquisitionExpenses;
Values[1] = cashflowNpvFinalColumn.Values[1];
for (var i = 2; i < Values.Length; i++)
Values[i] = cashflowNpvFinalColumn.Values[i] + directorBonusSumColumn.Values[i];
}
}
}

View File

@ -0,0 +1,20 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class CashflowNPVFinalColumn : BaseColumn<decimal>
{
public CashflowNPVFinalColumn(int count) : base(count)
{
}
public void ComputeValues(PreparedValues preparedValues, ExtraBonusSumColumn extraBonusSumColumn,
CashflowNPVColumn cashflowNpvColumn)
{
Values[0] = -preparedValues.AcquisitionExpenses;
Values[1] = cashflowNpvColumn.Values[1];
for (var i = 2; i < Values.Length; i++)
Values[i] = extraBonusSumColumn.Values[i] + cashflowNpvColumn.Values[i];
}
}
}

View File

@ -0,0 +1,19 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class DirectorBonusSumColumn : BaseColumnWithSum
{
public DirectorBonusSumColumn(int count) : base(count)
{
}
public void ComputeValues(PreparedValues preparedValues)
{
Values[2] = -preparedValues.BonusBase * (decimal) preparedValues.DirectorBonus *
(decimal) (1 + preparedValues.SalaryRate) *
(decimal) (1 + preparedValues.MarketRate + preparedValues.DistrictRate);
Values[0] = Sum;
}
}
}

View File

@ -0,0 +1,22 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class ExtraBonusSumColumn : BaseColumnWithSum
{
public ExtraBonusSumColumn(int count) : base(count)
{
}
public void ComputeValues(PreparedValues preparedValues, CashflowMSFOColumn cashflowMsfoColumn)
{
Values[2] = cashflowMsfoColumn.Nominal >= preparedValues.IRR_MSFO_Plan
? -1 * preparedValues.BonusBase *
(decimal) (cashflowMsfoColumn.Nominal / preparedValues.IRR_MSFO_Plan - 1) *
(decimal) preparedValues.ExtraBonus * (decimal) (1 + preparedValues.SalaryRate) *
(decimal) (1 + preparedValues.MarketRate + preparedValues.DistrictRate)
: 0;
Values[0] = Sum;
}
}
}

View File

@ -9,9 +9,7 @@
public void ComputeValues(CashflowNPVColumn cashflowNpvColumn, NPVWeightColumn npvWeightColumn)
{
for (var i = 0; i < Values.Length; i++)
{
Values[i] = cashflowNpvColumn.Values[i] * (decimal) npvWeightColumn.Values[i];
}
}
}
}

View File

@ -0,0 +1,17 @@
namespace EvoCalculator.Core.Calculation.Columns
{
public class NPVFinal2Column : BaseColumnWithNominal
{
public NPVFinal2Column(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
{
}
public void ComputeValues(CashflowNPVFinal2Column cashflowNpvFinal2Column, NPVWeightColumn npvWeightColumn)
{
for (var i = 0; i < Values.Length; i++)
{
Values[i] = cashflowNpvFinal2Column.Values[i] * (decimal) npvWeightColumn.Values[i];
}
}
}
}

View File

@ -0,0 +1,15 @@
namespace EvoCalculator.Core.Calculation.Columns
{
public class NPVFinalColumn : BaseColumnWithNominal
{
public NPVFinalColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
{
}
public void ComputeValues(CashflowNPVFinalColumn cashflowNpvFinalColumn, NPVWeightColumn npvWeightColumn)
{
for (var i = 0; i < Values.Length; i++)
Values[i] = cashflowNpvFinalColumn.Values[i] * (decimal) npvWeightColumn.Values[i];
}
}
}

View File

@ -13,11 +13,9 @@ namespace EvoCalculator.Core.Calculation.Columns
{
Values[0] = 1;
for (var i = 1; i < Values.Length; i++)
{
Values[i] = Values[i - 1] / Math.Pow(
1 + preparedValues.LoanRate / 365,
(dateTempColumn.Values[i] - dateTempColumn.Values[i - 1]).Days);
}
}
}
}

View File

@ -0,0 +1,17 @@
namespace EvoCalculator.Core.Calculation.Columns
{
public class RevenueColumn : BaseColumn<decimal>
{
public RevenueColumn(int count) : base(count)
{
}
public void ComputeValues(NSIBBruttoGrColumn nsibBruttoGrColumn, NSIBExpensesColumn nsibExpensesColumn,
CashflowNSIBColumn cashflowNsibColumn)
{
Values[1] = nsibBruttoGrColumn.Values[1] - cashflowNsibColumn.Values[1];
for (var i = 2; i < Values.Length; i++)
Values[i] = Values[1] * nsibExpensesColumn.Values[i] / nsibExpensesColumn.Values[1];
}
}
}

View File

@ -4,7 +4,7 @@ using TridentGoalSeek;
namespace EvoCalculator.Core.Calculation.Columns
{
public class SumColumn : BaseColumnWithXIRR, IGoalSeekAlgorithm
public class SumColumn : BaseColumnWithGoalSeek
{
private readonly PercentPaymentColumn _percentPaymentColumn;
private readonly PreparedValues _preparedValues;
@ -17,13 +17,13 @@ namespace EvoCalculator.Core.Calculation.Columns
_percentPaymentColumn = percentPaymentColumn;
}
public decimal Calculate(decimal inputVariable)
public override decimal Calculate(decimal inputVariable)
{
FillValues(inputVariable);
return Convert.ToDecimal(IRR);
}
private void FillValues(decimal x)
protected override void FillValues(decimal x)
{
Values[0] = -_preparedValues.BaseCost;
Values[1] = _preparedValues.FirstPaymentSum;
@ -33,10 +33,10 @@ namespace EvoCalculator.Core.Calculation.Columns
Values[^1] = _preparedValues.LastPaymentSum;
}
public void ComputeValues(decimal requiredIRR)
public override void ComputeValues(decimal requiredValue)
{
var goalSeek = new GoalSeek(this);
goalSeek.SeekResult(requiredIRR,
goalSeek.SeekResult(requiredValue,
new GoalSeekOptions(
startingStabPoint: Convert.ToDecimal(
(_preparedValues.BaseCost - _preparedValues.FirstPaymentSum) /

View File

@ -10,10 +10,7 @@ namespace EvoCalculator.Core.Calculation.Columns
public void ComputeValues(SumWithVATColumn sumWithVatColumn)
{
for (var i = 1; i < Values.Length; i++)
{
Values[i] = sumWithVatColumn.Values.Skip(i).Sum(x => x);
}
for (var i = 1; i < Values.Length; i++) Values[i] = sumWithVatColumn.Values.Skip(i).Sum(x => x);
}
}
}

View File

@ -10,10 +10,7 @@ namespace EvoCalculator.Core.Calculation.Columns
public void ComputeValues(NegativeCashflowColumn negativeCashflowColumn)
{
for (var i = 1; i < Values.Length; i++)
{
Values[i] = negativeCashflowColumn.Values.Skip(i).Sum(x => x);
}
for (var i = 1; i < Values.Length; i++) Values[i] = negativeCashflowColumn.Values.Skip(i).Sum(x => x);
}
}
}

View File

@ -90,5 +90,8 @@ namespace EvoCalculator.Core.Models.Calculation.Models.Prepared
public decimal BonusBase { get; set; }
public decimal NpvBase { get; set; }
public decimal TLMCost { get; set; }
public double IRR_MSFO_Plan { get; set; }
public double ExtraBonus { get; set; }
public double DirectorBonus { get; set; }
}
}

View File

@ -0,0 +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());
}
}
}

View File

@ -0,0 +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());
}
}
}

View File

@ -0,0 +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());
}
}
}

View File

@ -0,0 +1,232 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class CashflowNsibTests
{
[Fact]
public void CashflowNsibTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25
};
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 cashflowLeasingColumn = new CashflowLeasingColumn(preparedValues.Nmper + 1, dateTempColumn)
{
Values = new[]
{
-2507300m,
625000m,
117858.04449644m,
119758.04449644m,
119758.04449644m,
119758.04449644m,
119758.04449644m,
119758.04449644m,
119758.04449644m,
119758.04449644m,
119758.04449644m,
119758.04449644m,
107480.86417874m,
50064.1975120737m,
107480.86417874m,
107480.86417874m,
107480.86417874m,
107480.86417874m,
107480.86417874m,
107480.86417874m,
107480.86417874m,
107480.86417874m,
107480.86417874m,
95203.6838610409m,
95203.6838610409m,
21986.2413194444m
}
};
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 nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
26730.2083333333m,
0,
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 cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn,
nsibBruttoGrColumn, nsibExpensesColumn);
cashflowNsibColumn.ComputeValues((decimal) cashflowLeasingColumn.IRR);
var expected = new[]
{
0,
-10899.0991979689m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
-10693.5987839108m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m
};
Assert.Equal(expected.Length, cashflowNsibColumn.Values.Length);
Assert.Equal(0.379046887159348, cashflowNsibColumn.IRR, new DoubleArrayComparer());
Assert.Equal(expected, cashflowNsibColumn.Values, new DecimalArrayComparer(1));
}
}
}

View File

@ -0,0 +1,61 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class DirectorBonusSumTests
{
[Fact]
public void DirectorBonusSumTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25,
BonusBase = 1873191.66666667m,
DirectorBonus = 0.003,
SalaryRate = 0.3,
MarketRate = 0.01,
DistrictRate = 0.02
};
var directorBonusSumColumn = new DirectorBonusSumColumn(preparedValues.Nmper + 1);
directorBonusSumColumn.ComputeValues(preparedValues);
var expected = 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
};
Assert.Equal(expected.Length, directorBonusSumColumn.Values.Length);
Assert.Equal(expected, directorBonusSumColumn.Values, new DecimalArrayComparer());
}
}
}

View File

@ -0,0 +1,170 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class ExtraBonusSumTests
{
[Fact]
public void ExtraBonusSumTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25,
IRR_MSFO_Plan = 0.05,
BonusBase = 1873191.66666667m,
ExtraBonus = 0.00764256319811875,
SalaryRate = 0,
MarketRate = 0,
DistrictRate = 0
};
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 cashflowMsfoColumn = new CashflowMSFOColumn(preparedValues.Nmper + 1, dateTempColumn)
{
Values = new[]
{
-2507300m,
623323.69753125m,
-355830.906125263m,
119763.500599737m,
119763.500599737m,
119763.500599737m,
119763.500599737m,
119763.500599737m,
119763.500599737m,
119763.500599737m,
119763.500599737m,
119763.500599737m,
107485.774671708m,
50069.1080050413m,
107485.774671708m,
107485.774671708m,
107485.774671708m,
107485.774671708m,
107485.774671708m,
107485.774671708m,
107485.774671708m,
107485.774671708m,
107485.774671708m,
95208.0487436787m,
95208.0487436787m,
21986.2413194444m
}
};
var extraBonusSumColumn = new ExtraBonusSumColumn(preparedValues.Nmper + 1);
extraBonusSumColumn.ComputeValues(preparedValues, cashflowMsfoColumn);
var expected = 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
};
Assert.Equal(expected.Length, extraBonusSumColumn.Values.Length);
Assert.Equal(expected, extraBonusSumColumn.Values, new DecimalArrayComparer(0.3));
}
}
}

View File

@ -0,0 +1,240 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class NpvFinalTests
{
[Fact]
public void NpvFinalTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25
};
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 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 npvWeightColumn = new NPVWeightColumn(67)
{
Values = new[]
{
1,
1,
0.994263643057415,
0.98837064137184,
0.982512567513616,
0.977251253020835,
0.97145908378937,
0.965886447729637,
0.960161637711399,
0.954653807834909,
0.948995573685451,
0.943370875895905,
0.937959363822527,
0.93240007766075,
0.927051498001993,
0.921556862772709,
0.916094794252359,
0.911014429114697,
0.905614845610017,
0.900419915603094,
0.895083125791432,
0.889948609488607,
0.884673883119589,
0.879430420059453,
0.874385693263824,
0.869203208316068,
0.864217148457527,
0.859094932485813,
0.854003075893692,
0.849429924456607,
0.844395352377508,
0.83955159923561,
0.834575576000758,
0.829788152601254,
0.824869997325142,
0.81998099196066,
0.815277288304638,
0.810445138936875,
0.80579613633755,
0.801020181767729,
0.796272534285798,
0.792008527530705,
0.787314292133165,
0.78279797632749,
0.778158331876872,
0.773694537927379,
0.769108849565985,
0.764550340584458,
0.76016460693029,
0.755659110484519,
0.751324380099863,
0.746871279688058,
0.7424445728072,
0.738468812577606,
0.734091907128381,
0.729880893920429,
0.725554889074355,
0.721392847249186,
0.717117151064894,
0.712866796936501,
0.708777538536756,
0.704576613300819,
0.700534910353527,
0.696382839183729,
0.692255377344236,
0.688416353143374,
0.684336108675241
}
};
var npvFinalColumn = new NPVFinalColumn(preparedValues.Nmper + 1, dateTempColumn);
npvFinalColumn.ComputeValues(cashflowNpvFinalColumn, npvWeightColumn);
var expected = new[]
{
-2507300m,
562200.08956372m,
-308807.677421272m,
133563.879396326m,
137488.306463045m,
132061.256207708m,
131278.528999622m,
130525.468498383m,
129751.843905708m,
129007.541015107m,
128242.913180264m,
127482.817295423m,
114108.792576015m,
54501.8302236648m,
112276.116051067m,
111610.655390045m,
110949.13891508m,
110333.850911115m,
109679.902057675m,
109050.738990044m,
108404.395142344m,
107782.548837663m,
107143.721554365m,
94654.8534297361m,
94111.879404115m,
20026.2365707247m
};
Assert.Equal(expected.Length, npvFinalColumn.Values.Length);
Assert.Equal(0.13361788392067, npvFinalColumn.IRR, new DoubleArrayComparer());
Assert.Equal(0.126071837819239, npvFinalColumn.Nominal, new DoubleArrayComparer());
Assert.Equal(expected, npvFinalColumn.Values, new DecimalArrayComparer());
}
}
}

View File

@ -0,0 +1,241 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class NpvFinal2Tests
{
[Fact]
public void NpvFinal2Test1()
{
var preparedValues = new PreparedValues
{
Nmper = 25
};
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 cashflowNpvFinal2Column = new CashflowNPVFinal2Column(preparedValues.Nmper + 1)
{
Values = 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
}
};
var npvWeightColumn = new NPVWeightColumn(67)
{
Values = new[]
{
1,
1,
0.994263643057415,
0.98837064137184,
0.982512567513616,
0.977251253020835,
0.97145908378937,
0.965886447729637,
0.960161637711399,
0.954653807834909,
0.948995573685451,
0.943370875895905,
0.937959363822527,
0.93240007766075,
0.927051498001993,
0.921556862772709,
0.916094794252359,
0.911014429114697,
0.905614845610017,
0.900419915603094,
0.895083125791432,
0.889948609488607,
0.884673883119589,
0.879430420059453,
0.874385693263824,
0.869203208316068,
0.864217148457527,
0.859094932485813,
0.854003075893692,
0.849429924456607,
0.844395352377508,
0.83955159923561,
0.834575576000758,
0.829788152601254,
0.824869997325142,
0.81998099196066,
0.815277288304638,
0.810445138936875,
0.80579613633755,
0.801020181767729,
0.796272534285798,
0.792008527530705,
0.787314292133165,
0.78279797632749,
0.778158331876872,
0.773694537927379,
0.769108849565985,
0.764550340584458,
0.76016460693029,
0.755659110484519,
0.751324380099863,
0.746871279688058,
0.7424445728072,
0.738468812577606,
0.734091907128381,
0.729880893920429,
0.725554889074355,
0.721392847249186,
0.717117151064894,
0.712866796936501,
0.708777538536756,
0.704576613300819,
0.700534910353527,
0.696382839183729,
0.692255377344236,
0.688416353143374,
0.684336108675241
}
};
var npvFinal2Column = new NPVFinal2Column(preparedValues.Nmper + 1, dateTempColumn);
npvFinal2Column.ComputeValues(cashflowNpvFinal2Column, npvWeightColumn);
var expected = new[]
{
-2507300m,
562200.08956372m,
-316289.124492152m,
133563.879396326m,
137488.306463045m,
132061.256207708m,
131278.528999622m,
130525.468498383m,
129751.843905708m,
129007.541015107m,
128242.913180264m,
127482.817295423m,
114108.792576015m,
54501.8302236648m,
112276.116051067m,
111610.655390045m,
110949.13891508m,
110333.850911115m,
109679.902057675m,
109050.738990044m,
108404.395142344m,
107782.548837663m,
107143.721554365m,
94654.8534297361m,
94111.879404115m,
20026.2365707247m
};
Assert.Equal(expected.Length, npvFinal2Column.Values.Length);
Assert.Equal(0.129696124792099, npvFinal2Column.IRR, new DoubleArrayComparer());
Assert.Equal(0.122570429842705, npvFinal2Column.Nominal, new DoubleArrayComparer());
Assert.Equal(expected, npvFinal2Column.Values, new DecimalArrayComparer());
}
}
}

View File

@ -0,0 +1,232 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class RevenueTests
{
[Fact]
public void RevenueTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25
};
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 nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
26730.2083333333m,
0,
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 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 cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn,
nsibBruttoGrColumn, nsibExpensesColumn)
{
Values = new[]
{
0,
-10899.0991979689m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
-10693.5987839108m,
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 revenueColumn = new RevenueColumn(preparedValues.Nmper + 1);
revenueColumn.ComputeValues(nsibBruttoGrColumn, nsibExpensesColumn, cashflowNsibColumn);
var expected = new[]
{
0,
10899.0991979689m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
11807.3574644663m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
};
Assert.Equal(expected.Length, revenueColumn.Values.Length);
Assert.Equal(expected, revenueColumn.Values, new DecimalArrayComparer());
}
}
}

View File

@ -134,6 +134,7 @@ namespace EvoCalculator.Core.Controllers.V1
nsibExpensesColumn, tlmExpensesColumn, gpsExpensesColumn, registrExpensesColumn,
insuranceBonusExpensesColumn, comissionBonusExpensesColumn, npvBonusExpensesColumn);
return new
{
dateColumn,