new column type | new columns

This commit is contained in:
Chika 2020-10-26 16:06:07 +03:00
parent 1e8bff1cd3
commit 14f99e0f72
58 changed files with 2467 additions and 208 deletions

View File

@ -45,12 +45,14 @@
<e p="AcceptSumColumn.cs" t="Include" />
<e p="AgentComissionExpensesColumn.cs" t="Include" />
<e p="BaseColumn.cs" t="Include" />
<e p="BaseColumnWithNominal.cs" t="Include" />
<e p="BaseColumnWithSum.cs" t="Include" />
<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="CashflowNPVColumn.cs" t="Include" />
<e p="ComissionBonusExpensesColumn.cs" t="Include" />
<e p="DateColumn.cs" t="Include" />
<e p="DateTempColumn.cs" t="Include" />
@ -61,21 +63,30 @@
<e p="GPS_GrColumn.cs" t="Include" />
<e p="GPSExpensesColumn.cs" t="Include" />
<e p="InsuranceBonusExpensesColumn.cs" t="Include" />
<e p="InterestColumn.cs" t="Include" />
<e p="IRRGrColumn.cs" t="Include" />
<e p="KaskoBonusGrSumColumn.cs" t="Include" />
<e p="KaskoNmperGrColumn.cs" t="Include" />
<e p="NegativeCashflowColumn.cs" t="Include" />
<e p="NIColumn.cs" t="Include" />
<e p="NPVBonusExpensesColumn.cs" t="Include" />
<e p="NPVColumn.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="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="SumWithVATColumn.cs" t="Include" />
<e p="TaxColumn.cs" t="Include" />
<e p="TLM_GRColumn.cs" t="Include" />
<e p="TlmExpensesColumn.cs" t="Include" />
<e p="TransExprensesColumn.cs" t="Include" />
<e p="TransExpensesColumn.cs" t="Include" />
<e p="VATColumn.cs" t="Include" />
</e>
<e p="EvoCalculator.Core.Calculation.csproj" t="IncludeRecursive" />
@ -152,6 +163,7 @@
<e p="AgentComissionExpensesTests.cs" t="Include" />
<e p="CashflowLeasingTests.cs" t="Include" />
<e p="CashflowMSFOTests.cs" t="Include" />
<e p="CashflowNPV.cs" t="Include" />
<e p="CashflowTests.cs" t="Include" />
<e p="ComissionBonusExpensesTests.cs" t="Include" />
<e p="DateColumnTests.cs" t="Include" />
@ -163,15 +175,24 @@
<e p="GPS_GrTests.cs" t="Include" />
<e p="GPSExpensesTests.cs" t="Include" />
<e p="InsuranceBonusExpensesTests.cs" t="Include" />
<e p="Interest.cs" t="Include" />
<e p="IRRGr.cs" t="Include" />
<e p="KaskoBonusGrSumTests.cs" t="Include" />
<e p="KaskoNmperGrTests.cs" t="Include" />
<e p="NegativeCashflowTests.cs" t="Include" />
<e p="NI.cs" t="Include" />
<e p="NPV.cs" t="Include" />
<e p="NPVBonusExpensesTests.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="SumCurrent.cs" t="Include" />
<e p="SumCurrentInterest.cs" t="Include" />
<e p="SumCurrentNegative.cs" t="Include" />
<e p="SumCurrentTLM.cs" t="Include" />
<e p="SumTest.cs" t="Include" />
<e p="SumWithVatTests.cs" t="Include" />
<e p="TaxColumnTests.cs" t="Include" />

View File

@ -14,12 +14,52 @@
</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 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 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/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" />
@ -43,52 +83,22 @@
<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/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="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" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/31F94AF4-0455-4C4C-BD4F-AB58A9F2D1BF/2C/Sum.cs" root0="SKIP_HIGHLIGHTING" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<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" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AcceptOsagoTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AcceptSumTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AgentComissionExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ComissionBonusExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationLDTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationLPTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/GPS_GrTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/GPSExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/KaskoBonusGrSumTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NegativeCashflowTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVBonusExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedParams.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NSIBBruttoGrTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NSIBExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/RatExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/RegistrExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumTest.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumWithVatTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TaxColumnTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TLM_GrTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TLMExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TransExprensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/VATColumnTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Controller/CalculationControllerV1Tests.cs" />
<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/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" />
@ -106,6 +116,37 @@
<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" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPV.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/Sum.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrent.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumCurrentColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumCurrentNegativeColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrentNegative.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/IRRGrColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/IRRGr.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NIColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NIColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NI.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/Interest.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InterestColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumCurrentInterestColumn.cs" />
<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" />
</list>
</option>
</component>
@ -125,7 +166,7 @@
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="com.intellij.ide.scratch.LRUPopupBuilder$1/New Scratch File" value="C#" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
<property name="settings.editor.selected.configurable" value="RiderCSharpFileTemplatesSettingsId" />
<property name="vue.rearranger.settings.migration" value="true" />
</component>
<component name="RunManager" selected=".NET Launch Settings Profile.EvoCalculator.Core">
@ -181,7 +222,8 @@
<workItem from="1603359602644" duration="13087000" />
<workItem from="1603447491537" duration="4025000" />
<workItem from="1603451569606" duration="6133000" />
<workItem from="1603639854245" duration="10024000" />
<workItem from="1603639854245" duration="10211000" />
<workItem from="1603704776782" duration="10254000" />
</task>
<task id="LOCAL-00001" summary="rename: flow">
<created>1602593830686</created>
@ -265,90 +307,90 @@
<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="503" height="464" key="DebuggerActiveHint" timestamp="1603378893516">
<state width="535" height="702" key="DebuggerActiveHint" timestamp="1603716439590">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="503" height="464" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603378893516" />
<state width="2517" height="558" key="GridCell.Tab.0.bottom" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.0.center" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.0.left" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.0.right" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.1.bottom" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.1.center" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.1.left" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.1.right" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.2.bottom" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.2.center" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.2.left" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.2.right" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.3.bottom" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.3.center" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.3.left" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.3.right" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.4.bottom" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.4.center" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.4.left" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<state width="2517" height="558" key="GridCell.Tab.4.right" timestamp="1603645855102">
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="558" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603645855102" />
<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 x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602854431119">
<screen x="0" y="0" width="2560" height="1400" />
</state>
@ -361,18 +403,18 @@
<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="781" y="345" key="SettingsEditor" timestamp="1603281561803">
<state x="302" y="107" width="1537" height="899" key="SettingsEditor" timestamp="1603711979982">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="781" y="345" key="SettingsEditor/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603281561803" />
<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 width="498" height="446" key="SwitcherDM" timestamp="1603454051875">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="498" height="446" key="SwitcherDM/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603454051875" />
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog" timestamp="1603645030520">
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog" timestamp="1603709850962">
<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="1603645030520" />
<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">
<screen x="0" y="0" width="2560" height="1400" />
</state>
@ -381,22 +423,26 @@
<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">
<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="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="1603648670658">
<state x="759" y="244" width="1137" height="959" key="find.popup" timestamp="1603714824423">
<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="1603648670658" />
<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="936" y="330" key="run.anything.popup" timestamp="1603290743275">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="936" y="330" key="run.anything.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603290743275" />
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup" timestamp="1603290838524">
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup" timestamp="1603712041215">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603290838524" />
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603712041215" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
@ -427,6 +473,32 @@
</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>
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Tests\Calculation\Columns\SumCurrentTLM.cs" initialLine="86">
<startOffsets>
<option value="2193" />
</startOffsets>
<endOffsets>
<option value="2272" />
</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>

