XIRR Goal Seek | Happy Birthday to me
This commit is contained in:
parent
8c0a87cb3b
commit
affe9fdded
168
.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
generated
168
.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
generated
@ -14,35 +14,10 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="2c3b0650-5589-43d4-b4b7-2979612bb30f" name="Default Changelist" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumn.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/GPS_GrColumn.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumWithVATColumn.cs" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TLM_GrColumn.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/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/PercentPaymentColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/PercentPaymentColumn.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.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.FinanceFormulas/XIRR.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" 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" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumColumnTest.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumColumnTest.cs" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@ -53,22 +28,38 @@
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="HighlightingSettingsPerFile">
|
||||
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///Dummy.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/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/72/Double.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.FinanceFormulas/XIRR.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/E2E1F770-6781-48FC-97C9-82BA075D5898/89/f5bc57e5/Trident.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="mock:///Dummy.cs" root0="SKIP_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="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" root0="FORCE_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/72/Double.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/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://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.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="mock:///Dummy.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>
|
||||
@ -121,11 +112,11 @@
|
||||
<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.Calculation/Columns/BaseColumnWithXIRR.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumColumnTest.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@ -194,7 +185,7 @@
|
||||
<workItem from="1602754684591" duration="13639000" />
|
||||
<workItem from="1602850022326" duration="4617000" />
|
||||
<workItem from="1602854690202" duration="5777000" />
|
||||
<workItem from="1603096869934" duration="23413000" />
|
||||
<workItem from="1603096869934" duration="28356000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="rename: flow">
|
||||
<created>1602593830686</created>
|
||||
@ -242,90 +233,90 @@
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state x="1108" y="416" key="#com.intellij.ide.ui.customization.CustomizableActionsPanel.FindAvailableActionsDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603119675236" />
|
||||
<state width="897" height="464" key="DebuggerActiveHint" timestamp="1603128596492">
|
||||
<state width="897" height="464" key="DebuggerActiveHint" timestamp="1603130767865">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.0.bottom" timestamp="1603128549927">
|
||||
<state width="897" height="464" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603130767865" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.0.bottom" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.0.center" timestamp="1603128549927">
|
||||
<state width="2517" height="512" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.0.center" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.0.left" timestamp="1603128549927">
|
||||
<state width="2517" height="512" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.0.left" timestamp="1603133451273">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.0.right" timestamp="1603128549927">
|
||||
<state width="2517" height="512" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451273" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.0.right" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.1.bottom" timestamp="1603128549927">
|
||||
<state width="2517" height="512" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.1.bottom" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.1.center" timestamp="1603128549927">
|
||||
<state width="2517" height="512" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.1.center" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.1.left" timestamp="1603128549927">
|
||||
<state width="2517" height="512" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.1.left" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.1.right" timestamp="1603128549927">
|
||||
<state width="2517" height="512" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.1.right" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.2.bottom" timestamp="1603128549928">
|
||||
<state width="2517" height="512" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.2.bottom" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.2.center" timestamp="1603128549928">
|
||||
<state width="2517" height="512" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.2.center" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.2.left" timestamp="1603128549927">
|
||||
<state width="2517" height="512" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.2.left" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.2.right" timestamp="1603128549928">
|
||||
<state width="2517" height="512" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.2.right" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.3.bottom" timestamp="1603128549929">
|
||||
<state width="2517" height="512" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.3.bottom" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.3.center" timestamp="1603128549928">
|
||||
<state width="2517" height="512" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.3.center" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.3.left" timestamp="1603128549928">
|
||||
<state width="2517" height="512" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.3.left" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.3.right" timestamp="1603128549928">
|
||||
<state width="2517" height="512" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.3.right" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.4.bottom" timestamp="1603128549930">
|
||||
<state width="2517" height="512" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.4.bottom" timestamp="1603133451275">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.4.center" timestamp="1603128549929">
|
||||
<state width="2517" height="512" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451275" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.4.center" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="464" key="GridCell.Tab.4.left" timestamp="1603128549929">
|
||||
<state width="2517" height="512" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.4.left" timestamp="1603133451274">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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">
|
||||
<state width="2517" height="512" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451274" />
|
||||
<state width="2517" height="512" key="GridCell.Tab.4.right" timestamp="1603133451275">
|
||||
<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 width="2517" height="512" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603133451275" />
|
||||
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602854431119">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
@ -334,10 +325,10 @@
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state x="1108" y="385" key="RiderGenerateDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602853905402" />
|
||||
<state x="1078" y="410" key="RollbackChangesDialog" timestamp="1602761804757">
|
||||
<state x="1078" y="410" key="RollbackChangesDialog" timestamp="1603131092253">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state x="1078" y="410" key="RollbackChangesDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602761804757" />
|
||||
<state x="1078" y="410" key="RollbackChangesDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603131092253" />
|
||||
<state x="781" y="345" key="SettingsEditor" timestamp="1603119676785">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
@ -358,10 +349,10 @@
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<state x="898" y="0" width="1161" height="1387" key="dock-window-1/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602760039715" />
|
||||
<state x="930" y="299" width="730" height="801" key="find.popup" timestamp="1603107561928">
|
||||
<state x="930" y="299" width="730" height="801" key="find.popup" timestamp="1603129257494">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
<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="930" y="299" width="730" height="801" key="find.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603129257494" />
|
||||
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup" timestamp="1602850027763">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
@ -371,25 +362,34 @@
|
||||
<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">
|
||||
<url>file://$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumColumnTest.cs</url>
|
||||
<line>308</line>
|
||||
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Tests\Calculation\Columns\SumColumnTest.cs" initialLine="308">
|
||||
<startOffsets>
|
||||
<option value="1387" />
|
||||
<option value="11212" />
|
||||
</startOffsets>
|
||||
<endOffsets>
|
||||
<option value="1417" />
|
||||
<option value="11243" />
|
||||
</endOffsets>
|
||||
</properties>
|
||||
<option name="timeStamp" value="27" />
|
||||
<option name="timeStamp" value="36" />
|
||||
</line-breakpoint>
|
||||
</breakpoints>
|
||||
</breakpoint-manager>
|
||||
<pin-to-top-manager>
|
||||
<pinned-members>
|
||||
<PinnedItemInfo parentTag="Frame#EvoCalculator.Core.Tests.Calculation.Suite.Columns.TLM_GrTests.TLM_GrTest1" memberName="expected" />
|
||||
<PinnedItemInfo parentTag="Type#EvoCalculator.Core.Calculation.Columns.BaseColumn`1" memberName="Values" />
|
||||
<PinnedItemInfo parentTag="Frame#EvoCalculator.Core.Tests.Calculation.Suite.Columns.KaskoNmperGrTests.KaskoNmperGrTest2" memberName="preparedValues" />
|
||||
</pinned-members>
|
||||
</pin-to-top-manager>
|
||||
<watches-manager>
|
||||
<configuration name="RiderUnitTests">
|
||||
<watch expression="IRR" language="C#" />
|
||||
<watch expression="Convert.ToDecimal(IRR)" language="C#" />
|
||||
<watch expression="preparedValues.IrrExpected" language="C#" />
|
||||
<watch expression="Convert.ToDecimal(preparedValues.IrrExpected)" language="C#" />
|
||||
</configuration>
|
||||
</watches-manager>
|
||||
</component>
|
||||
</project>
|
||||
@ -7,7 +7,7 @@ namespace EvoCalculator.Core.Calculation.Columns
|
||||
public class BaseColumnWithXIRR : BaseColumn<double>
|
||||
{
|
||||
public double IRR { get; set; }
|
||||
private DateTime[] Dates { get; set; }
|
||||
protected DateTime[] Dates { get; set; }
|
||||
|
||||
|
||||
public BaseColumnWithXIRR(int count, DateTempColumn dateTempColumn) : base(count)
|
||||
|
||||
@ -19,14 +19,14 @@ namespace EvoCalculator.Core.Calculation.Columns
|
||||
this._percentPaymentColumn = percentPaymentColumn;
|
||||
}
|
||||
|
||||
public void ComputeValues()
|
||||
public void ComputeValues(double x)
|
||||
{
|
||||
Values[0] = -this._preparedValues.BaseCost;
|
||||
Values[1] = this._preparedValues.FirstPaymentSum;
|
||||
|
||||
for (var i = 3; i < Values.Length - 1; i++)
|
||||
for (var i = 2; i < Values.Length - 1; i++)
|
||||
{
|
||||
Values[i] = Values[2] * _percentPaymentColumn.Values[i] / 100;
|
||||
Values[i] = x * _percentPaymentColumn.Values[i] / 100;
|
||||
}
|
||||
|
||||
Values[^1] = _preparedValues.LastPaymentSum;
|
||||
@ -34,8 +34,8 @@ namespace EvoCalculator.Core.Calculation.Columns
|
||||
|
||||
public decimal Calculate(decimal inputVariable)
|
||||
{
|
||||
Values[2] = Convert.ToDouble(inputVariable);
|
||||
this.ComputeValues();
|
||||
var x = Convert.ToDouble(inputVariable);
|
||||
this.ComputeValues(x);
|
||||
var XIRR = new XIRR(Flows);
|
||||
IRR = XIRR.GetResult();
|
||||
|
||||
@ -46,7 +46,14 @@ namespace EvoCalculator.Core.Calculation.Columns
|
||||
{
|
||||
var goalSeek = new GoalSeek(this);
|
||||
goalSeek.SeekResult(requiredIRR,
|
||||
new GoalSeekOptions(initialTineSpacing: 10000));
|
||||
new GoalSeekOptions(
|
||||
startingStabPoint: Convert.ToDecimal(this._preparedValues.BaseCost / this._preparedValues.Nmper)
|
||||
, tineExplorePercentage: 10
|
||||
// , maximumAttempts: 10000
|
||||
// , initialTineSpacing: 1
|
||||
// , focusPercentage: 100
|
||||
// , trimFinalInputValue: true
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -178,5 +178,135 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
|
||||
var values = sumColumn.Values;
|
||||
Assert.Equal(expected, values);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SumColumnTest2()
|
||||
{
|
||||
var preparedValues =
|
||||
new PreparedValues()
|
||||
{
|
||||
BaseCost = 2500000,
|
||||
FirstPaymentSum = 625000,
|
||||
Nmper = 12,
|
||||
LastPaymentSum = 25000,
|
||||
IrrExpected = 0.304
|
||||
};
|
||||
|
||||
|
||||
var percentPaymentColumn = new PercentPaymentColumn(preparedValues.Nmper + 1)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
0.00,
|
||||
0.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
100.00,
|
||||
0.00,
|
||||
}
|
||||
};
|
||||
|
||||
var dateTempColumn = new DateTempColumn(67)
|
||||
{
|
||||
Values = new[]
|
||||
{
|
||||
new DateTime(2020, 10, 19),
|
||||
new DateTime(2020, 10, 19),
|
||||
new DateTime(2020, 11, 19),
|
||||
new DateTime(2020, 12, 19),
|
||||
new DateTime(2021, 1, 19),
|
||||
new DateTime(2021, 2, 19),
|
||||
new DateTime(2021, 3, 19),
|
||||
new DateTime(2021, 4, 19),
|
||||
new DateTime(2021, 5, 19),
|
||||
new DateTime(2021, 6, 19),
|
||||
new DateTime(2021, 7, 19),
|
||||
new DateTime(2021, 8, 19),
|
||||
new DateTime(2021, 9, 19),
|
||||
new DateTime(2021, 10, 19),
|
||||
new DateTime(2021, 11, 19),
|
||||
new DateTime(2021, 12, 19),
|
||||
new DateTime(2022, 1, 19),
|
||||
new DateTime(2022, 2, 19),
|
||||
new DateTime(2022, 3, 19),
|
||||
new DateTime(2022, 4, 19),
|
||||
new DateTime(2022, 5, 19),
|
||||
new DateTime(2022, 6, 19),
|
||||
new DateTime(2022, 7, 19),
|
||||
new DateTime(2022, 8, 19),
|
||||
new DateTime(2022, 9, 19),
|
||||
new DateTime(2022, 10, 19),
|
||||
new DateTime(2022, 11, 19),
|
||||
new DateTime(2022, 12, 19),
|
||||
new DateTime(2023, 1, 19),
|
||||
new DateTime(2023, 2, 19),
|
||||
new DateTime(2023, 3, 19),
|
||||
new DateTime(2023, 4, 19),
|
||||
new DateTime(2023, 5, 19),
|
||||
new DateTime(2023, 6, 19),
|
||||
new DateTime(2023, 7, 19),
|
||||
new DateTime(2023, 8, 19),
|
||||
new DateTime(2023, 9, 19),
|
||||
new DateTime(2023, 10, 19),
|
||||
new DateTime(2023, 11, 19),
|
||||
new DateTime(2023, 12, 19),
|
||||
new DateTime(2024, 1, 19),
|
||||
new DateTime(2024, 2, 19),
|
||||
new DateTime(2024, 3, 19),
|
||||
new DateTime(2024, 4, 19),
|
||||
new DateTime(2024, 5, 19),
|
||||
new DateTime(2024, 6, 19),
|
||||
new DateTime(2024, 7, 19),
|
||||
new DateTime(2024, 8, 19),
|
||||
new DateTime(2024, 9, 19),
|
||||
new DateTime(2024, 10, 19),
|
||||
new DateTime(2024, 11, 19),
|
||||
new DateTime(2024, 12, 19),
|
||||
new DateTime(2025, 1, 19),
|
||||
new DateTime(2025, 2, 19),
|
||||
new DateTime(2025, 3, 19),
|
||||
new DateTime(2025, 4, 19),
|
||||
new DateTime(2025, 5, 19),
|
||||
new DateTime(2025, 6, 19),
|
||||
new DateTime(2025, 7, 19),
|
||||
new DateTime(2025, 8, 19),
|
||||
new DateTime(2025, 9, 19),
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
var expected = new[]
|
||||
{
|
||||
-2500000,
|
||||
625000,
|
||||
209113.783333333,
|
||||
209113.783333333,
|
||||
209113.783333333,
|
||||
209113.783333333,
|
||||
209113.783333333,
|
||||
209113.783333333,
|
||||
209113.783333333,
|
||||
209113.783333333,
|
||||
209113.783333333,
|
||||
209113.783333333,
|
||||
25000
|
||||
};
|
||||
|
||||
var sumColumn = new SumColumn(
|
||||
preparedValues.Nmper + 1
|
||||
, dateTempColumn
|
||||
, preparedValues
|
||||
, percentPaymentColumn);
|
||||
sumColumn.ComputeValues(Convert.ToDecimal(preparedValues.IrrExpected));
|
||||
var values = sumColumn.Values;
|
||||
Assert.Equal(expected, values);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user