rewrite simple columns && start sumColumn
This commit is contained in:
parent
5feb8d42af
commit
8c0a87cb3b
@ -38,12 +38,17 @@
|
|||||||
<e p="EvoCalculator.Core.Calculation" t="IncludeRecursive">
|
<e p="EvoCalculator.Core.Calculation" t="IncludeRecursive">
|
||||||
<e p="bin" t="ExcludeRecursive" />
|
<e p="bin" t="ExcludeRecursive" />
|
||||||
<e p="Columns" t="Include">
|
<e p="Columns" t="Include">
|
||||||
|
<e p="BaseColumn.cs" t="Include" />
|
||||||
<e p="BaseColumnWithXIRR.cs" t="Include" />
|
<e p="BaseColumnWithXIRR.cs" t="Include" />
|
||||||
<e p="DateColumn.cs" t="Include" />
|
<e p="DateColumn.cs" t="Include" />
|
||||||
<e p="DateTempColumn.cs" t="Include" />
|
<e p="DateTempColumn.cs" t="Include" />
|
||||||
|
<e p="GPS_GrColumn.cs" t="Include" />
|
||||||
<e p="KaskoNmperGrColumn.cs" t="Include" />
|
<e p="KaskoNmperGrColumn.cs" t="Include" />
|
||||||
<e p="PercentPaymentColumn.cs" t="Include" />
|
<e p="PercentPaymentColumn.cs" t="Include" />
|
||||||
<e p="SumColumn.cs" t="Include" />
|
<e p="SumColumn.cs" t="Include" />
|
||||||
|
<e p="SumWithVATColumn.cs" t="Include" />
|
||||||
|
<e p="TLM_GRColumn.cs" t="Include" />
|
||||||
|
<e p="VATColumn.cs" t="Include" />
|
||||||
</e>
|
</e>
|
||||||
<e p="EvoCalculator.Core.Calculation.csproj" t="IncludeRecursive" />
|
<e p="EvoCalculator.Core.Calculation.csproj" t="IncludeRecursive" />
|
||||||
<e p="obj" t="ExcludeRecursive">
|
<e p="obj" t="ExcludeRecursive">
|
||||||
@ -68,7 +73,9 @@
|
|||||||
</e>
|
</e>
|
||||||
<e p="EvoCalculator.Core.FinanceFormulas" t="IncludeRecursive">
|
<e p="EvoCalculator.Core.FinanceFormulas" t="IncludeRecursive">
|
||||||
<e p="bin" t="ExcludeRecursive" />
|
<e p="bin" t="ExcludeRecursive" />
|
||||||
|
<e p="Bisection.cs" t="Include" />
|
||||||
<e p="EvoCalculator.Core.FinanceFormulas.csproj" t="IncludeRecursive" />
|
<e p="EvoCalculator.Core.FinanceFormulas.csproj" t="IncludeRecursive" />
|
||||||
|
<e p="GoalXIRR.cs" t="Include" />
|
||||||
<e p="obj" t="ExcludeRecursive">
|
<e p="obj" t="ExcludeRecursive">
|
||||||
<e p="Debug" t="Include">
|
<e p="Debug" t="Include">
|
||||||
<e p="netcoreapp3.1" t="Include">
|
<e p="netcoreapp3.1" t="Include">
|
||||||
@ -83,8 +90,6 @@
|
|||||||
<e p="bin" t="ExcludeRecursive" />
|
<e p="bin" t="ExcludeRecursive" />
|
||||||
<e p="Calculation" t="Include">
|
<e p="Calculation" t="Include">
|
||||||
<e p="Interfaces" t="Include">
|
<e p="Interfaces" t="Include">
|
||||||
<e p="IColumn.cs" t="Include" />
|
|
||||||
<e p="IColumnWithXIRR.cs" t="Include" />
|
|
||||||
<e p="IFinanceFormula.cs" t="Include" />
|
<e p="IFinanceFormula.cs" t="Include" />
|
||||||
</e>
|
</e>
|
||||||
<e p="Models" t="Include">
|
<e p="Models" t="Include">
|
||||||
@ -116,15 +121,19 @@
|
|||||||
<e p="EvoCalculator.Core.Tests" t="IncludeRecursive">
|
<e p="EvoCalculator.Core.Tests" t="IncludeRecursive">
|
||||||
<e p="bin" t="ExcludeRecursive" />
|
<e p="bin" t="ExcludeRecursive" />
|
||||||
<e p="Calculation" t="Include">
|
<e p="Calculation" t="Include">
|
||||||
|
<e p="Columns" t="Include">
|
||||||
|
<e p="DateColumnTests.cs" t="Include" />
|
||||||
|
<e p="DateTempTests.cs" t="Include" />
|
||||||
|
<e p="GPS_GrTests.cs" t="Include" />
|
||||||
|
<e p="KaskoNmperGrTests.cs" t="Include" />
|
||||||
|
<e p="PercentPaymentTests.cs" t="Include" />
|
||||||
|
<e p="SumColumnTest.cs" t="Include" />
|
||||||
|
<e p="SumWithVatTests.cs" t="Include" />
|
||||||
|
<e p="TLM_GrTests.cs" t="Include" />
|
||||||
|
<e p="VATColumnTests.cs" t="Include" />
|
||||||
|
</e>
|
||||||
<e p="Controllers" t="Include" />
|
<e p="Controllers" t="Include" />
|
||||||
<e p="Suite" t="Include">
|
<e p="FinanceFormulas" t="Include">
|
||||||
<e p="Columns" t="Include">
|
|
||||||
<e p="DateColumnTests.cs" t="Include" />
|
|
||||||
<e p="DateTempTests.cs" t="Include" />
|
|
||||||
<e p="KaskoNmperGrTests.cs" t="Include" />
|
|
||||||
<e p="PercentPaymentTests.cs" t="Include" />
|
|
||||||
<e p="SumColumnTest.cs" t="Include" />
|
|
||||||
</e>
|
|
||||||
<e p="FinanceFormulasTests.cs" t="Include" />
|
<e p="FinanceFormulasTests.cs" t="Include" />
|
||||||
</e>
|
</e>
|
||||||
</e>
|
</e>
|
||||||
|
|||||||
246
.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
generated
246
.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
generated
@ -14,19 +14,35 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="2c3b0650-5589-43d4-b4b7-2979612bb30f" name="Default Changelist" comment="">
|
<list default="true" id="2c3b0650-5589-43d4-b4b7-2979612bb30f" name="Default Changelist" comment="">
|
||||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumn.cs" afterDir="false" />
|
||||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/GPS_GrColumn.cs" afterDir="false" />
|
||||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/EvoCalculator.Core.FinanceFormulas.csproj" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumWithVATColumn.cs" afterDir="false" />
|
||||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumnWithXIRR.cs" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TLM_GrColumn.cs" afterDir="false" />
|
||||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/SumColumnTest.cs" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/VATColumn.cs" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/Bisection.cs" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/GoalXIRR.cs" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/GPS_GrTests.cs" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumWithVatTests.cs" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TLM_GrTests.cs" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/VATColumnTests.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/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$/.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/BaseColumnWithXIRR.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateColumn.cs" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateTempColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateTempColumn.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/EvoCalculator.Core.Calculation.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/EvoCalculator.Core.Calculation.csproj" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/PercentPaymentColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/PercentPaymentColumn.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XIRR.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XNPV.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XNPV.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/EvoCalculator.Core.FinanceFormulas.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/EvoCalculator.Core.FinanceFormulas.csproj" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/FinanceFormulasTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/FinanceFormulasTests.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.sln" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.sln" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumn.cs" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumnWithXIRR.cs" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/DateColumnTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DateColumnTests.cs" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/DateTempTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DateTempTests.cs" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/KaskoNmperGrTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/KaskoNmperGrTests.cs" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/PercentPaymentTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/PercentPaymentTests.cs" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/SumColumnTest.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumColumnTest.cs" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/FinanceFormulasTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/FinanceFormulas/FinanceFormulasTests.cs" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@ -37,67 +53,79 @@
|
|||||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
<component name="HighlightingSettingsPerFile">
|
<component name="HighlightingSettingsPerFile">
|
||||||
<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://$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
|
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/af/6846d1ce/GoalSeek.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" root0="FORCE_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/DecompilerCache/decompiler/9152434B-0FAC-463B-87F2-DD9AF798817F/2e/201d3c41/Assert.cs" root0="SKIP_HIGHLIGHTING" />
|
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/9152434B-0FAC-463B-87F2-DD9AF798817F/2e/201d3c41/Assert.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/8a/efc30f2b/IGoalSeekAlgorithm.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/49/DateTime.cs" root0="SKIP_HIGHLIGHTING" />
|
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/49/DateTime.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/72/Double.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
<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="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
<setting file="mock:///Dummy.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/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/31F94AF4-0455-4C4C-BD4F-AB58A9F2D1BF/2C/Sum.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
</component>
|
</component>
|
||||||
<component name="IdeDocumentHistory">
|
<component name="IdeDocumentHistory">
|
||||||
<option name="CHANGED_PATHS">
|
<option name="CHANGED_PATHS">
|
||||||
<list>
|
<list>
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Class1.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/WeatherForecastController.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core/Startup.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v2/WeatherForecastController.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v3/WeatherForecastController.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Interfaces/IWeatherForecast.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Weather/WeatherForecast.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Weather/Interfaces/IWeatherForecast.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Controllers/WeatherForecastControllerTests.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/IFinanceFormula.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IFinanceFormula.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/FlowValues.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/InitialParams.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/InitialPayments.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XNPV.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/FinanceFormulas/XIRR.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/WeatherForecastController.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/PreparedParams.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/PreparedPayments.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ComputableColumn.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedParams.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedParams.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Constants.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Constants.cs" />
|
||||||
<option value="$PROJECT_DIR$/Constants/Class1.cs" />
|
<option value="$PROJECT_DIR$/Constants/Class1.cs" />
|
||||||
<option value="$PROJECT_DIR$/Constants/Calculation/Constants.cs" />
|
<option value="$PROJECT_DIR$/Constants/Calculation/Constants.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation/Constants.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation/Constants.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/ColumnsTests.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/ColumnsTests.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/DateColumnTests.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/DateTempTests.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedPayments.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedPayments.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/PercentPaymentTests.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGr.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGr.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateColumn.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateTempColumn.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/KaskoNmperGrTests.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/PercentPaymentColumn.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumn.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumn.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/BaseColumnWithXIRR.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/BaseColumnWithXIRR.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.FinanceFormulas/Class1.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.FinanceFormulas/Class1.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.FinanceFormulas/XNPV.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.FinanceFormulas/XNPV.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.FinanceFormulas/XIRR.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.FinanceFormulas/XIRR.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XNPV.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XNPV.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/BaseColumnWithXIRR.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/BaseColumnWithXIRR.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/Bisection.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/SumColumnTest.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/GoalSeek.cs" />
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumnWithXIRR.cs" />
|
|
||||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/FinanceFormulasTests.cs" />
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/FinanceFormulasTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/IColumnWithXIRR.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TLM_GR.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TLM_GRColumn.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/SumColumnTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumn.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/DateColumnTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/DateTempTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/PercentPaymentTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/GPS_GrTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/SumColumnTest.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/SumWithVatTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/TLM_GrTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/VATColumnTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Suite/Columns/KaskoNmperGrTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DateColumnTests.cs" />
|
||||||
|
<option value="$APPLICATION_CONFIG_DIR$/scratches/scratch.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateColumn.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateTempColumn.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/GPS_GrColumn.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/PercentPaymentColumn.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumWithVATColumn.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TLM_GrColumn.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/VATColumn.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumWithVatTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/VATColumnTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/GoalXIRR.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumColumnTest.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/FinanceFormulas/FinanceFormulasTests.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" />
|
||||||
|
<option value="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@ -115,8 +143,9 @@
|
|||||||
<property name="DebuggerViewTab_PTCS_LastProportionKey" value="0.30008045" />
|
<property name="DebuggerViewTab_PTCS_LastProportionKey" value="0.30008045" />
|
||||||
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
||||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
<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="nodejs_package_manager_path" value="npm" />
|
||||||
<property name="settings.editor.selected.configurable" value="editor.preferences.smartKeys_rider" />
|
<property name="settings.editor.selected.configurable" value="preferences.customizations" />
|
||||||
<property name="vue.rearranger.settings.migration" value="true" />
|
<property name="vue.rearranger.settings.migration" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager" selected=".NET Launch Settings Profile.EvoCalculator.Core">
|
<component name="RunManager" selected=".NET Launch Settings Profile.EvoCalculator.Core">
|
||||||
@ -164,7 +193,8 @@
|
|||||||
<workItem from="1602678304213" duration="9304000" />
|
<workItem from="1602678304213" duration="9304000" />
|
||||||
<workItem from="1602754684591" duration="13639000" />
|
<workItem from="1602754684591" duration="13639000" />
|
||||||
<workItem from="1602850022326" duration="4617000" />
|
<workItem from="1602850022326" duration="4617000" />
|
||||||
<workItem from="1602854690202" duration="696000" />
|
<workItem from="1602854690202" duration="5777000" />
|
||||||
|
<workItem from="1603096869934" duration="23413000" />
|
||||||
</task>
|
</task>
|
||||||
<task id="LOCAL-00001" summary="rename: flow">
|
<task id="LOCAL-00001" summary="rename: flow">
|
||||||
<created>1602593830686</created>
|
<created>1602593830686</created>
|
||||||
@ -208,90 +238,94 @@
|
|||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state x="734" y="355" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602508288549" />
|
<state x="734" y="355" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602508288549" />
|
||||||
<state width="897" height="464" key="DebuggerActiveHint" timestamp="1602767525601">
|
<state x="1108" y="416" key="#com.intellij.ide.ui.customization.CustomizableActionsPanel.FindAvailableActionsDialog" timestamp="1603119675236">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="897" height="464" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602767525601" />
|
<state x="1108" y="416" key="#com.intellij.ide.ui.customization.CustomizableActionsPanel.FindAvailableActionsDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603119675236" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.0.bottom" timestamp="1602768462757">
|
<state width="897" height="464" key="DebuggerActiveHint" timestamp="1603128596492">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
<state width="897" height="464" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128596492" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.0.center" timestamp="1602768462757">
|
<state width="2517" height="464" key="GridCell.Tab.0.bottom" timestamp="1603128549927">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
<state width="2517" height="464" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549927" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.0.left" timestamp="1602768462756">
|
<state width="2517" height="464" key="GridCell.Tab.0.center" timestamp="1603128549927">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462756" />
|
<state width="2517" height="464" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549927" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.0.right" timestamp="1602768462757">
|
<state width="2517" height="464" key="GridCell.Tab.0.left" timestamp="1603128549927">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
<state width="2517" height="464" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549927" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.1.bottom" timestamp="1602768462757">
|
<state width="2517" height="464" key="GridCell.Tab.0.right" timestamp="1603128549927">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
<state width="2517" height="464" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549927" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.1.center" timestamp="1602768462757">
|
<state width="2517" height="464" key="GridCell.Tab.1.bottom" timestamp="1603128549927">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
<state width="2517" height="464" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549927" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.1.left" timestamp="1602768462757">
|
<state width="2517" height="464" key="GridCell.Tab.1.center" timestamp="1603128549927">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
<state width="2517" height="464" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549927" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.1.right" timestamp="1602768462757">
|
<state width="2517" height="464" key="GridCell.Tab.1.left" timestamp="1603128549927">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
<state width="2517" height="464" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549927" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.2.bottom" timestamp="1602768462758">
|
<state width="2517" height="464" key="GridCell.Tab.1.right" timestamp="1603128549927">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
<state width="2517" height="464" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549927" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.2.center" timestamp="1602768462758">
|
<state width="2517" height="464" key="GridCell.Tab.2.bottom" timestamp="1603128549928">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
<state width="2517" height="464" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549928" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.2.left" timestamp="1602768462757">
|
<state width="2517" height="464" key="GridCell.Tab.2.center" timestamp="1603128549928">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462757" />
|
<state width="2517" height="464" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549928" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.2.right" timestamp="1602768462758">
|
<state width="2517" height="464" key="GridCell.Tab.2.left" timestamp="1603128549927">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
<state width="2517" height="464" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549927" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.3.bottom" timestamp="1602768462758">
|
<state width="2517" height="464" key="GridCell.Tab.2.right" timestamp="1603128549928">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
<state width="2517" height="464" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549928" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.3.center" timestamp="1602768462758">
|
<state width="2517" height="464" key="GridCell.Tab.3.bottom" timestamp="1603128549929">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
<state width="2517" height="464" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549929" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.3.left" timestamp="1602768462758">
|
<state width="2517" height="464" key="GridCell.Tab.3.center" timestamp="1603128549928">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
<state width="2517" height="464" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549928" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.3.right" timestamp="1602768462758">
|
<state width="2517" height="464" key="GridCell.Tab.3.left" timestamp="1603128549928">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
<state width="2517" height="464" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549928" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.4.bottom" timestamp="1602768462758">
|
<state width="2517" height="464" key="GridCell.Tab.3.right" timestamp="1603128549928">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
<state width="2517" height="464" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549928" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.4.center" timestamp="1602768462758">
|
<state width="2517" height="464" key="GridCell.Tab.4.bottom" timestamp="1603128549930">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
<state width="2517" height="464" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549930" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.4.left" timestamp="1602768462758">
|
<state width="2517" height="464" key="GridCell.Tab.4.center" timestamp="1603128549929">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
<state width="2517" height="464" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549929" />
|
||||||
<state width="2517" height="437" key="GridCell.Tab.4.right" timestamp="1602768462758">
|
<state width="2517" height="464" key="GridCell.Tab.4.left" timestamp="1603128549929">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2517" height="437" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602768462758" />
|
<state width="2517" height="464" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549929" />
|
||||||
|
<state width="2517" height="464" key="GridCell.Tab.4.right" timestamp="1603128549929">
|
||||||
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
|
</state>
|
||||||
|
<state width="2517" height="464" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603128549929" />
|
||||||
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602854431119">
|
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602854431119">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
@ -304,18 +338,18 @@
|
|||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state x="1078" y="410" key="RollbackChangesDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602761804757" />
|
<state x="1078" y="410" key="RollbackChangesDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602761804757" />
|
||||||
<state x="781" y="345" key="SettingsEditor" timestamp="1602593091446">
|
<state x="781" y="345" key="SettingsEditor" timestamp="1603119676785">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state x="781" y="345" key="SettingsEditor/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602593091446" />
|
<state x="781" y="345" key="SettingsEditor/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603119676785" />
|
||||||
<state width="498" height="446" key="SwitcherDM" timestamp="1602684835910">
|
<state width="498" height="446" key="SwitcherDM" timestamp="1602684835910">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state width="498" height="446" key="SwitcherDM/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602684835910" />
|
<state width="498" height="446" key="SwitcherDM/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602684835910" />
|
||||||
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog" timestamp="1602762600043">
|
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog" timestamp="1603105849632">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</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="1602762600043" />
|
<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="1603105849632" />
|
||||||
<state x="872" y="433" key="Vcs.Push.Dialog.v2" timestamp="1602755745888">
|
<state x="872" y="433" key="Vcs.Push.Dialog.v2" timestamp="1602755745888">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
@ -324,18 +358,36 @@
|
|||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</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="1602760039715" />
|
<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="1602760039715" />
|
||||||
<state x="930" y="299" width="700" height="801" key="find.popup" timestamp="1602593714122">
|
<state x="930" y="299" width="730" height="801" key="find.popup" timestamp="1603107561928">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</state>
|
||||||
<state x="930" y="299" width="700" height="801" key="find.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602593714122" />
|
<state x="930" y="299" width="730" height="801" key="find.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603107561928" />
|
||||||
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup" timestamp="1602850027763">
|
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup" timestamp="1602850027763">
|
||||||
<screen x="0" y="0" width="2560" height="1400" />
|
<screen x="0" y="0" width="2560" height="1400" />
|
||||||
</state>
|
</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="1602850027763" />
|
<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="1602850027763" />
|
||||||
</component>
|
</component>
|
||||||
<component name="XDebuggerManager">
|
<component name="XDebuggerManager">
|
||||||
|
<breakpoint-manager>
|
||||||
|
<breakpoints>
|
||||||
|
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||||
|
<url>file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs</url>
|
||||||
|
<line>41</line>
|
||||||
|
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Calculation\Columns\SumColumn.cs" initialLine="41">
|
||||||
|
<startOffsets>
|
||||||
|
<option value="1387" />
|
||||||
|
</startOffsets>
|
||||||
|
<endOffsets>
|
||||||
|
<option value="1417" />
|
||||||
|
</endOffsets>
|
||||||
|
</properties>
|
||||||
|
<option name="timeStamp" value="27" />
|
||||||
|
</line-breakpoint>
|
||||||
|
</breakpoints>
|
||||||
|
</breakpoint-manager>
|
||||||
<pin-to-top-manager>
|
<pin-to-top-manager>
|
||||||
<pinned-members>
|
<pinned-members>
|
||||||
|
<PinnedItemInfo parentTag="Frame#EvoCalculator.Core.Tests.Calculation.Suite.Columns.TLM_GrTests.TLM_GrTest1" memberName="expected" />
|
||||||
<PinnedItemInfo parentTag="Frame#EvoCalculator.Core.Tests.Calculation.Suite.Columns.KaskoNmperGrTests.KaskoNmperGrTest2" memberName="preparedValues" />
|
<PinnedItemInfo parentTag="Frame#EvoCalculator.Core.Tests.Calculation.Suite.Columns.KaskoNmperGrTests.KaskoNmperGrTest2" memberName="preparedValues" />
|
||||||
</pinned-members>
|
</pinned-members>
|
||||||
</pin-to-top-manager>
|
</pin-to-top-manager>
|
||||||
|
|||||||
12
EvoCalculator.Core.Calculation/Columns/BaseColumn.cs
Normal file
12
EvoCalculator.Core.Calculation/Columns/BaseColumn.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
namespace EvoCalculator.Core.Calculation.Columns
|
||||||
|
{
|
||||||
|
public abstract class BaseColumn<T>
|
||||||
|
{
|
||||||
|
public T[] Values { get; set; }
|
||||||
|
|
||||||
|
protected BaseColumn(int count)
|
||||||
|
{
|
||||||
|
Values = new T[count];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,14 +1,19 @@
|
|||||||
using System;
|
using System;
|
||||||
using EvoCalculator.Core.FinanceFormulas;
|
using EvoCalculator.Core.FinanceFormulas;
|
||||||
using EvoCalculator.Core.Models.Calculation.Interfaces;
|
using EvoCalculator.Core.Models.Calculation.Models;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Models.Calculation.Models
|
namespace EvoCalculator.Core.Calculation.Columns
|
||||||
{
|
{
|
||||||
public class BaseColumnWithXIRR : IColumnWithXIRR<double>
|
public class BaseColumnWithXIRR : BaseColumn<double>
|
||||||
{
|
{
|
||||||
public double[] Values { get; set; }
|
|
||||||
public double IRR { get; set; }
|
public double IRR { get; set; }
|
||||||
public DateTime[] Dates { get; set; }
|
private DateTime[] Dates { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public BaseColumnWithXIRR(int count, DateTempColumn dateTempColumn) : base(count)
|
||||||
|
{
|
||||||
|
Dates = dateTempColumn.Values;
|
||||||
|
}
|
||||||
|
|
||||||
protected Flow[] Flows
|
protected Flow[] Flows
|
||||||
{
|
{
|
||||||
@ -27,11 +32,5 @@ namespace EvoCalculator.Core.Models.Calculation.Models
|
|||||||
return flows;
|
return flows;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeXIRR()
|
|
||||||
{
|
|
||||||
var XIRR = new XIRR(this.Flows);
|
|
||||||
IRR = XIRR.GetResult();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,22 +1,15 @@
|
|||||||
using System;
|
using System;
|
||||||
using EvoCalculator.Core.Models.Calculation.Interfaces;
|
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.Columns
|
namespace EvoCalculator.Core.Calculation.Columns
|
||||||
{
|
{
|
||||||
public class DateColumn : IColumn<DateTime>
|
public class DateColumn : BaseColumn<DateTime>
|
||||||
{
|
{
|
||||||
public DateTime[] Values { get; set; }
|
public DateColumn(int count) : base(count)
|
||||||
|
|
||||||
public DateColumn(int count)
|
|
||||||
{
|
{
|
||||||
Values = new DateTime[count];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues,
|
public void ComputeValues(PreparedValues preparedValues, Constants.Calculation constants)
|
||||||
PreparedPayments preparedPayments,
|
|
||||||
Constants.Calculation constants,
|
|
||||||
params IColumn<DateTime>[] columns)
|
|
||||||
{
|
{
|
||||||
Values[0] = preparedValues.DogDate;
|
Values[0] = preparedValues.DogDate;
|
||||||
Values[1] = Values[0];
|
Values[1] = Values[0];
|
||||||
|
|||||||
@ -1,23 +1,15 @@
|
|||||||
using System;
|
using System;
|
||||||
using EvoCalculator.Core.Models.Calculation.Interfaces;
|
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.Columns
|
namespace EvoCalculator.Core.Calculation.Columns
|
||||||
{
|
{
|
||||||
public class DateTempColumn : IColumn<DateTime>
|
public class DateTempColumn : BaseColumn<DateTime>
|
||||||
{
|
{
|
||||||
public DateTime[] Values { get; set; }
|
public DateTempColumn(int count) : base(count)
|
||||||
|
|
||||||
//TODO: extract 67
|
|
||||||
public DateTempColumn(int count = 67)
|
|
||||||
{
|
{
|
||||||
Values = new DateTime[count];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedValues preparedValues)
|
||||||
public void ComputeValues(PreparedValues preparedValues, PreparedPayments preparedPayments,
|
|
||||||
Constants.Calculation constants,
|
|
||||||
params IColumn<DateTime>[] columns)
|
|
||||||
{
|
{
|
||||||
Values[0] = preparedValues.DogDate;
|
Values[0] = preparedValues.DogDate;
|
||||||
Values[1] = Values[0];
|
Values[1] = Values[0];
|
||||||
|
|||||||
24
EvoCalculator.Core.Calculation/Columns/GPS_GrColumn.cs
Normal file
24
EvoCalculator.Core.Calculation/Columns/GPS_GrColumn.cs
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
using EvoCalculator.Core.FinanceFormulas;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.Columns
|
||||||
|
{
|
||||||
|
public class GPS_GrColumn : BaseColumnWithXIRR
|
||||||
|
{
|
||||||
|
public GPS_GrColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedPayments preparedPayments, PreparedValues preparedValues)
|
||||||
|
{
|
||||||
|
for (var i = 1; i < Values.Length; i++)
|
||||||
|
{
|
||||||
|
Values[i] = preparedPayments.Rows[i - 1].TlmCostPayment;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var XNPV = new XNPV(base.Flows, preparedValues.IrrExpected);
|
||||||
|
Values[0] = -XNPV.GetResult();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,21 +1,16 @@
|
|||||||
using System;
|
using EvoCalculator.Core.FinanceFormulas;
|
||||||
using EvoCalculator.Core.FinanceFormulas;
|
|
||||||
using EvoCalculator.Core.Models.Calculation.Interfaces;
|
|
||||||
using EvoCalculator.Core.Models.Calculation.Models;
|
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using TridentGoalSeek;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.Columns
|
namespace EvoCalculator.Core.Calculation.Columns
|
||||||
{
|
{
|
||||||
public class KaskoNmperGrColumn : IColumn<double>
|
public class KaskoNmperGrColumn : BaseColumnWithXIRR
|
||||||
{
|
{
|
||||||
public double[] Values { get; set; }
|
public KaskoNmperGrColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
|
||||||
|
|
||||||
public KaskoNmperGrColumn(int count)
|
|
||||||
{
|
{
|
||||||
Values = new double[count];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, IColumn<DateTime> dateTempColumn)
|
public void ComputeValues(PreparedValues preparedValues)
|
||||||
{
|
{
|
||||||
for (var i = 0; i < Values.Length; i++)
|
for (var i = 0; i < Values.Length; i++)
|
||||||
{
|
{
|
||||||
@ -38,18 +33,7 @@ namespace EvoCalculator.Core.Calculation.Columns
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Flow[] flows = new Flow[Values.Length - 1];
|
var XNPV = new XNPV(Flows, preparedValues.IrrExpected);
|
||||||
for (var i = 1; i < Values.Length; i++)
|
|
||||||
{
|
|
||||||
flows[i - 1] = new Flow()
|
|
||||||
{
|
|
||||||
Date = dateTempColumn.Values[i].Date,
|
|
||||||
Value = Values[i]
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var XNPV = new XNPV(flows, preparedValues.IrrExpected);
|
|
||||||
Values[0] = -XNPV.GetResult();
|
Values[0] = -XNPV.GetResult();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,21 +1,14 @@
|
|||||||
using System.Linq;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
using EvoCalculator.Core.Models.Calculation.Interfaces;
|
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.Columns
|
namespace EvoCalculator.Core.Calculation.Columns
|
||||||
{
|
{
|
||||||
public class PercentPaymentColumn : IColumn<double>
|
public class PercentPaymentColumn : BaseColumn<double>
|
||||||
{
|
{
|
||||||
public double[] Values { get; set; }
|
public PercentPaymentColumn(int count) : base(count)
|
||||||
|
|
||||||
public PercentPaymentColumn(int count)
|
|
||||||
{
|
{
|
||||||
Values = new double[count];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, PreparedPayments preparedPayments,
|
public void ComputeValues(PreparedPayments preparedPayments)
|
||||||
Constants.Calculation constants,
|
|
||||||
params IColumn<double>[] columns)
|
|
||||||
{
|
{
|
||||||
Values[0] = 0;
|
Values[0] = 0;
|
||||||
Values[1] = 0;
|
Values[1] = 0;
|
||||||
|
|||||||
@ -1,35 +1,52 @@
|
|||||||
using System;
|
using System;
|
||||||
using EvoCalculator.Core.Models.Calculation.Interfaces;
|
using System.Linq;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models;
|
using EvoCalculator.Core.FinanceFormulas;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using TridentGoalSeek;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.Columns
|
namespace EvoCalculator.Core.Calculation.Columns
|
||||||
{
|
{
|
||||||
public class SumColumn : BaseColumnWithXIRR
|
public class SumColumn : BaseColumnWithXIRR, IGoalSeekAlgorithm
|
||||||
{
|
{
|
||||||
public SumColumn(int count, DateTempColumn dateTempColumn)
|
private readonly PreparedValues _preparedValues;
|
||||||
{
|
private readonly PercentPaymentColumn _percentPaymentColumn;
|
||||||
base.Values = new double[count];
|
|
||||||
|
|
||||||
base.Dates = new DateTime[dateTempColumn.Values.Length];
|
public SumColumn(int count, DateTempColumn dateTempColumn
|
||||||
for (var i = 0; i < dateTempColumn.Values.Length; i++)
|
, PreparedValues preparedValues
|
||||||
{
|
, PercentPaymentColumn percentPaymentColumn) : base(count, dateTempColumn)
|
||||||
base.Dates[i] = dateTempColumn.Values[i];
|
{
|
||||||
}
|
this._preparedValues = preparedValues;
|
||||||
|
this._percentPaymentColumn = percentPaymentColumn;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, PercentPaymentColumn percentPaymentColumn)
|
public void ComputeValues()
|
||||||
{
|
{
|
||||||
Values[0] = -preparedValues.BaseCost;
|
Values[0] = -this._preparedValues.BaseCost;
|
||||||
Values[1] = preparedValues.FirstPaymentSum;
|
Values[1] = this._preparedValues.FirstPaymentSum;
|
||||||
Values[2] = 98647.7277641429;
|
|
||||||
|
|
||||||
for (var i = 3; i < Values.Length - 1; i++)
|
for (var i = 3; i < Values.Length - 1; i++)
|
||||||
{
|
{
|
||||||
Values[i] = Values[2] * percentPaymentColumn.Values[i] / 100;
|
Values[i] = Values[2] * _percentPaymentColumn.Values[i] / 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
Values[^1] = preparedValues.LastPaymentSum;
|
Values[^1] = _preparedValues.LastPaymentSum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public decimal Calculate(decimal inputVariable)
|
||||||
|
{
|
||||||
|
Values[2] = Convert.ToDouble(inputVariable);
|
||||||
|
this.ComputeValues();
|
||||||
|
var XIRR = new XIRR(Flows);
|
||||||
|
IRR = XIRR.GetResult();
|
||||||
|
|
||||||
|
return Convert.ToDecimal(IRR);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(decimal requiredIRR)
|
||||||
|
{
|
||||||
|
var goalSeek = new GoalSeek(this);
|
||||||
|
goalSeek.SeekResult(requiredIRR,
|
||||||
|
new GoalSeekOptions(initialTineSpacing: 10000));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
26
EvoCalculator.Core.Calculation/Columns/SumWithVATColumn.cs
Normal file
26
EvoCalculator.Core.Calculation/Columns/SumWithVATColumn.cs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.Columns
|
||||||
|
{
|
||||||
|
public class SumWithVATColumn : BaseColumn<double>
|
||||||
|
{
|
||||||
|
public SumWithVATColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(Constants.Calculation constants, SumColumn sumColumn, PreparedValues preparedValues)
|
||||||
|
{
|
||||||
|
Values[0] = 0;
|
||||||
|
Values[1] = preparedValues.FirstPaymentWithNdsAbs > 0
|
||||||
|
? preparedValues.FirstPaymentWithNdsAbs
|
||||||
|
: (1 + constants.VatValue) * sumColumn.Values[1];
|
||||||
|
for (var i = 2; i < Values.Length; i++)
|
||||||
|
{
|
||||||
|
Values[i] = (1 + constants.VatValue) * sumColumn.Values[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
Values[0] = Values.Sum();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
29
EvoCalculator.Core.Calculation/Columns/TLM_GrColumn.cs
Normal file
29
EvoCalculator.Core.Calculation/Columns/TLM_GrColumn.cs
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
using EvoCalculator.Core.FinanceFormulas;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.Columns
|
||||||
|
{
|
||||||
|
public class TLM_GrColumn : BaseColumnWithXIRR
|
||||||
|
{
|
||||||
|
public TLM_GrColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedPayments preparedPayments, PreparedValues preparedValues)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < Values.Length; i++)
|
||||||
|
{
|
||||||
|
Values[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 1; i < Values.Length; i++)
|
||||||
|
{
|
||||||
|
Values[i] = preparedPayments.Rows[i - 1].TlmCostPayment;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var XNPV = new XNPV(base.Flows, preparedValues.IrrExpected);
|
||||||
|
Values[0] = -XNPV.GetResult();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
26
EvoCalculator.Core.Calculation/Columns/VATColumn.cs
Normal file
26
EvoCalculator.Core.Calculation/Columns/VATColumn.cs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.Columns
|
||||||
|
{
|
||||||
|
public class VATColumn : BaseColumn<double>
|
||||||
|
{
|
||||||
|
public VATColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(Constants.Calculation constants, SumColumn sumColumn, PreparedValues preparedValues)
|
||||||
|
{
|
||||||
|
Values[0] = 0;
|
||||||
|
Values[1] = preparedValues.FirstPaymentNdsAbs > 0
|
||||||
|
? preparedValues.FirstPaymentNdsAbs
|
||||||
|
: constants.VatValue * sumColumn.Values[1];
|
||||||
|
for (var i = 2; i < Values.Length; i++)
|
||||||
|
{
|
||||||
|
Values[i] = constants.VatValue * sumColumn.Values[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
Values[0] = Values.Sum();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
295
EvoCalculator.Core.FinanceFormulas/Bisection.cs
Normal file
295
EvoCalculator.Core.FinanceFormulas/Bisection.cs
Normal file
@ -0,0 +1,295 @@
|
|||||||
|
// using System;
|
||||||
|
// using System.Linq;
|
||||||
|
// using Money = System.Decimal;
|
||||||
|
// using Rate = System.Double;
|
||||||
|
// using System.Collections.Generic;
|
||||||
|
//
|
||||||
|
// public
|
||||||
|
// struct Pair<T, Z>
|
||||||
|
// {
|
||||||
|
// public Pair(T first, Z second)
|
||||||
|
// {
|
||||||
|
// First = first;
|
||||||
|
// Second = second;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public readonly T First;
|
||||||
|
//
|
||||||
|
// public readonly Z Second;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// public class CashFlow
|
||||||
|
// {
|
||||||
|
// public CashFlow(Money amount, DateTime date)
|
||||||
|
// {
|
||||||
|
// Amount = amount;
|
||||||
|
// Date = date;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public readonly Money Amount;
|
||||||
|
// public readonly DateTime Date;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public struct AlgorithmResult<TKindOfResult, TValue>
|
||||||
|
// {
|
||||||
|
// public AlgorithmResult(TKindOfResult kind, TValue value)
|
||||||
|
// {
|
||||||
|
// Kind = kind;
|
||||||
|
// Value = value;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public readonly TKindOfResult Kind;
|
||||||
|
// public readonly TValue Value;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public enum ApproximateResultKind
|
||||||
|
// {
|
||||||
|
// ApproximateSolution,
|
||||||
|
// ExactSolution,
|
||||||
|
// NoSolutionWithinTolerance
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public static class Algorithms
|
||||||
|
// {
|
||||||
|
// internal static Money CalculateXNPV(IEnumerable<CashFlow> cfs, Rate r)
|
||||||
|
// {
|
||||||
|
// if (r <= -1)
|
||||||
|
// r = -0.99999999; // Very funky ... Better check what an IRR <= -100% means
|
||||||
|
//
|
||||||
|
// return (from cf in cfs
|
||||||
|
// let startDate = cfs.OrderBy(cf1 => cf1.Date).First().Date
|
||||||
|
// select cf.Amount / (decimal) Math.Pow(1 + r, (cf.Date - startDate).Days / 365.0)).Sum();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// internal static Pair<Rate, Rate> FindBrackets(Func<IEnumerable<CashFlow>, Rate, Money> func,
|
||||||
|
// IEnumerable<CashFlow> cfs)
|
||||||
|
// {
|
||||||
|
// // Abracadabra magic numbers ...
|
||||||
|
// const int maxIter = 100;
|
||||||
|
// const Rate bracketStep = 0.5;
|
||||||
|
// const Rate guess = 0.1;
|
||||||
|
//
|
||||||
|
// Rate leftBracket = guess - bracketStep;
|
||||||
|
// Rate rightBracket = guess + bracketStep;
|
||||||
|
// var iter = 0;
|
||||||
|
//
|
||||||
|
// while (func(cfs, leftBracket) * func(cfs, rightBracket) > 0 && iter++ < maxIter)
|
||||||
|
// {
|
||||||
|
// leftBracket -= bracketStep;
|
||||||
|
// rightBracket += bracketStep;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (iter >= maxIter)
|
||||||
|
// return new Pair<double, double>(0, 0);
|
||||||
|
//
|
||||||
|
// return new Pair<Rate, Rate>(leftBracket, rightBracket);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // From "Applied Numerical Analyis" by Gerald
|
||||||
|
// internal static AlgorithmResult<ApproximateResultKind, Rate> Bisection(Func<Rate, Money> func,
|
||||||
|
// Pair<Rate, Rate> brackets, Rate tol, int maxIters)
|
||||||
|
// {
|
||||||
|
// int iter = 1;
|
||||||
|
//
|
||||||
|
// Money f3 = 0;
|
||||||
|
// Rate x3 = 0;
|
||||||
|
// Rate x1 = brackets.First;
|
||||||
|
// Rate x2 = brackets.Second;
|
||||||
|
//
|
||||||
|
// do
|
||||||
|
// {
|
||||||
|
// var f1 = func(x1);
|
||||||
|
// var f2 = func(x2);
|
||||||
|
//
|
||||||
|
// if (f1 == 0 && f2 == 0)
|
||||||
|
// return new AlgorithmResult<ApproximateResultKind, Rate>(ApproximateResultKind.NoSolutionWithinTolerance,
|
||||||
|
// x1);
|
||||||
|
//
|
||||||
|
// if (f1 * f2 > 0)
|
||||||
|
// throw new ArgumentException("x1 x2 values don't bracket a root");
|
||||||
|
//
|
||||||
|
// x3 = (x1 + x2) / 2;
|
||||||
|
// f3 = func(x3);
|
||||||
|
//
|
||||||
|
// if (f3 * f1 < 0)
|
||||||
|
// x2 = x3;
|
||||||
|
// else
|
||||||
|
// x1 = x3;
|
||||||
|
//
|
||||||
|
// iter++;
|
||||||
|
// } while (Math.Abs(x1 - x2) / 2 > tol && f3 != 0 && iter < maxIters);
|
||||||
|
//
|
||||||
|
// if (f3 == 0)
|
||||||
|
// return new AlgorithmResult<ApproximateResultKind, Rate>(ApproximateResultKind.ExactSolution, x3);
|
||||||
|
//
|
||||||
|
// if (Math.Abs(x1 - x2) / 2 < tol)
|
||||||
|
// return new AlgorithmResult<ApproximateResultKind, Rate>(ApproximateResultKind.ApproximateSolution, x3);
|
||||||
|
//
|
||||||
|
// if (iter > maxIters)
|
||||||
|
// return new AlgorithmResult<ApproximateResultKind, Rate>(ApproximateResultKind.NoSolutionWithinTolerance,
|
||||||
|
// x3);
|
||||||
|
//
|
||||||
|
// throw new Exception("It should never get here");
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public static AlgorithmResult<ApproximateResultKind, Rate> CalculateXIRR(IEnumerable<CashFlow> cfs, Rate tolerance,
|
||||||
|
// int maxIters)
|
||||||
|
// {
|
||||||
|
// var brackets = FindBrackets(CalculateXNPV, cfs);
|
||||||
|
//
|
||||||
|
// if (brackets.First == brackets.Second)
|
||||||
|
// return new AlgorithmResult<ApproximateResultKind, double>(ApproximateResultKind.NoSolutionWithinTolerance,
|
||||||
|
// brackets.First);
|
||||||
|
//
|
||||||
|
// return Bisection(r => CalculateXNPV(cfs, r), brackets, tolerance, maxIters);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // TESTS
|
||||||
|
// using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
// using System.Collections.Generic;
|
||||||
|
// using System;
|
||||||
|
// using Rate = System.Double;
|
||||||
|
//
|
||||||
|
// namespace TimeLineTest
|
||||||
|
// {
|
||||||
|
// [TestClass()]
|
||||||
|
// public class AlgorithmsTest
|
||||||
|
// {
|
||||||
|
// IEnumerable<CashFlow> cfs = new CashFlow[]
|
||||||
|
// {
|
||||||
|
// new CashFlow(-10000, new DateTime(2008, 1, 1)),
|
||||||
|
// new CashFlow(2750, new DateTime(2008, 3, 1)),
|
||||||
|
// new CashFlow(4250, new DateTime(2008, 10, 30)),
|
||||||
|
// new CashFlow(3250, new DateTime(2009, 2, 15)),
|
||||||
|
// new CashFlow(2750, new DateTime(2009, 4, 1))
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// IEnumerable<CashFlow> bigcfs = new CashFlow[]
|
||||||
|
// {
|
||||||
|
// new CashFlow(-10, new DateTime(2000, 1, 1)),
|
||||||
|
// new CashFlow(10, new DateTime(2002, 1, 2)),
|
||||||
|
// new CashFlow(20, new DateTime(2003, 1, 3))
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// IEnumerable<CashFlow> negcfs = new CashFlow[]
|
||||||
|
// {
|
||||||
|
// new CashFlow(-10, new DateTime(2000, 1, 1)),
|
||||||
|
// new CashFlow(-1, new DateTime(2002, 1, 2)),
|
||||||
|
// new CashFlow(1, new DateTime(2003, 1, 3))
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// IEnumerable<CashFlow> samedaysamecfs = new CashFlow[]
|
||||||
|
// {
|
||||||
|
// new CashFlow(-10, new DateTime(2000, 1, 1)),
|
||||||
|
// new CashFlow(10, new DateTime(2000, 1, 1)),
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// IEnumerable<CashFlow> samedaydifferentcfs = new CashFlow[]
|
||||||
|
// {
|
||||||
|
// new CashFlow(-10, new DateTime(2000, 1, 1)),
|
||||||
|
// new CashFlow(100, new DateTime(2000, 1, 1)),
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// IEnumerable<CashFlow> bigratecfs = new CashFlow[]
|
||||||
|
// {
|
||||||
|
// new CashFlow(-10, new DateTime(2000, 1, 1)),
|
||||||
|
// new CashFlow(20, new DateTime(2000, 5, 30)),
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// IEnumerable<CashFlow> zeroRate = new CashFlow[]
|
||||||
|
// {
|
||||||
|
// new CashFlow(-10, new DateTime(2000, 1, 1)),
|
||||||
|
// new CashFlow(10, new DateTime(2003, 1, 1)),
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// IEnumerable<CashFlow> doubleNegative = new CashFlow[]
|
||||||
|
// {
|
||||||
|
// new CashFlow(-10000, new DateTime(2008, 1, 1)),
|
||||||
|
// new CashFlow(2750, new DateTime(2008, 3, 1)),
|
||||||
|
// new CashFlow(-4250, new DateTime(2008, 10, 30)),
|
||||||
|
// new CashFlow(3250, new DateTime(2009, 2, 15)),
|
||||||
|
// new CashFlow(2750, new DateTime(2009, 4, 1))
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// IEnumerable<CashFlow> badDoubleNegative = new CashFlow[]
|
||||||
|
// {
|
||||||
|
// new CashFlow(-10000, new DateTime(2008, 1, 1)),
|
||||||
|
// new CashFlow(2750, new DateTime(2008, 3, 1)),
|
||||||
|
// new CashFlow(-4250, new DateTime(2008, 10, 30)),
|
||||||
|
// new CashFlow(3250, new DateTime(2009, 2, 15)),
|
||||||
|
// new CashFlow(-2750, new DateTime(2009, 4, 1))
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// double r = 0.09;
|
||||||
|
// double tolerance = 0.0001;
|
||||||
|
// int maxIters = 100;
|
||||||
|
//
|
||||||
|
// private TestContext testContextInstance;
|
||||||
|
//
|
||||||
|
// public TestContext TestContext
|
||||||
|
// {
|
||||||
|
// get { return testContextInstance; }
|
||||||
|
// set { testContextInstance = value; }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// [TestMethod()]
|
||||||
|
// public void CalculateXNPV()
|
||||||
|
// {
|
||||||
|
// Assert.AreEqual(2086.6476020315416570634272814M, Algorithms.CalculateXNPV(cfs, r));
|
||||||
|
// Assert.AreEqual(-10.148147600710372651326920258M, Algorithms.CalculateXNPV(negcfs, 0.5));
|
||||||
|
// Assert.AreEqual(4.9923725815954514810351876895M, Algorithms.CalculateXNPV(bigcfs, 0.3));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// [TestMethod]
|
||||||
|
// public void FindBrackets()
|
||||||
|
// {
|
||||||
|
// var brackets = Algorithms.FindBrackets(Algorithms.CalculateXNPV, cfs);
|
||||||
|
// Assert.IsTrue(brackets.First < 0.3733 && brackets.Second > 0.3733);
|
||||||
|
//
|
||||||
|
// brackets = Algorithms.FindBrackets(Algorithms.CalculateXNPV, bigcfs);
|
||||||
|
// Assert.IsTrue(brackets.First < 0.5196 && brackets.Second > 0.5196);
|
||||||
|
//
|
||||||
|
// brackets = Algorithms.FindBrackets(Algorithms.CalculateXNPV, negcfs);
|
||||||
|
// Assert.IsTrue(brackets.First < -0.6059 && brackets.Second > -0.6059);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// [TestMethod]
|
||||||
|
// public void XIRRTest()
|
||||||
|
// {
|
||||||
|
// var irr = Algorithms.CalculateXIRR(cfs, tolerance, maxIters);
|
||||||
|
// Assert.AreEqual(0.3733, irr.Value, 0.001);
|
||||||
|
// Assert.AreEqual(ApproximateResultKind.ApproximateSolution, irr.Kind);
|
||||||
|
//
|
||||||
|
// irr = Algorithms.CalculateXIRR(bigcfs, tolerance, maxIters);
|
||||||
|
// Assert.AreEqual(0.5196, irr.Value, 0.001);
|
||||||
|
// Assert.AreEqual(ApproximateResultKind.ApproximateSolution, irr.Kind);
|
||||||
|
//
|
||||||
|
// irr = Algorithms.CalculateXIRR(negcfs, tolerance, maxIters);
|
||||||
|
// Assert.AreEqual(-0.6059, irr.Value, 0.001);
|
||||||
|
// Assert.AreEqual(ApproximateResultKind.ApproximateSolution, irr.Kind);
|
||||||
|
//
|
||||||
|
// irr = Algorithms.CalculateXIRR(samedaysamecfs, tolerance, maxIters);
|
||||||
|
// Assert.AreEqual(ApproximateResultKind.NoSolutionWithinTolerance, irr.Kind);
|
||||||
|
//
|
||||||
|
// irr = Algorithms.CalculateXIRR(samedaydifferentcfs, tolerance, maxIters);
|
||||||
|
// Assert.AreEqual(ApproximateResultKind.NoSolutionWithinTolerance, irr.Kind);
|
||||||
|
//
|
||||||
|
// irr = Algorithms.CalculateXIRR(bigratecfs, tolerance, maxIters);
|
||||||
|
// Assert.AreEqual(4.40140, irr.Value, 0.001);
|
||||||
|
// Assert.AreEqual(ApproximateResultKind.ApproximateSolution, irr.Kind);
|
||||||
|
//
|
||||||
|
// irr = Algorithms.CalculateXIRR(zeroRate, tolerance, maxIters);
|
||||||
|
// Assert.AreEqual(0, irr.Value, 0.001);
|
||||||
|
// Assert.AreEqual(ApproximateResultKind.ApproximateSolution, irr.Kind);
|
||||||
|
//
|
||||||
|
// irr = Algorithms.CalculateXIRR(doubleNegative, tolerance, maxIters);
|
||||||
|
// Assert.AreEqual(-0.537055, irr.Value, 0.001);
|
||||||
|
// Assert.AreEqual(ApproximateResultKind.ApproximateSolution, irr.Kind);
|
||||||
|
//
|
||||||
|
// irr = Algorithms.CalculateXIRR(badDoubleNegative, tolerance, maxIters);
|
||||||
|
// Assert.AreEqual(ApproximateResultKind.NoSolutionWithinTolerance, irr.Kind);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
@ -9,4 +9,8 @@
|
|||||||
<ProjectReference Include="..\EvoCalculator.Core.Models\EvoCalculator.Core.Models.csproj" />
|
<ProjectReference Include="..\EvoCalculator.Core.Models\EvoCalculator.Core.Models.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="TridentGoalSeek" Version="1.0.5" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
23
EvoCalculator.Core.FinanceFormulas/GoalXIRR.cs
Normal file
23
EvoCalculator.Core.FinanceFormulas/GoalXIRR.cs
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
using TridentGoalSeek;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.FinanceFormulas
|
||||||
|
{
|
||||||
|
public class GoalXIRR : IGoalSeekAlgorithm
|
||||||
|
{
|
||||||
|
private readonly int x;
|
||||||
|
|
||||||
|
public GoalXIRR(int x)
|
||||||
|
{
|
||||||
|
this.x = x;
|
||||||
|
}
|
||||||
|
|
||||||
|
public decimal Calculate(decimal inputVariable)
|
||||||
|
{
|
||||||
|
// Value[2]+=10;
|
||||||
|
// ComputeValues
|
||||||
|
// XIRR
|
||||||
|
// return XIRR
|
||||||
|
return inputVariable * this.x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,12 +0,0 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Models.Calculation.Interfaces
|
|
||||||
{
|
|
||||||
public interface IColumn<T>
|
|
||||||
{
|
|
||||||
public T[] Values { get; set; }
|
|
||||||
// public void ComputeValues(PreparedValues preparedValues, PreparedPayments preparedPayments,
|
|
||||||
// Constants.Calculation constants,
|
|
||||||
// params IColumn<object>[] columns);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
using System;
|
|
||||||
using EvoCalculator.Core.Models.Calculation.Models;
|
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Models.Calculation.Interfaces
|
|
||||||
{
|
|
||||||
public interface IColumnWithXIRR<T> : IColumn<T>
|
|
||||||
{
|
|
||||||
public double IRR { get; set; }
|
|
||||||
public DateTime[] Dates { get; set; }
|
|
||||||
public void ComputeXIRR();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -4,15 +4,12 @@ using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
|||||||
using Xunit;
|
using Xunit;
|
||||||
using Xunit.Abstractions;
|
using Xunit.Abstractions;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||||
{
|
{
|
||||||
public class DateColumnTests
|
public class DateColumnTests
|
||||||
{
|
{
|
||||||
private readonly ITestOutputHelper output;
|
|
||||||
|
|
||||||
public DateColumnTests(ITestOutputHelper output)
|
public DateColumnTests(ITestOutputHelper output)
|
||||||
{
|
{
|
||||||
this.output = output;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -29,9 +26,9 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
|
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
|
||||||
dateColumn.ComputeValues(preparedValues, null, new Constants.Calculation(), null);
|
dateColumn.ComputeValues(preparedValues, new Constants.Calculation());
|
||||||
|
|
||||||
var expected = new DateTime[]
|
var expected = new[]
|
||||||
{
|
{
|
||||||
new DateTime(2018, 10, 28),
|
new DateTime(2018, 10, 28),
|
||||||
new DateTime(2018, 10, 28),
|
new DateTime(2018, 10, 28),
|
||||||
@ -83,9 +80,9 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
|
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
|
||||||
dateColumn.ComputeValues(preparedValues, null, new Constants.Calculation(), null);
|
dateColumn.ComputeValues(preparedValues, new Constants.Calculation());
|
||||||
|
|
||||||
var expected = new DateTime[]
|
var expected = new[]
|
||||||
{
|
{
|
||||||
new DateTime(2018, 10, 28),
|
new DateTime(2018, 10, 28),
|
||||||
new DateTime(2018, 10, 28),
|
new DateTime(2018, 10, 28),
|
||||||
@ -137,9 +134,9 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
|
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
|
||||||
dateColumn.ComputeValues(preparedValues, null, new Constants.Calculation(), null);
|
dateColumn.ComputeValues(preparedValues, new Constants.Calculation());
|
||||||
|
|
||||||
var expected = new DateTime[]
|
var expected = new[]
|
||||||
{
|
{
|
||||||
new DateTime(2018, 10, 28),
|
new DateTime(2018, 10, 28),
|
||||||
new DateTime(2018, 10, 28),
|
new DateTime(2018, 10, 28),
|
||||||
@ -191,9 +188,9 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
|
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
|
||||||
dateColumn.ComputeValues(preparedValues, null, new Constants.Calculation(), null);
|
dateColumn.ComputeValues(preparedValues, new Constants.Calculation());
|
||||||
|
|
||||||
var expected = new DateTime[]
|
var expected = new[]
|
||||||
{
|
{
|
||||||
new DateTime(2018, 10, 31),
|
new DateTime(2018, 10, 31),
|
||||||
new DateTime(2018, 10, 31),
|
new DateTime(2018, 10, 31),
|
||||||
@ -3,7 +3,7 @@ using EvoCalculator.Core.Calculation.Columns;
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||||
{
|
{
|
||||||
public class DateTempTests
|
public class DateTempTests
|
||||||
{
|
{
|
||||||
@ -17,12 +17,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
PaymentDateNew = null,
|
PaymentDateNew = null,
|
||||||
};
|
};
|
||||||
|
|
||||||
var dateTempColumn = new DateTempColumn();
|
var dateTempColumn = new DateTempColumn(67);
|
||||||
dateTempColumn.ComputeValues(
|
dateTempColumn.ComputeValues(preparedValues);
|
||||||
preparedValues
|
|
||||||
, null
|
|
||||||
, new Constants.Calculation()
|
|
||||||
, null);
|
|
||||||
|
|
||||||
var expected = new DateTime[]
|
var expected = new DateTime[]
|
||||||
{
|
{
|
||||||
@ -109,12 +105,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
PaymentDateNew = new DateTime(2018, 12, 11),
|
PaymentDateNew = new DateTime(2018, 12, 11),
|
||||||
};
|
};
|
||||||
|
|
||||||
var dateTempColumn = new DateTempColumn();
|
var dateTempColumn = new DateTempColumn(67);
|
||||||
dateTempColumn.ComputeValues(
|
dateTempColumn.ComputeValues(preparedValues);
|
||||||
preparedValues
|
|
||||||
, null
|
|
||||||
, new Constants.Calculation()
|
|
||||||
, null);
|
|
||||||
|
|
||||||
var expected = new DateTime[]
|
var expected = new DateTime[]
|
||||||
{
|
{
|
||||||
263
EvoCalculator.Core.Tests/Calculation/Columns/GPS_GrTests.cs
Normal file
263
EvoCalculator.Core.Tests/Calculation/Columns/GPS_GrTests.cs
Normal file
@ -0,0 +1,263 @@
|
|||||||
|
using System;
|
||||||
|
using EvoCalculator.Core.Calculation.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||||
|
{
|
||||||
|
public class GPS_GrTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void GPS_GrTest1()
|
||||||
|
{
|
||||||
|
var preparedValues =
|
||||||
|
new PreparedValues()
|
||||||
|
{
|
||||||
|
IrrExpected = 0.22,
|
||||||
|
};
|
||||||
|
|
||||||
|
var dateTempColumn = new DateTempColumn(67)
|
||||||
|
{
|
||||||
|
Values = new[]
|
||||||
|
{
|
||||||
|
new DateTime(2020, 10, 12),
|
||||||
|
new DateTime(2020, 10, 12),
|
||||||
|
new DateTime(2020, 11, 12),
|
||||||
|
new DateTime(2020, 12, 12),
|
||||||
|
new DateTime(2021, 1, 12),
|
||||||
|
new DateTime(2021, 2, 12),
|
||||||
|
new DateTime(2021, 3, 12),
|
||||||
|
new DateTime(2021, 4, 12),
|
||||||
|
new DateTime(2021, 5, 12),
|
||||||
|
new DateTime(2021, 6, 12),
|
||||||
|
new DateTime(2021, 7, 12),
|
||||||
|
new DateTime(2021, 8, 12),
|
||||||
|
new DateTime(2021, 9, 12),
|
||||||
|
new DateTime(2021, 10, 12),
|
||||||
|
new DateTime(2021, 11, 12),
|
||||||
|
new DateTime(2021, 12, 12),
|
||||||
|
new DateTime(2022, 1, 12),
|
||||||
|
new DateTime(2022, 2, 12),
|
||||||
|
new DateTime(2022, 3, 12),
|
||||||
|
new DateTime(2022, 4, 12),
|
||||||
|
new DateTime(2022, 5, 12),
|
||||||
|
new DateTime(2022, 6, 12),
|
||||||
|
new DateTime(2022, 7, 12),
|
||||||
|
new DateTime(2022, 8, 12),
|
||||||
|
new DateTime(2022, 9, 12),
|
||||||
|
new DateTime(2022, 10, 12),
|
||||||
|
new DateTime(2022, 11, 12),
|
||||||
|
new DateTime(2022, 12, 12),
|
||||||
|
new DateTime(2023, 1, 12),
|
||||||
|
new DateTime(2023, 2, 12),
|
||||||
|
new DateTime(2023, 3, 12),
|
||||||
|
new DateTime(2023, 4, 12),
|
||||||
|
new DateTime(2023, 5, 12),
|
||||||
|
new DateTime(2023, 6, 12),
|
||||||
|
new DateTime(2023, 7, 12),
|
||||||
|
new DateTime(2023, 8, 12),
|
||||||
|
new DateTime(2023, 9, 12),
|
||||||
|
new DateTime(2023, 10, 12),
|
||||||
|
new DateTime(2023, 11, 12),
|
||||||
|
new DateTime(2023, 12, 12),
|
||||||
|
new DateTime(2024, 1, 12),
|
||||||
|
new DateTime(2024, 2, 12),
|
||||||
|
new DateTime(2024, 3, 12),
|
||||||
|
new DateTime(2024, 4, 12),
|
||||||
|
new DateTime(2024, 5, 12),
|
||||||
|
new DateTime(2024, 6, 12),
|
||||||
|
new DateTime(2024, 7, 12),
|
||||||
|
new DateTime(2024, 8, 12),
|
||||||
|
new DateTime(2024, 9, 12),
|
||||||
|
new DateTime(2024, 10, 12),
|
||||||
|
new DateTime(2024, 11, 12),
|
||||||
|
new DateTime(2024, 12, 12),
|
||||||
|
new DateTime(2025, 1, 12),
|
||||||
|
new DateTime(2025, 2, 12),
|
||||||
|
new DateTime(2025, 3, 12),
|
||||||
|
new DateTime(2025, 4, 12),
|
||||||
|
new DateTime(2025, 5, 12),
|
||||||
|
new DateTime(2025, 6, 12),
|
||||||
|
new DateTime(2025, 7, 12),
|
||||||
|
new DateTime(2025, 8, 12),
|
||||||
|
new DateTime(2025, 9, 12),
|
||||||
|
new DateTime(2025, 10, 12),
|
||||||
|
new DateTime(2025, 11, 12),
|
||||||
|
new DateTime(2025, 12, 12),
|
||||||
|
new DateTime(2026, 1, 12),
|
||||||
|
new DateTime(2026, 2, 12),
|
||||||
|
new DateTime(2026, 3, 12),
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var preparedPayments = new PreparedPayments()
|
||||||
|
{
|
||||||
|
Rows = new[]
|
||||||
|
{
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 800.00,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var gpsGrColumn = new GPS_GrColumn(preparedPayments.Rows.Length + 1, dateTempColumn);
|
||||||
|
gpsGrColumn.ComputeValues(preparedPayments, preparedValues);
|
||||||
|
|
||||||
|
var expected = new[]
|
||||||
|
{
|
||||||
|
-19068.29452640964,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
800.00,
|
||||||
|
};
|
||||||
|
|
||||||
|
var res = gpsGrColumn.Values;
|
||||||
|
Assert.Equal(expected, res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -3,7 +3,7 @@ using EvoCalculator.Core.Calculation.Columns;
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||||
{
|
{
|
||||||
public class KaskoNmperGrTests
|
public class KaskoNmperGrTests
|
||||||
{
|
{
|
||||||
@ -20,7 +20,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var dateTempColumn = new DateTempColumn()
|
var dateTempColumn = new DateTempColumn(67)
|
||||||
{
|
{
|
||||||
Values = new[]
|
Values = new[]
|
||||||
{
|
{
|
||||||
@ -95,8 +95,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var kaskoNmperGrColumn = new KaskoNmperGrColumn(preparedValues.Nmper + 1);
|
var kaskoNmperGrColumn = new KaskoNmperGrColumn(preparedValues.Nmper + 1, dateTempColumn);
|
||||||
kaskoNmperGrColumn.ComputeValues(preparedValues, dateTempColumn);
|
kaskoNmperGrColumn.ComputeValues(preparedValues);
|
||||||
|
|
||||||
|
|
||||||
var expected = new[]
|
var expected = new[]
|
||||||
@ -151,7 +151,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var dateTempColumn = new DateTempColumn()
|
var dateTempColumn = new DateTempColumn(67)
|
||||||
{
|
{
|
||||||
Values = new[]
|
Values = new[]
|
||||||
{
|
{
|
||||||
@ -226,8 +226,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var kaskoNmperGrColumn = new KaskoNmperGrColumn(preparedValues.Nmper + 1);
|
var kaskoNmperGrColumn = new KaskoNmperGrColumn(preparedValues.Nmper + 1, dateTempColumn);
|
||||||
kaskoNmperGrColumn.ComputeValues(preparedValues, dateTempColumn);
|
kaskoNmperGrColumn.ComputeValues(preparedValues);
|
||||||
|
|
||||||
|
|
||||||
var expected = new[]
|
var expected = new[]
|
||||||
@ -268,7 +268,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var dateTempColumn = new DateTempColumn()
|
var dateTempColumn = new DateTempColumn(67)
|
||||||
{
|
{
|
||||||
Values = new[]
|
Values = new[]
|
||||||
{
|
{
|
||||||
@ -343,8 +343,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var kaskoNmperGrColumn = new KaskoNmperGrColumn(preparedValues.Nmper + 1);
|
var kaskoNmperGrColumn = new KaskoNmperGrColumn(preparedValues.Nmper + 1, dateTempColumn);
|
||||||
kaskoNmperGrColumn.ComputeValues(preparedValues, dateTempColumn);
|
kaskoNmperGrColumn.ComputeValues(preparedValues);
|
||||||
|
|
||||||
|
|
||||||
var expected = new[]
|
var expected = new[]
|
||||||
@ -1,9 +1,8 @@
|
|||||||
using System;
|
using EvoCalculator.Core.Calculation.Columns;
|
||||||
using EvoCalculator.Core.Calculation.Columns;
|
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||||
{
|
{
|
||||||
public class PercentPaymentTests
|
public class PercentPaymentTests
|
||||||
{
|
{
|
||||||
@ -114,11 +113,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
var percentPaymentColumn = new PercentPaymentColumn(preparedPayments.Rows.Length + 1);
|
var percentPaymentColumn = new PercentPaymentColumn(preparedPayments.Rows.Length + 1);
|
||||||
percentPaymentColumn.ComputeValues(
|
percentPaymentColumn.ComputeValues(preparedPayments);
|
||||||
null
|
|
||||||
, preparedPayments
|
|
||||||
, new Constants.Calculation()
|
|
||||||
, null);
|
|
||||||
|
|
||||||
var expected = new double[]
|
var expected = new double[]
|
||||||
{
|
{
|
||||||
@ -308,11 +303,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
var percentPaymentColumn = new PercentPaymentColumn(preparedPayments.Rows.Length + 1);
|
var percentPaymentColumn = new PercentPaymentColumn(preparedPayments.Rows.Length + 1);
|
||||||
percentPaymentColumn.ComputeValues(
|
percentPaymentColumn.ComputeValues(preparedPayments);
|
||||||
null
|
|
||||||
, preparedPayments
|
|
||||||
, new Constants.Calculation()
|
|
||||||
, null);
|
|
||||||
|
|
||||||
var expected = new double[]
|
var expected = new double[]
|
||||||
{
|
{
|
||||||
@ -3,9 +3,9 @@ using EvoCalculator.Core.Calculation.Columns;
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||||
{
|
{
|
||||||
public class SumColumnTest
|
public class SumColumnTests
|
||||||
{
|
{
|
||||||
[Fact]
|
[Fact]
|
||||||
public void SumColumnTest1()
|
public void SumColumnTest1()
|
||||||
@ -16,7 +16,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
BaseCost = 2842960.70661055,
|
BaseCost = 2842960.70661055,
|
||||||
FirstPaymentSum = 636000,
|
FirstPaymentSum = 636000,
|
||||||
Nmper = 30,
|
Nmper = 30,
|
||||||
LastPaymentSum = 25440
|
LastPaymentSum = 25440,
|
||||||
|
IrrExpected = 0.22
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -58,7 +59,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var dateTempColumn = new DateTempColumn()
|
var dateTempColumn = new DateTempColumn(67)
|
||||||
{
|
{
|
||||||
Values = new[]
|
Values = new[]
|
||||||
{
|
{
|
||||||
@ -132,9 +133,6 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn);
|
|
||||||
sumColumn.ComputeValues(preparedValues, percentPaymentColumn);
|
|
||||||
|
|
||||||
|
|
||||||
var expected = new[]
|
var expected = new[]
|
||||||
{
|
{
|
||||||
@ -171,12 +169,14 @@ namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
|
|||||||
25440,
|
25440,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var sumColumn = new SumColumn(
|
||||||
|
preparedValues.Nmper + 1
|
||||||
|
, dateTempColumn
|
||||||
|
, preparedValues
|
||||||
|
, percentPaymentColumn);
|
||||||
|
sumColumn.ComputeValues(Convert.ToDecimal(preparedValues.IrrExpected));
|
||||||
var values = sumColumn.Values;
|
var values = sumColumn.Values;
|
||||||
Assert.Equal(expected, values);
|
Assert.Equal(expected, values);
|
||||||
|
|
||||||
|
|
||||||
sumColumn.ComputeXIRR();
|
|
||||||
Assert.InRange(sumColumn.IRR, 0.220325, 0.220327);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
101
EvoCalculator.Core.Tests/Calculation/Columns/SumWithVatTests.cs
Normal file
101
EvoCalculator.Core.Tests/Calculation/Columns/SumWithVatTests.cs
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
using EvoCalculator.Core.Calculation.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||||
|
{
|
||||||
|
public class SumWithVatTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void SumWithVatTest1()
|
||||||
|
{
|
||||||
|
var preparedValues = new PreparedValues
|
||||||
|
{
|
||||||
|
FirstPaymentWithNdsAbs = 50000,
|
||||||
|
Nmper = 30,
|
||||||
|
};
|
||||||
|
|
||||||
|
var dateTempColumn = new DateTempColumn(67);
|
||||||
|
|
||||||
|
var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn, null, null)
|
||||||
|
{
|
||||||
|
Values = new[]
|
||||||
|
{
|
||||||
|
-2542903.66268442,
|
||||||
|
625000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
25000.00
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var sumWithVatColumn = new SumWithVATColumn(preparedValues.Nmper + 1);
|
||||||
|
sumWithVatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues);
|
||||||
|
|
||||||
|
var expected = new[]
|
||||||
|
{
|
||||||
|
4112000.00,
|
||||||
|
50000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
144000.00,
|
||||||
|
30000.00,
|
||||||
|
};
|
||||||
|
|
||||||
|
var res = sumWithVatColumn.Values;
|
||||||
|
Assert.Equal(expected, res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
263
EvoCalculator.Core.Tests/Calculation/Columns/TLM_GrTests.cs
Normal file
263
EvoCalculator.Core.Tests/Calculation/Columns/TLM_GrTests.cs
Normal file
@ -0,0 +1,263 @@
|
|||||||
|
using System;
|
||||||
|
using EvoCalculator.Core.Calculation.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||||
|
{
|
||||||
|
public class TLM_GrTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void TLM_GrTest1()
|
||||||
|
{
|
||||||
|
var preparedValues =
|
||||||
|
new PreparedValues()
|
||||||
|
{
|
||||||
|
IrrExpected = 0.22,
|
||||||
|
};
|
||||||
|
|
||||||
|
var dateTempColumn = new DateTempColumn(67)
|
||||||
|
{
|
||||||
|
Values = new[]
|
||||||
|
{
|
||||||
|
new DateTime(2020, 10, 12),
|
||||||
|
new DateTime(2020, 10, 12),
|
||||||
|
new DateTime(2020, 11, 12),
|
||||||
|
new DateTime(2020, 12, 12),
|
||||||
|
new DateTime(2021, 1, 12),
|
||||||
|
new DateTime(2021, 2, 12),
|
||||||
|
new DateTime(2021, 3, 12),
|
||||||
|
new DateTime(2021, 4, 12),
|
||||||
|
new DateTime(2021, 5, 12),
|
||||||
|
new DateTime(2021, 6, 12),
|
||||||
|
new DateTime(2021, 7, 12),
|
||||||
|
new DateTime(2021, 8, 12),
|
||||||
|
new DateTime(2021, 9, 12),
|
||||||
|
new DateTime(2021, 10, 12),
|
||||||
|
new DateTime(2021, 11, 12),
|
||||||
|
new DateTime(2021, 12, 12),
|
||||||
|
new DateTime(2022, 1, 12),
|
||||||
|
new DateTime(2022, 2, 12),
|
||||||
|
new DateTime(2022, 3, 12),
|
||||||
|
new DateTime(2022, 4, 12),
|
||||||
|
new DateTime(2022, 5, 12),
|
||||||
|
new DateTime(2022, 6, 12),
|
||||||
|
new DateTime(2022, 7, 12),
|
||||||
|
new DateTime(2022, 8, 12),
|
||||||
|
new DateTime(2022, 9, 12),
|
||||||
|
new DateTime(2022, 10, 12),
|
||||||
|
new DateTime(2022, 11, 12),
|
||||||
|
new DateTime(2022, 12, 12),
|
||||||
|
new DateTime(2023, 1, 12),
|
||||||
|
new DateTime(2023, 2, 12),
|
||||||
|
new DateTime(2023, 3, 12),
|
||||||
|
new DateTime(2023, 4, 12),
|
||||||
|
new DateTime(2023, 5, 12),
|
||||||
|
new DateTime(2023, 6, 12),
|
||||||
|
new DateTime(2023, 7, 12),
|
||||||
|
new DateTime(2023, 8, 12),
|
||||||
|
new DateTime(2023, 9, 12),
|
||||||
|
new DateTime(2023, 10, 12),
|
||||||
|
new DateTime(2023, 11, 12),
|
||||||
|
new DateTime(2023, 12, 12),
|
||||||
|
new DateTime(2024, 1, 12),
|
||||||
|
new DateTime(2024, 2, 12),
|
||||||
|
new DateTime(2024, 3, 12),
|
||||||
|
new DateTime(2024, 4, 12),
|
||||||
|
new DateTime(2024, 5, 12),
|
||||||
|
new DateTime(2024, 6, 12),
|
||||||
|
new DateTime(2024, 7, 12),
|
||||||
|
new DateTime(2024, 8, 12),
|
||||||
|
new DateTime(2024, 9, 12),
|
||||||
|
new DateTime(2024, 10, 12),
|
||||||
|
new DateTime(2024, 11, 12),
|
||||||
|
new DateTime(2024, 12, 12),
|
||||||
|
new DateTime(2025, 1, 12),
|
||||||
|
new DateTime(2025, 2, 12),
|
||||||
|
new DateTime(2025, 3, 12),
|
||||||
|
new DateTime(2025, 4, 12),
|
||||||
|
new DateTime(2025, 5, 12),
|
||||||
|
new DateTime(2025, 6, 12),
|
||||||
|
new DateTime(2025, 7, 12),
|
||||||
|
new DateTime(2025, 8, 12),
|
||||||
|
new DateTime(2025, 9, 12),
|
||||||
|
new DateTime(2025, 10, 12),
|
||||||
|
new DateTime(2025, 11, 12),
|
||||||
|
new DateTime(2025, 12, 12),
|
||||||
|
new DateTime(2026, 1, 12),
|
||||||
|
new DateTime(2026, 2, 12),
|
||||||
|
new DateTime(2026, 3, 12),
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var preparedPayments = new PreparedPayments()
|
||||||
|
{
|
||||||
|
Rows = new[]
|
||||||
|
{
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
new PaymentRow
|
||||||
|
{
|
||||||
|
TlmCostPayment = 1000.00,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var tlmGrColumn = new TLM_GrColumn(preparedPayments.Rows.Length + 1, dateTempColumn);
|
||||||
|
tlmGrColumn.ComputeValues(preparedPayments, preparedValues);
|
||||||
|
|
||||||
|
var expected = new[]
|
||||||
|
{
|
||||||
|
-23835.36815801206,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
1000.00,
|
||||||
|
};
|
||||||
|
|
||||||
|
var res = tlmGrColumn.Values;
|
||||||
|
Assert.Equal(expected, res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
102
EvoCalculator.Core.Tests/Calculation/Columns/VATColumnTests.cs
Normal file
102
EvoCalculator.Core.Tests/Calculation/Columns/VATColumnTests.cs
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
using EvoCalculator.Core.Calculation.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||||
|
{
|
||||||
|
public class VATColumnTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void VATColumnTest1()
|
||||||
|
{
|
||||||
|
var preparedValues = new PreparedValues
|
||||||
|
{
|
||||||
|
FirstPaymentNdsAbs = 0,
|
||||||
|
Nmper = 30,
|
||||||
|
};
|
||||||
|
|
||||||
|
var dateTempColumn = new DateTempColumn(67);
|
||||||
|
|
||||||
|
var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn, null, null)
|
||||||
|
{
|
||||||
|
Values = new[]
|
||||||
|
{
|
||||||
|
-2542903.66268442,
|
||||||
|
625000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
120000.00,
|
||||||
|
25000.00
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var vatColumn = new VATColumn(preparedValues.Nmper + 1);
|
||||||
|
vatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues);
|
||||||
|
|
||||||
|
var expected = new[]
|
||||||
|
{
|
||||||
|
802000,
|
||||||
|
125000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
24000.00,
|
||||||
|
5000.00,
|
||||||
|
};
|
||||||
|
|
||||||
|
var res = vatColumn.Values;
|
||||||
|
|
||||||
|
Assert.Equal(expected, res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2,6 +2,7 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using EvoCalculator.Core.FinanceFormulas;
|
using EvoCalculator.Core.FinanceFormulas;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models;
|
using EvoCalculator.Core.Models.Calculation.Models;
|
||||||
|
using TridentGoalSeek;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
using Xunit.Abstractions;
|
using Xunit.Abstractions;
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user