View File

@ -0,0 +1,13 @@
using System;
namespace EvoCalculator.Core.Calculation.Columns
{
public class BaseColumnWithNominal : BaseColumnWithXIRR
{
public BaseColumnWithNominal(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
{
}
public double Nominal => (Math.Pow(IRR + 1, (double) 1 / 12) - 1) * 12;
}
}

View File

@ -4,7 +4,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
public class BaseColumnWithSum : BaseColumn<decimal>
{
protected BaseColumnWithSum(int count) : base(count)
public BaseColumnWithSum(int count) : base(count)
{
}

View File

@ -6,7 +6,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
public class BaseColumnWithXIRR : BaseColumn<decimal>
{
protected BaseColumnWithXIRR(int count, DateTempColumn dateTempColumn) : base(count)
public BaseColumnWithXIRR(int count, DateTempColumn dateTempColumn) : base(count)
{
Dates = dateTempColumn.Values;
}

View File

@ -8,7 +8,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
private readonly double rate;
protected BaseColumnWithXNPV(int count, DateTempColumn dateTempColumn, double rate) : base(count)
public BaseColumnWithXNPV(int count, DateTempColumn dateTempColumn, double rate) : base(count)
{
Dates = dateTempColumn.Values;
this.rate = rate;

View File

@ -15,7 +15,6 @@ namespace EvoCalculator.Core.Calculation.Columns
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]
@ -24,4 +23,3 @@ namespace EvoCalculator.Core.Calculation.Columns
}
}
}
}

View File

@ -2,7 +2,7 @@
namespace EvoCalculator.Core.Calculation.Columns
{
public class CashflowMSFOColumn : BaseColumnWithXIRR
public class CashflowMSFOColumn : BaseColumnWithNominal
{
public CashflowMSFOColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
{
@ -16,7 +16,6 @@ namespace EvoCalculator.Core.Calculation.Columns
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]
@ -27,4 +26,3 @@ namespace EvoCalculator.Core.Calculation.Columns
}
}
}
}

View File

@ -0,0 +1,28 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class CashflowNPVColumn : BaseColumn<decimal>
{
public CashflowNPVColumn(int count) : base(count)
{
}
public void ComputeValues(PreparedValues preparedValues, SumColumn sumColumn,
NPVBonusExpensesColumn npvBonusExpensesColumn, AgentComissionExpensesColumn agentComissionExpensesColumn,
TaxColumn taxColumn, NSIBExpensesColumn nsibExpensesColumn, NegativeCashflowColumn negativeCashflowColumn,
RatExpensesColumn ratExpensesColumn, TransExpensesColumn transExpensesColumn,
TLMExpensesColumn tlmExpensesColumn, GPSExpensesColumn gpsExpensesColumn)
{
Values[0] = -preparedValues.AcquisitionExpenses;
Values[1] = sumColumn.Values[1] + npvBonusExpensesColumn.Values[1] +
agentComissionExpensesColumn.Values[1] - taxColumn.Values[1] + nsibExpensesColumn.Values[1];
for (var i = 2; i < Values.Length; i++)
Values[i] = sumColumn.Values[i] + negativeCashflowColumn.Values[i] + npvBonusExpensesColumn.Values[i] +
agentComissionExpensesColumn.Values[i] + ratExpensesColumn.Values[i] - taxColumn.Values[i] -
transExpensesColumn.Values[i] + nsibExpensesColumn.Values[i] + tlmExpensesColumn.Values[i] +
gpsExpensesColumn.Values[i];
}
}
}

View File

@ -1,5 +1,4 @@
using System;
using System.Linq;
using System.Linq;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns

View File

@ -7,7 +7,7 @@
}
public void ComputeValues(AgentComissionExpensesColumn agentComissionExpensesColumn,
RatExpensesColumn ratExpensesColumn, TransExprensesColumn transExprensesColumn,
RatExpensesColumn ratExpensesColumn, TransExpensesColumn transExpensesColumn,
NSIBExpensesColumn nsibExpensesColumn, TLMExpensesColumn tlmExpensesColumn,
GPSExpensesColumn gpsExpensesColumn, RegistrExpensesColumn registrExpensesColumn,
InsuranceBonusExpensesColumn insuranceBonusExpensesColumn,
@ -17,7 +17,7 @@
Values[i] =
agentComissionExpensesColumn.Values[i]
+ ratExpensesColumn.Values[i]
+ transExprensesColumn.Values[i]
+ transExpensesColumn.Values[i]
+ nsibExpensesColumn.Values[i]
+ tlmExpensesColumn.Values[i]
+ gpsExpensesColumn.Values[i]

View File

@ -0,0 +1,18 @@
using System;
namespace EvoCalculator.Core.Calculation.Columns
{
public class IRRGrColumn : BaseColumn<double>
{
public IRRGrColumn(int count) : base(count)
{
}
public void ComputeValues(DateTempColumn dateTempColumn, CashflowColumn cashflowColumn)
{
for (var i = 1; i < Values.Length; i++)
Values[i] = Math.Pow(1 + cashflowColumn.IRR,
(double) (dateTempColumn.Values[i] - dateTempColumn.Values[i - 1]).Days / 365) - 1;
}
}
}

View File

@ -11,11 +11,8 @@ namespace EvoCalculator.Core.Calculation.Columns
public void ComputeValues(PreparedValues preparedValues, Constants.Calculation constants)
{
if (preparedValues.NmperInsurance < constants.MaxOnePolicePeriod)
{
Values[2] = preparedValues.InsuranceBonus;
}
else
{
/*
* +1 - компенсация того, что считается с 0 позиции
*/
@ -23,24 +20,15 @@ namespace EvoCalculator.Core.Calculation.Columns
if (preparedValues.NmperInsurance - i >= 3)
{
if (
(preparedValues.NmperInsurance == constants.MaxOnePolicePeriod && i <= 3) ||
(preparedValues.NmperInsurance > constants.MaxOnePolicePeriod &&
preparedValues.NmperInsurance - i > constants.MaxOnePolicePeriod)
preparedValues.NmperInsurance == constants.MaxOnePolicePeriod && i <= 3 ||
preparedValues.NmperInsurance > constants.MaxOnePolicePeriod &&
preparedValues.NmperInsurance - i > constants.MaxOnePolicePeriod
)
{
Values[i] = preparedValues.InsuranceBonus / preparedValues.NmperInsurance * 12;
}
else
{
Values[i] = preparedValues.InsuranceBonus / preparedValues.NmperInsurance *
(preparedValues.NmperInsurance - i + 1);
}
}
else
{
// 0
}
}
Values[0] = Sum;
}

View File

@ -0,0 +1,15 @@
namespace EvoCalculator.Core.Calculation.Columns
{
public class InterestColumn : BaseColumn<decimal>
{
public InterestColumn(int count) : base(count)
{
}
public void ComputeValues(IRRGrColumn irrGrColumn, NIColumn niColumn)
{
for (var i = 2; i < Values.Length; i++)
Values[i] = niColumn.Values[i - 1] * (decimal) irrGrColumn.Values[i];
}
}
}

View File

@ -0,0 +1,18 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class NIColumn : BaseColumn<decimal>
{
public NIColumn(int count) : base(count)
{
}
public void ComputeValues(PreparedValues preparedValues, CashflowColumn cashflowColumn, IRRGrColumn irrGrColumn)
{
Values[1] = preparedValues.NiAtInception;
for (var i = 2; i < Values.Length; i++)
Values[i] = Values[i - 1] + Values[i - 1] * (decimal) irrGrColumn.Values[i] - cashflowColumn.Values[i];
}
}
}

View File

@ -0,0 +1,17 @@
namespace EvoCalculator.Core.Calculation.Columns
{
public class NPVColumn : BaseColumnWithNominal
{
public NPVColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
{
}
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,23 @@
using System;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class NPVWeightColumn : BaseColumn<double>
{
public NPVWeightColumn(int count) : base(count)
{
}
public void ComputeValues(PreparedValues preparedValues, DateTempColumn dateTempColumn)
{
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

@ -12,7 +12,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
Values[1] = 0;
for (var i = 2; i < Values.Length; i++)
Values[i] = (decimal) preparedValues.NsibBrutto / (preparedValues.Nmper - 1);
Values[i] = preparedValues.NsibBrutto / (preparedValues.Nmper - 1);
Values[0] = Sum;
}

View File

@ -16,10 +16,10 @@ namespace EvoCalculator.Core.Calculation.Columns
if (preparedValues.Nmper - i >= 3)
{
if (preparedValues.Nmper - i < 16 - 1)
Values[i] = -(decimal) preparedValues.NsibNetto / preparedValues.Nmper *
Values[i] = -preparedValues.NsibNetto / preparedValues.Nmper *
(preparedValues.Nmper - i + 1);
else
Values[i] = -(decimal) preparedValues.NsibNetto / preparedValues.Nmper * 12;
Values[i] = -preparedValues.NsibNetto / preparedValues.Nmper * 12;
}
else
{

View File

@ -12,10 +12,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
Values[0] = 0;
Values[1] = 0;
for (var i = 2; i < Values.Length - 1; i++)
{
Values[i] = preparedPayments.Rows[i - 1].PercentPayment;
}
for (var i = 2; i < Values.Length - 1; i++) Values[i] = preparedPayments.Rows[i - 1].PercentPayment;
Values[^1] = 0;
}

View File

@ -28,10 +28,7 @@ namespace EvoCalculator.Core.Calculation.Columns
Values[0] = -_preparedValues.BaseCost;
Values[1] = _preparedValues.FirstPaymentSum;
for (var i = 2; i < Values.Length - 1; i++)
{
Values[i] = x * (decimal) _percentPaymentColumn.Values[i] / 100;
}
for (var i = 2; i < Values.Length - 1; i++) Values[i] = x * (decimal) _percentPaymentColumn.Values[i] / 100;
Values[^1] = _preparedValues.LastPaymentSum;
}

View File

@ -0,0 +1,19 @@
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
{
public class SumCurrentColumn : BaseColumn<decimal>
{
public SumCurrentColumn(int count) : base(count)
{
}
public void ComputeValues(SumWithVATColumn sumWithVatColumn)
{
for (var i = 1; i < Values.Length; i++)
{
Values[i] = sumWithVatColumn.Values.Skip(i).Sum(x => x);
}
}
}
}

View File

@ -0,0 +1,16 @@
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
{
public class SumCurrentInterestColumn : BaseColumn<decimal>
{
public SumCurrentInterestColumn(int count) : base(count)
{
}
public void ComputeValues(InterestColumn interestColumn)
{
for (var i = 1; i < Values.Length; i++) Values[i] = interestColumn.Values.Skip(i).Sum(x => x);
}
}
}

View File

@ -0,0 +1,19 @@
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
{
public class SumCurrentNegativeColumn : BaseColumn<decimal>
{
public SumCurrentNegativeColumn(int count) : base(count)
{
}
public void ComputeValues(NegativeCashflowColumn negativeCashflowColumn)
{
for (var i = 1; i < Values.Length; i++)
{
Values[i] = negativeCashflowColumn.Values.Skip(i).Sum(x => x);
}
}
}
}

View File

@ -0,0 +1,21 @@
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
{
public class SumCurrentTLMColumn : BaseColumn<decimal>
{
public SumCurrentTLMColumn(int count) : base(count)
{
}
public void ComputeValues(TLM_GrColumn tlmGrColumn)
{
const int FIRST_YEAR_NUM = 13;
for (var i = 1; i < Values.Length; i++)
if (i < FIRST_YEAR_NUM)
Values[i] = tlmGrColumn.Values.Skip(FIRST_YEAR_NUM).Sum(x => x);
else
Values[i] = tlmGrColumn.Values.Skip(i + 1).Sum(x => x);
}
}
}

View File

@ -0,0 +1,22 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class SumRepaymentColumn : BaseColumn<decimal>
{
public SumRepaymentColumn(int count) : base(count)
{
}
public void ComputeValues(Constants.Calculation calculation, PreparedValues preparedValues,
SumCurrentColumn sumCurrentColumn, SumCurrentNegativeColumn sumCurrentNegativeColumn,
SumCurrentInterestColumn sumCurrentInterestColumn, SumCurrentTLMColumn sumCurrentTlmColumn)
{
for (var i = 2; i < Values.Length; i++)
Values[i] = sumCurrentColumn.Values[i] + sumCurrentNegativeColumn.Values[i] -
sumCurrentTlmColumn.Values[i] * (1 + (decimal) calculation.VatValue) -
sumCurrentInterestColumn.Values[i] * (1 + (decimal) calculation.VatValue) *
(decimal) preparedValues.Repayment;
}
}
}

View File

@ -9,7 +9,7 @@
public void ComputeValues(Constants.Calculation constants, SumColumn sumColumn,
AcceptInsuranceColumn acceptInsuranceColumn, DeprecationColumn deprecationColumn,
RatExpensesColumn ratExpensesColumn, RegistrExpensesColumn registrExpensesColumn,
ComissionBonusExpensesColumn comissionBonusExpensesColumn, TransExprensesColumn transExprensesColumn,
ComissionBonusExpensesColumn comissionBonusExpensesColumn, TransExpensesColumn transExpensesColumn,
NPVBonusExpensesColumn npvBonusExpensesColumn, AgentComissionExpensesColumn agentComissionExpensesColumn,
InsuranceBonusExpensesColumn insuranceBonusExpensesColumn, TLMExpensesColumn tlmExpensesColumn,
GPSExpensesColumn gpsExpensesColumn)
@ -21,7 +21,7 @@
+ ratExpensesColumn.Values[i]
+ registrExpensesColumn.Values[i]
+ comissionBonusExpensesColumn.Values[i]
+ transExprensesColumn.Values[i]
+ transExpensesColumn.Values[i]
+ npvBonusExpensesColumn.Values[i]
+ agentComissionExpensesColumn.Values[i]
+ insuranceBonusExpensesColumn.Values[i]

View File

@ -3,9 +3,9 @@ using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class TransExprensesColumn : BaseColumnWithSum
public class TransExpensesColumn : BaseColumnWithSum
{
public TransExprensesColumn(int count) : base(count)
public TransExpensesColumn(int count) : base(count)
{
}

View File

@ -10,7 +10,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
[Fact]
public void CashflowLeasingTest1()
{
var preparedValues = new PreparedValues()
var preparedValues = new PreparedValues
{
Nmper = 25,
AcquisitionExpenses = 2507300
@ -86,7 +86,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
new DateTime(2023, 12, 31),
new DateTime(2024, 1, 31),
new DateTime(2024, 2, 29),
new DateTime(2024, 3, 31),
new DateTime(2024, 3, 31)
}
};
@ -119,7 +119,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
108000,
96000,
96000,
25000,
25000
}
};
@ -152,7 +152,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
0,
0,
0,
0,
0
}
};
@ -185,7 +185,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m
}
};
@ -218,7 +218,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
900m,
900m,
900m,
900m,
900m
}
};
@ -252,7 +252,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
1000m,
1000m,
1000m,
1000m,
1000m
}
};
@ -290,7 +290,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
104986.241319444m,
92986.2413194444m,
92986.2413194444m,
21986.2413194444m,
21986.2413194444m
};

View File

@ -5,12 +5,12 @@ using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class CashflowMSFOTests
public class CashflowMsfoTests
{
[Fact]
public void CashflowMSFOTest1()
public void CashflowMsfoTest1()
{
var preparedValues = new PreparedValues()
var preparedValues = new PreparedValues
{
Nmper = 25,
AcquisitionExpenses = 2507300
@ -86,7 +86,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
new DateTime(2023, 12, 31),
new DateTime(2024, 1, 31),
new DateTime(2024, 2, 29),
new DateTime(2024, 3, 31),
new DateTime(2024, 3, 31)
}
};
@ -119,7 +119,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
108000,
96000,
96000,
25000,
25000
}
};
@ -152,7 +152,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
0,
0,
0,
0,
0
}
};
@ -185,7 +185,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m,
1113.75868055556m
}
};
@ -218,7 +218,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
900m,
900m,
900m,
900m,
900m
}
};
@ -252,7 +252,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
1000m,
1000m,
1000m,
1000m,
1000m
}
};
@ -285,7 +285,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
0,
0,
0,
0,
0
}
};
@ -318,7 +318,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
0,
0,
0,
0,
0
}
};
@ -359,12 +359,13 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
104986.241319444m,
92986.2413194444m,
92986.2413194444m,
21986.2413194444m,
21986.2413194444m
};
Assert.Equal(expected.Length, cashflowMsfoColumn.Values.Length);
Assert.Equal(0.0517445296049118, cashflowMsfoColumn.IRR, new DoubleArrayComparer(0.01));
Assert.Equal(0.0517445296049118, cashflowMsfoColumn.IRR, new DoubleArrayComparer());
Assert.Equal(0.0505564421421205, cashflowMsfoColumn.Nominal, new DoubleArrayComparer());
Assert.Equal(expected, cashflowMsfoColumn.Values, new DecimalArrayComparer());
}
}

View File

@ -0,0 +1,467 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class CashflowNpvTests
{
[Fact]
public void CashflowNpvTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25,
AcquisitionExpenses = 2507300
};
var dateTempColumn = new DateTempColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
new DateTime(2018, 10, 31),
new DateTime(2018, 10, 31),
new DateTime(2018, 11, 30),
new DateTime(2018, 12, 31),
new DateTime(2019, 1, 31),
new DateTime(2019, 2, 28),
new DateTime(2019, 3, 31),
new DateTime(2019, 4, 30),
new DateTime(2019, 5, 31),
new DateTime(2019, 6, 30),
new DateTime(2019, 7, 31),
new DateTime(2019, 8, 31),
new DateTime(2019, 9, 30),
new DateTime(2019, 10, 31),
new DateTime(2019, 11, 30),
new DateTime(2019, 12, 31),
new DateTime(2020, 1, 31),
new DateTime(2020, 2, 29),
new DateTime(2020, 3, 31),
new DateTime(2020, 4, 30),
new DateTime(2020, 5, 31),
new DateTime(2020, 6, 30),
new DateTime(2020, 7, 31),
new DateTime(2020, 8, 31),
new DateTime(2020, 9, 30),
new DateTime(2020, 10, 31),
new DateTime(2020, 11, 30),
new DateTime(2020, 12, 31),
new DateTime(2021, 1, 31),
new DateTime(2021, 2, 28),
new DateTime(2021, 3, 31),
new DateTime(2021, 4, 30),
new DateTime(2021, 5, 31),
new DateTime(2021, 6, 30),
new DateTime(2021, 7, 31),
new DateTime(2021, 8, 31),
new DateTime(2021, 9, 30),
new DateTime(2021, 10, 31),
new DateTime(2021, 11, 30),
new DateTime(2021, 12, 31),
new DateTime(2022, 1, 31),
new DateTime(2022, 2, 28),
new DateTime(2022, 3, 31),
new DateTime(2022, 4, 30),
new DateTime(2022, 5, 31),
new DateTime(2022, 6, 30),
new DateTime(2022, 7, 31),
new DateTime(2022, 8, 31),
new DateTime(2022, 9, 30),
new DateTime(2022, 10, 31),
new DateTime(2022, 11, 30),
new DateTime(2022, 12, 31),
new DateTime(2023, 1, 31),
new DateTime(2023, 2, 28),
new DateTime(2023, 3, 31),
new DateTime(2023, 4, 30),
new DateTime(2023, 5, 31),
new DateTime(2023, 6, 30),
new DateTime(2023, 7, 31),
new DateTime(2023, 8, 31),
new DateTime(2023, 9, 30),
new DateTime(2023, 10, 31),
new DateTime(2023, 11, 30),
new DateTime(2023, 12, 31),
new DateTime(2024, 1, 31),
new DateTime(2024, 2, 29),
new DateTime(2024, 3, 31)
}
};
var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn, preparedValues, null)
{
Values = new[]
{
-2542903.66268442m,
625000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
96000m,
96000m,
25000m
}
};
var npvBonusExpenses = new NPVBonusExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-29266.5425270833m,
-1676.30246875m,
-27590.2400583333m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
}
};
var agentComissionExpenses = new AgentComissionExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-446104.166666667m,
0,
-446104.166666667m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
}
};
var taxColumn = new TaxColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
60301.716983905m,
47477.2805581053m,
-87962.9468973872m,
4527.53444761279m,
5727.53444761279m,
4527.53444761279m,
4527.53444761279m,
4527.53444761279m,
4527.53444761279m,
4527.53444761279m,
4527.53444761279m,
4527.53444761279m,
3900.22165941717m,
7184.77620487171m,
4445.67620487171m,
4445.67620487171m,
4445.67620487171m,
4445.67620487171m,
4445.67620487171m,
4445.67620487171m,
4445.67620487171m,
4445.67620487171m,
4445.67620487171m,
3818.36341667609m,
3818.36341667609m,
106.762753185324m
}
};
var nsibExpensesColumn = new NSIBExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-4811.4375m,
-2309.49m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-2501.9475m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
}
};
var negativeCashflowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-110416.666666667m,
-53000m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-57416.6666666667m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
}
};
var ratExpensesColumn = new RatExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-6000m,
-12000m,
0,
0,
6000m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
}
};
var transExpensesColumn = new TransExpensesColumn(preparedValues.Nmper + 1)
{
Values = new decimal[]
{
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
}
};
var tlmExpensesColumn = new TLMExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
0,
-20000m,
-1600m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m,
-800m
}
};
var gpsExpensesColumn = new GPSExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
0,
-15000m,
-1200m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m,
-600m
}
};
var cashflowNpvColumn = new CashflowNPVColumn(preparedValues.Nmper + 1);
cashflowNpvColumn.ComputeValues(preparedValues, sumColumn, npvBonusExpenses, agentComissionExpenses,
taxColumn,
nsibExpensesColumn, negativeCashflowColumn, ratExpensesColumn, transExpensesColumn, tlmExpensesColumn,
gpsExpensesColumn);
var expected = new[]
{
-2507300m,
573536.926973145m,
-268531.459827613m,
114072.465552387m,
118872.465552387m,
114072.465552387m,
114072.465552387m,
114072.465552387m,
114072.465552387m,
114072.465552387m,
114072.465552387m,
114072.465552387m,
102699.778340583m,
39496.6096284616m,
102154.323795128m,
102154.323795128m,
102154.323795128m,
102154.323795128m,
102154.323795128m,
102154.323795128m,
102154.323795128m,
102154.323795128m,
102154.323795128m,
90781.6365833239m,
90781.6365833239m,
23493.2372468147m
};
Assert.Equal(expected.Length, cashflowNpvColumn.Values.Length);
Assert.Equal(expected, cashflowNpvColumn.Values, new DecimalArrayComparer());
}
}
}

View File

@ -2,7 +2,6 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
using Xunit.Abstractions;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{

View File

@ -4,10 +4,10 @@ using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class DeprecationLDTests
public class DeprecationLdTests
{
[Fact]
public void DeprecationLDTest1()
public void DeprecationLdTest1()
{
var preparedValues = new PreparedValues
{
@ -18,8 +18,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
};
var deprecationLDColumn = new DeprecationLDColumn(preparedValues.NmperDeprecation + 2);
deprecationLDColumn.ComputeValues(preparedValues);
var deprecationLdColumn = new DeprecationLDColumn(preparedValues.NmperDeprecation + 2);
deprecationLdColumn.ComputeValues(preparedValues);
var expected = new[]
{
@ -65,7 +65,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
};
var values = deprecationLDColumn.Values;
var values = deprecationLdColumn.Values;
Assert.Equal(expected, values, new DecimalArrayComparer());
}
}

View File

@ -4,10 +4,10 @@ using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class DeprecationLPTests
public class DeprecationLpTests
{
[Fact]
public void DeprecationLPTest1()
public void DeprecationLpTest1()
{
var preparedValues = new PreparedValues
{
@ -53,8 +53,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var deprecationLPColumn = new DeprecationLPColumn(preparedValues.Nmper + 1);
deprecationLPColumn.ComputeValues(preparedValues, acceptSumColumn);
var deprecationLpColumn = new DeprecationLPColumn(preparedValues.Nmper + 1);
deprecationLpColumn.ComputeValues(preparedValues, acceptSumColumn);
var expected = new[]
{
@ -92,12 +92,12 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
};
var values = deprecationLPColumn.Values;
var values = deprecationLpColumn.Values;
Assert.Equal(expected, values, new DecimalArrayComparer());
}
[Fact]
public void DeprecationLPTest2()
public void DeprecationLpTest2()
{
var preparedValues = new PreparedValues
{
@ -143,8 +143,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var deprecationLPColumn = new DeprecationLPColumn(preparedValues.Nmper + 1);
deprecationLPColumn.ComputeValues(preparedValues, acceptSumColumn);
var deprecationLpColumn = new DeprecationLPColumn(preparedValues.Nmper + 1);
deprecationLpColumn.ComputeValues(preparedValues, acceptSumColumn);
var expected = new[]
{
@ -182,7 +182,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
};
var values = deprecationLPColumn.Values;
var values = deprecationLpColumn.Values;
Assert.Equal(expected, values, new DecimalArrayComparer());
}
}

View File

@ -15,7 +15,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
Nmper = 30
};
var deprecationLPColumn = new DeprecationLPColumn(preparedValues.Nmper + 1)
var deprecationLpColumn = new DeprecationLPColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
@ -53,7 +53,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var deprecationLDColumn = new DeprecationLDColumn(preparedValues.NmperDeprecation + 2)
var deprecationLdColumn = new DeprecationLDColumn(preparedValues.NmperDeprecation + 2)
{
Values = new[]
{
@ -100,7 +100,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
};
var deprecationColumn = new DeprecationColumn(preparedValues.NmperDeprecation + 2);
deprecationColumn.ComputeValues(deprecationLPColumn, deprecationLDColumn);
deprecationColumn.ComputeValues(deprecationLpColumn, deprecationLdColumn);
var expected = new[]
{

View File

@ -14,7 +14,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
Nmper = 24
};
var AgentComissionExpensesColumn = new AgentComissionExpensesColumn(preparedValues.Nmper + 1)
var agentComissionExpensesColumn = new AgentComissionExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
@ -46,7 +46,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var RatExpensesColumn = new RatExpensesColumn(preparedValues.Nmper + 1)
var ratExpensesColumn = new RatExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
@ -78,7 +78,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var TransExprensesColumn = new TransExprensesColumn(preparedValues.Nmper + 1)
var transExprensesColumn = new TransExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
@ -110,7 +110,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var NsibExpensesColumn = new NSIBExpensesColumn(preparedValues.Nmper + 1)
var nsibExpensesColumn = new NSIBExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
@ -142,7 +142,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var TLMExpensesColumn = new TLMExpensesColumn(preparedValues.Nmper + 1)
var tlmExpensesColumn = new TLMExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
@ -174,7 +174,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var GPSExpensesColumn = new GPSExpensesColumn(preparedValues.Nmper + 1)
var gpsExpensesColumn = new GPSExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
@ -206,7 +206,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var RegistrExpensesColumn = new RegistrExpensesColumn(preparedValues.Nmper + 1)
var registrExpensesColumn = new RegistrExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
@ -238,7 +238,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var InsuranceBonusExpensesColumn = new InsuranceBonusExpensesColumn(preparedValues.Nmper + 1)
var insuranceBonusExpensesColumn = new InsuranceBonusExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
@ -270,7 +270,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var ComissionBonusExpensesColumn = new ComissionBonusExpensesColumn(preparedValues.Nmper + 1)
var comissionBonusExpensesColumn = new ComissionBonusExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
@ -302,7 +302,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var NPVBonusExpensesColumn = new NPVBonusExpensesColumn(preparedValues.Nmper + 1)
var npvBonusExpensesColumn = new NPVBonusExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
@ -336,9 +336,9 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
var expensesColumn = new ExpensesColumn(preparedValues.Nmper + 1);
expensesColumn.ComputeValues(AgentComissionExpensesColumn, RatExpensesColumn, TransExprensesColumn,
NsibExpensesColumn, TLMExpensesColumn, GPSExpensesColumn, RegistrExpensesColumn,
InsuranceBonusExpensesColumn, ComissionBonusExpensesColumn, NPVBonusExpensesColumn);
expensesColumn.ComputeValues(agentComissionExpensesColumn, ratExpensesColumn, transExprensesColumn,
nsibExpensesColumn, tlmExpensesColumn, gpsExpensesColumn, registrExpensesColumn,
insuranceBonusExpensesColumn, comissionBonusExpensesColumn, npvBonusExpensesColumn);
var expected = new[]

View File

@ -4,10 +4,10 @@ using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class GPSExpensesTests
public class GpsExpensesTests
{
[Fact]
public void GPSExpensesTest1()
public void GpsExpensesTest1()
{
var preparedValues = new PreparedValues
{

View File

@ -5,7 +5,7 @@ using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class GPS_GrTests
public class GpsGrTests
{
[Fact]
public void GPS_GrTest1()

View File

@ -0,0 +1,205 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class IrrGrTests
{
[Fact]
public void IrrGrTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25
};
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 cashflowColumn = new CashflowColumn(preparedValues.Nmper + 1, dateTempColumn)
{
Values = new[]
{
-2507300m,
625000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
108000m,
50583.3333333333m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
96000m,
96000m,
25000m
}
};
var irrGrColumn = new IRRGrColumn(67);
irrGrColumn.ComputeValues(dateTempColumn, cashflowColumn);
var expected = new[]
{
0,
0,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0254562982413058,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0263773400122931,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0254562982413058,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0254562982413058,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0254562982413058,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0263773400122931,
0.0282219060742697
};
Assert.Equal(expected.Length, irrGrColumn.Values.Length);
Assert.Equal(expected, irrGrColumn.Values, new DoubleArrayComparer());
}
}
}

View File

@ -249,7 +249,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
0,
0,
0,
0,
0
};

View File

@ -0,0 +1,164 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class InterestTests
{
[Fact]
public void InterestTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25
};
var irrGrColumn = new IRRGrColumn(67)
{
Values = new[]
{
0,
0,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0254562982413058,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0263773400122931,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0254562982413058,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0254562982413058,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0254562982413058,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0263773400122931,
0.0282219060742697
}
};
var niColumn = new NIColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
0,
1882300m,
1813685.30118027m,
1744870.95739846m,
1674114.54166988m,
1596731.30073274m,
1521794.10152786m,
1443337.87682477m,
1364071.62281796m,
1281309.69919789m,
1197470.70118071m,
1111265.60683612m,
1033602.27893863m,
1012189.17203965m,
931821.135837486m,
850118.904411111m,
766110.880283362m,
678318.847459713m,
589462.298261128m,
497554.152763897m,
403596.079330063m,
306613.933068336m,
207267.162688453m,
117116.637086127m,
24313.8286442689m,
0.0112325733425678m
}
};
var interestColumn = new InterestColumn(preparedValues.Nmper + 1);
interestColumn.ComputeValues(irrGrColumn, niColumn);
var expected = new[]
{
0,
0,
51385.3011802696m,
51185.6562181931m,
49243.5842714204m,
42616.7590628555m,
45062.8007951257m,
41543.7752969065m,
40733.7459931845m,
37238.0763799393m,
36161.0019828137m,
33794.9056554118m,
30336.6721025071m,
29170.226434357m,
27631.9637978352m,
26297.7685736248m,
23991.9758722514m,
20207.9671763514m,
19143.4508014149m,
16091.854502769m,
14041.9265661655m,
11017.853738273m,
8653.22962011698m,
5849.47439767389m,
3197.19155814215m,
686.182588304444m
};
Assert.Equal(expected.Length, interestColumn.Values.Length);
Assert.Equal(expected, interestColumn.Values, new DecimalArrayComparer());
}
}
}

View File

@ -0,0 +1,164 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class NiTests
{
[Fact]
public void NiTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25,
NiAtInception = 1882300
};
var cashflowColumn = new CashflowColumn(preparedValues.Nmper + 1, new DateTempColumn(67))
{
Values = new[]
{
-2507300m,
625000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
120000m,
108000m,
50583.3333333333m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
108000m,
96000m,
96000m,
25000m
}
};
var irrGrColumn = new IRRGrColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
0,
0,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0254562982413058,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0263773400122931,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0254562982413058,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0254562982413058,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0254562982413058,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0272992090422726,
0.0282219060742697,
0.0282219060742697,
0.0263773400122931,
0.0282219060742697
}
};
var targetColumn = new NIColumn(preparedValues.Nmper + 1);
targetColumn.ComputeValues(preparedValues, cashflowColumn, irrGrColumn);
var expected = new[]
{
0,
1882300m,
1813685.30118027m,
1744870.95739846m,
1674114.54166988m,
1596731.30073274m,
1521794.10152786m,
1443337.87682477m,
1364071.62281796m,
1281309.69919789m,
1197470.70118071m,
1111265.60683612m,
1033602.27893863m,
1012189.17203965m,
931821.135837486m,
850118.904411111m,
766110.880283362m,
678318.847459713m,
589462.298261128m,
497554.152763897m,
403596.079330063m,
306613.933068336m,
207267.162688453m,
117116.637086127m,
24313.8286442689m,
0.0112325733425678m
};
Assert.Equal(expected.Length, targetColumn.Values.Length);
Assert.Equal(expected, targetColumn.Values, new DecimalArrayComparer());
}
}
}

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 NpvTests
{
[Fact]
public void NpvTest1()
{
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 cashflowNpvColumn = new CashflowNPVColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-2507300m,
571313.823489742m,
-259747.895766236m,
122856.029613764m,
127656.029613764m,
122856.029613764m,
122856.029613764m,
122856.029613764m,
122856.029613764m,
122856.029613764m,
122856.029613764m,
122856.029613764m,
110604.985995822m,
47401.8172837004m,
110059.531450367m,
110059.531450367m,
110059.531450367m,
110059.531450367m,
110059.531450367m,
110059.531450367m,
110059.531450367m,
110059.531450367m,
110059.531450367m,
97808.4878324251m,
97808.4878324251m,
23404.3131074786m
}
};
var npvWeightColumn = new NPVWeightColumn(preparedValues.Nmper + 1)
{
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 npvColumn = new NPVColumn(preparedValues.Nmper + 1, dateTempColumn);
npvColumn.ComputeValues(cashflowNpvColumn, npvWeightColumn);
var expected = new[]
{
-2507300m,
571313.823489742m,
-258257.889121036m,
121427.292785753m,
125423.653414413m,
120061.208881215m,
119349.605966586m,
118664.974025805m,
117961.646596671m,
117284.976486258m,
116589.82830403m,
115898.800265829m,
103742.98230024m,
44197.4581165829m,
102030.85350046m,
101426.116521635m,
100824.963819535m,
100265.821212887m,
99671.545582335m,
99099.7940198555m,
98512.429433735m,
97947.3269752218m,
97366.7930625188m,
86015.7595398495m,
85522.3424404413m,
20343.1040414542m
};
Assert.Equal(expected.Length, npvColumn.Values.Length);
Assert.Equal(0.053786775, npvColumn.IRR, new DoubleArrayComparer());
Assert.Equal(0.0525046595222296, npvColumn.Nominal, new DoubleArrayComparer());
Assert.Equal(expected, npvColumn.Values, new DecimalArrayComparer());
}
}
}

View File

@ -4,10 +4,10 @@ using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class NPVBonusExpensesTests
public class NpvBonusExpensesTests
{
[Fact]
public void NPVBonusExpensesTest1()
public void NpvBonusExpensesTest1()
{
var preparedValues = new PreparedValues
{
@ -68,7 +68,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
[Fact]
public void NPVBonusExpensesTest2()
public void NpvBonusExpensesTest2()
{
var preparedValue = new PreparedValues
{

View File

@ -0,0 +1,172 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class NpvWeightTests
{
[Fact]
public void NpvWeightTest1()
{
var preparedValues = new PreparedValues
{
LoanRate = 0.07
};
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 npvWeightColumn = new NPVWeightColumn(67);
npvWeightColumn.ComputeValues(preparedValues, dateTempColumn);
var expected = 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
};
Assert.Equal(expected.Length, npvWeightColumn.Values.Length);
Assert.Equal(expected, npvWeightColumn.Values, new DoubleArrayComparer());
}
}
}

View File

@ -4,10 +4,10 @@ using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class NSIBBruttoGrTests
public class NsibBruttoGrTests
{
[Fact]
public void NSIBBruttoGrTest1()
public void NsibBruttoGrTest1()
{
var preparedValues = new PreparedValues
{

View File

@ -4,10 +4,10 @@ using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class NSIBExpensesTests
public class NsibExpensesTests
{
[Fact]
public void NSIBExpensesTest1()
public void NsibExpensesTest1()
{
var preparedValues = new PreparedValues
{
@ -58,7 +58,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
[Fact]
public void NSIBExpensesTest2()
public void NsibExpensesTest2()
{
var preparedValues = new PreparedValues
{
@ -94,7 +94,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
[Fact]
public void NSIBExpensesTest3()
public void NsibExpensesTest3()
{
var preparedValues = new PreparedValues
{

View File

@ -0,0 +1,89 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class SumCurrentTests
{
[Fact]
public void SumCurrentTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25
};
var sumWithVatColumn = new SumWithVATColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
4626000m,
1500000m,
144000m,
144000m,
144000m,
144000m,
144000m,
144000m,
144000m,
144000m,
144000m,
144000m,
129600m,
129600m,
129600m,
129600m,
129600m,
129600m,
129600m,
129600m,
129600m,
129600m,
129600m,
115200m,
115200m,
30000m
}
};
var sumCurrentColumn = new SumCurrentColumn(preparedValues.Nmper + 1);
sumCurrentColumn.ComputeValues(sumWithVatColumn);
var expected = new[]
{
0,
4626000m,
3126000m,
2982000m,
2838000m,
2694000m,
2550000m,
2406000m,
2262000m,
2118000m,
1974000m,
1830000m,
1686000m,
1556400m,
1426800m,
1297200m,
1167600m,
1038000m,
908400m,
778800m,
649200m,
519600m,
390000m,
260400m,
145200m,
30000m
};
Assert.Equal(expected.Length, sumCurrentColumn.Values.Length);
Assert.Equal(expected, sumCurrentColumn.Values, new DecimalArrayComparer());
}
}
}

View File

@ -0,0 +1,88 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class SumCurrentInterestTests
{
[Fact]
public void SumCurrentInterestTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25
};
var interestColumn = new InterestColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
0,
51385.3011802696m,
51185.6562181931m,
49243.5842714204m,
42616.7590628555m,
45062.8007951257m,
41543.7752969065m,
40733.7459931845m,
37238.0763799393m,
36161.0019828137m,
33794.9056554118m,
30336.6721025071m,
29170.226434357m,
27631.9637978352m,
26297.7685736248m,
23991.9758722514m,
20207.9671763514m,
19143.4508014149m,
16091.854502769m,
14041.9265661655m,
11017.853738273m,
8653.22962011698m,
5849.47439767389m,
3197.19155814215m,
686.182588304444m
}
};
var sumCurrentInterestColumn = new SumCurrentInterestColumn(preparedValues.Nmper + 1);
sumCurrentInterestColumn.ComputeValues(interestColumn);
var expected = new[]
{
0,
665283.367743173m,
613898.066562903m,
562712.41034471m,
513468.826073289m,
470852.067010434m,
425789.266215308m,
384245.490918402m,
343511.744925217m,
306273.668545278m,
270112.666562464m,
236317.760907052m,
205981.088804545m,
176810.862370188m,
149178.898572353m,
122881.129998728m,
98889.1541264768m,
78681.1869501255m,
59537.7361487106m,
43445.8816459416m,
29403.9550797761m,
18386.1013415031m,
9732.87172138608m,
3883.39732371219m,
686.205765570042m,
0.0231772655979618m
};
Assert.Equal(expected.Length, sumCurrentInterestColumn.Values.Length);
Assert.Equal(expected, sumCurrentInterestColumn.Values, new DecimalArrayComparer(0.1));
}
}
}

View File

@ -0,0 +1,89 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class SumCurrentNegativeTests
{
[Fact]
public void SumCurrentNegativeTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25
};
var negativeCashflowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-110416.666666667m,
-53000m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-57416.6666666667m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
}
};
var sumCurrentNegativeColumn = new SumCurrentNegativeColumn(preparedValues.Nmper + 1);
sumCurrentNegativeColumn.ComputeValues(negativeCashflowColumn);
var expected = new[]
{
0,
-110416.666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
};
Assert.Equal(expected.Length, sumCurrentNegativeColumn.Values.Length);
Assert.Equal(expected, sumCurrentNegativeColumn.Values, new DecimalArrayComparer());
}
}
}

View File

@ -0,0 +1,89 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class SumCurrentTlmTests
{
[Fact]
public void SumCurrentTlmTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25
};
var tlmGrColumn = new TLM_GrColumn(preparedValues.Nmper + 1, new DateTempColumn(67), 0)
{
Values = new[]
{
-17757.5461595619m,
0,
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 sumCurrentTlmColumn = new SumCurrentTLMColumn(preparedValues.Nmper + 1);
sumCurrentTlmColumn.ComputeValues(tlmGrColumn);
var expected = new[]
{
0,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
10800m,
9900m,
9000m,
8100m,
7200m,
6300m,
5400m,
4500m,
3600m,
2700m,
1800m,
900m,
0m
};
Assert.Equal(expected.Length, sumCurrentTlmColumn.Values.Length);
Assert.Equal(expected, sumCurrentTlmColumn.Values, new DecimalArrayComparer());
}
}
}

View File

@ -0,0 +1,192 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class SumRepaymentTests
{
[Fact]
public void SumRepaymentTest1()
{
var preparedValues = new PreparedValues
{
Nmper = 25,
Repayment = 0.25
};
var sumCurrentColumn = new SumCurrentColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
0,
3876000m,
3126000m,
2982000m,
2838000m,
2694000m,
2550000m,
2406000m,
2262000m,
2118000m,
1974000m,
1830000m,
1686000m,
1556400m,
1426800m,
1297200m,
1167600m,
1038000m,
908400m,
778800m,
649200m,
519600m,
390000m,
260400m,
145200m,
30000m
}
};
var sumCurrentNegativeColumn = new SumCurrentNegativeColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
0,
-110416.666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
-57416.6666666667m,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
}
};
var sumCurrentInterestColumn = new SumCurrentInterestColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
0,
665283.367743173m,
613898.066562903m,
562712.41034471m,
513468.826073289m,
470852.067010434m,
425789.266215308m,
384245.490918402m,
343511.744925217m,
306273.668545278m,
270112.666562464m,
236317.760907052m,
205981.088804545m,
176810.862370188m,
149178.898572353m,
122881.129998728m,
98889.1541264768m,
78681.1869501255m,
59537.7361487106m,
43445.8816459416m,
29403.9550797761m,
18386.1013415031m,
9732.87172138608m,
3883.39732371219m,
686.205765570042m,
0.0231772655979618m
}
};
var sumCurrentTlmColumn = new SumCurrentTLMColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
0,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
11700m,
10800m,
9900m,
9000m,
8100m,
7200m,
6300m,
5400m,
4500m,
3600m,
2700m,
1800m,
900m,
0m
}
};
var sumRepaymentColumnColumn = new SumRepaymentColumn(preparedValues.Nmper + 1);
sumRepaymentColumnColumn.ComputeValues(new Constants.Calculation(), preparedValues, sumCurrentColumn,
sumCurrentNegativeColumn,
sumCurrentInterestColumn, sumCurrentTlmColumn);
var expected = new[]
{
0,
0,
2870373.91336446m,
2741729.61022992m,
2612502.68551135m,
2481287.7132302m,
2350806.55346874m,
2219269.68605781m,
2087489.80985577m,
1954661.23276975m,
1821509.53336459m,
1687648.00506122m,
1552749.00669197m,
1432980.07462228m,
1370166.33042829m,
1249535.66100038m,
1128213.25376206m,
1005755.64391496m,
882978.679155387m,
759286.235506218m,
634978.813476067m,
509764.169597549m,
383840.138483584m,
257074.980802886m,
143914.138270329m,
29999.9930468203m
};
Assert.Equal(expected.Length, sumRepaymentColumnColumn.Values.Length);
Assert.Equal(expected, sumRepaymentColumnColumn.Values, new DecimalArrayComparer());
}
}
}

View File

@ -4,10 +4,10 @@ using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class TLMExpensesTests
public class TlmExpensesTests
{
[Fact]
public void TLMExpensesTest1()
public void TlmExpensesTest1()
{
var preparedValues = new PreparedValues
{

View File

@ -5,7 +5,7 @@ using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class TLM_GrTests
public class TlmGrTests
{
[Fact]
public void TLM_GrTest1()

View File

@ -213,7 +213,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var transExprensesColumn = new TransExprensesColumn(preparedValues.Nmper + 1)
var transExprensesColumn = new TransExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{

View File

@ -16,7 +16,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
TransportTaxGr = 30000
};
var transExprensesColumn = new TransExprensesColumn(preparedValues.Nmper + 1);
var transExprensesColumn = new TransExpensesColumn(preparedValues.Nmper + 1);
transExprensesColumn.ComputeValues(preparedValues);
@ -70,7 +70,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
TransportTaxGr = 24000
};
var transExprensesColumn = new TransExprensesColumn(preparedValues.Nmper + 1);
var transExprensesColumn = new TransExpensesColumn(preparedValues.Nmper + 1);
transExprensesColumn.ComputeValues(preparedValues);

View File

@ -4,10 +4,10 @@ using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class VATColumnTests
public class VatColumnTests
{
[Fact]
public void VATColumnTest1()
public void VatColumnTest1()
{
var preparedValues = new PreparedValues
{

View File

@ -101,7 +101,7 @@ namespace EvoCalculator.Core.Controllers.V1
ratExpensesColumn.ComputeValues(preparedValues);
var transExprensesColumn = new TransExprensesColumn(preparedValues.Nmper + 1);
var transExprensesColumn = new TransExpensesColumn(preparedValues.Nmper + 1);
transExprensesColumn.ComputeValues(preparedValues);