Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 107 additions & 8 deletions ifrs17/Test/QueriesTest.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -571,6 +571,43 @@
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"source": [
"var args = new Args(\"CH\",2020,12,Periodicity.Monthly,null);",
"\nvar testData = new YieldCurve[] {",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 12, Name = \"A\", Values = new double[]{7.1,7.2,7.3,7.4,7.5,7.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 12, Values = new double[]{0.1,0.2,0.3,0.4,0.5,0.6} }, ",
"\n ",
"\n };",
"\n",
"\n(int year , int month, string yieldCurveName, string valuationApproach) dataNodeTestData = (2020, 12, \"A\", \"BBA\");",
"\nvar activity = await CheckLoadYieldCurveAsync(args, testData, dataNodeTestData, 0.1, 0.1, 7.1);",
"\nactivity"
],
"metadata": {},
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"source": [
"var args = new Args(\"CH\",2020,9,Periodicity.Monthly,null);",
"\nvar testData = new YieldCurve[] {",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 12, Name = \"A\", Values = new double[]{7.1,7.2,7.3,7.4,7.5,7.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 12, Values = new double[]{0.1,0.2,0.3,0.4,0.5,0.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 9, Name = \"A\", Values = new double[]{6.1,6.2,6.3,6.4,6.5,6.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 9, Values = new double[]{0.01,0.02,0.03,0.04,0.05,0.06} },",
"\n };",
"\n",
"\n(int year , int month, string yieldCurveName, string valuationApproach) dataNodeTestData = (2020, 1, \"A\", \"BBA\");",
"\nvar activity = await CheckLoadYieldCurveAsync(args, testData, dataNodeTestData, 0.01, 0.01, 6.1);",
"\nactivity"
],
"metadata": {},
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"source": [
Expand Down Expand Up @@ -613,7 +650,7 @@
"\n new YieldCurve{ Currency = \"EUR\", Year = 2016, Month = 3, Name = \"B\", Values = new double[]{7.1,7.2,7.3,7.4,7.5,7.6} }};",
"\n",
"\n(int year , int month, string yieldCurveName, string valuationApproach) dataNodeTestData = (2016, 6, \"A\", \"BBA\");",
"\nvar activity = await CheckLoadYieldCurveAsync(args, testData, dataNodeTestData, 6.1, 0.1, 6.1);",
"\nvar activity = await CheckLoadYieldCurveAsync(args, testData, dataNodeTestData, 9.1, 1.1, 6.1);",
"\nactivity"
],
"metadata": {},
Expand All @@ -634,20 +671,29 @@
"source": [
"var args = new Args(\"CH\",2020,9,Periodicity.Monthly,null);",
"\nvar testData = new YieldCurve[] {new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 12, Name = \"A\", Values = new double[]{11.1,11.2,11.3,11.4,11.5,11.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 12, Values = new double[]{100.1,100.2,100.3,100.4,100.5,100.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 9, Name = \"A\", Values = new double[]{12.1,12.2,12.3,12.4,12.5,12.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 9, Values = new double[]{90.1,90.2,90.3,90.4,90.5,90.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 6, Name = \"A\", Values = new double[]{13.1,13.2,13.3,13.4,13.5,13.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 6, Values = new double[]{80.1,80.2,80.3,80.4,80.5,80.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 3, Name = \"A\", Values = new double[]{1.1,1.2,1.3,1.4,1.5,1.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2019, Month = 12, Name = \"A\", Values = new double[]{9.1,9.2,9.3,9.4,9.5,9.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 3, Values = new double[]{70.1,70.2,70.3,70.4,70.5,70.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2019, Month = 12, Name = \"A\", Values = new double[]{9.1,9.2,9.3,9.4,9.5,9.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2019, Month = 12, Values = new double[]{60.1,60.2,60.3,60.4,60.5,60.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2019, Month = 9, Name = \"A\", Values = new double[]{10.1,10.2,10.3,10.4,10.5,10.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2019, Month = 6, Name = \"A\", Values = new double[]{2.1,2.2,2.3,2.4,2.5,2.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2019, Month = 3, Name = \"A\", Values = new double[]{7.1,7.2,7.3,7.4,7.5,7.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2019, Month = 9, Values = new double[]{50.1,50.2,50.3,50.4,50.5,50.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2019, Month = 6, Name = \"A\", Values = new double[]{2.1,2.2,2.3,2.4,2.5,2.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2019, Month = 6, Values = new double[]{40.1,40.2,40.3,40.4,40.5,40.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2019, Month = 3, Name = \"A\", Values = new double[]{7.1,7.2,7.3,7.4,7.5,7.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2019, Month = 3, Values = new double[]{30.1,30.2,30.3,30.4,30.5,30.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2018, Month = 6, Name = \"A\", Values = new double[]{3.1,3.2,3.3,3.4,3.5,3.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2018, Month = 6, Values = new double[]{20.1,20.2,20.3,20.4,20.5,20.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2017, Month = 6, Name = \"A\", Values = new double[]{4.1,4.2,4.3,4.4,4.5,4.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2016, Month = 12, Name = \"A\", Values = new double[]{8.1,8.2,8.3,8.4,8.5,8.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2016, Month = 3, Name = \"A\", Values = new double[]{6.1,6.2,6.3,6.4,6.5,6.6} }};",
"\n",
"\n(int year , int month, string yieldCurveName, string valuationApproach) dataNodeTestData = (2016, 6, \"A\", \"BBA\");",
"\nvar activity = await CheckLoadYieldCurveAsync(args, testData, dataNodeTestData, 9.1, 12.1, 8.1);",
"\nvar activity = await CheckLoadYieldCurveAsync(args, testData, dataNodeTestData, 60.1, 90.1, 8.1);",
"\nactivity"
],
"metadata": {},
Expand Down Expand Up @@ -693,14 +739,56 @@
"cell_type": "code",
"source": [
"var args = new Args(\"CH\",2020,9,Periodicity.Monthly,null);",
"\nvar testData = new YieldCurve[] {new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 6, Name = \"B\", Values = new double[]{0.1,0.2,0.3,0.4,0.5,0.6} }, ",
"\nvar testData = new YieldCurve[] {new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 6, Name = \"B\", Values = new double[]{0.1,0.2,0.3,0.4,0.5,0.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 6, Values = new double[]{10.1,10.2,10.3,10.4,10.5,10.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 6, Name = \"B\", Values = new double[]{2.1,2.2,2.3,2.4,2.5,2.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2016, Month = 3, Name = \"C\", Values = new double[]{4.1,4.2,4.3,4.4,4.5,4.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2016, Month = 3, Name = \"B\", Values = new double[]{6.1,6.2,6.3,6.4,6.5,6.6} }};",
"\n",
"\n(int year , int month, string yieldCurveName, string valuationApproach) dataNodeTestData = (2016, 2, \"A\", \"BBA\");",
"\n",
"\nvar activity = await CheckLoadYieldCurveAsync(args, testData, dataNodeTestData, 10.1, 10.1);",
"\nactivity"
],
"metadata": {},
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"source": [
"activity.Status.Should().Be(ActivityLogStatus.Failed);",
"\nactivity.Errors.Count().Should().Be(1)"
],
"metadata": {},
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"source": [
"var expectedErrorMessage = Get(Error.YieldCurveNotFound, \"EUR\",\"2016\",\"12\",\"Best Estimate\",\"A\");",
"\nvar errorMessage = activity.Errors.First().ToString();",
"\nerrorMessage.Contains(expectedErrorMessage).Should().Be(true)"
],
"metadata": {},
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"source": [
"var args = new Args(\"CH\",2016,9,Periodicity.Monthly,null);",
"\nvar testData = new YieldCurve[] {new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 6, Name = \"B\", Values = new double[]{0.1,0.2,0.3,0.4,0.5,0.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2016, Month = 6, Values = new double[]{10.1,10.2,10.3,10.4,10.5,10.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2020, Month = 6, Name = \"B\", Values = new double[]{2.1,2.2,2.3,2.4,2.5,2.6} }, ",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2016, Month = 3, Name = \"C\", Values = new double[]{4.1,4.2,4.3,4.4,4.5,4.6} },",
"\n new YieldCurve{ Currency = \"EUR\", Year = 2016, Month = 3, Name = \"B\", Values = new double[]{6.1,6.2,6.3,6.4,6.5,6.6} }};",
"\n",
"\n(int year , int month, string yieldCurveName, string valuationApproach) dataNodeTestData = (2016, 2, \"A\", \"BBA\");",
"\n",
"\nvar activity = await CheckLoadYieldCurveAsync(args, testData, dataNodeTestData);"
"\nvar activity = await CheckLoadYieldCurveAsync(args, testData, dataNodeTestData, 10.1, 10.1);",
"\nactivity"
],
"metadata": {},
"execution_count": 0,
Expand All @@ -710,7 +798,18 @@
"cell_type": "code",
"source": [
"activity.Status.Should().Be(ActivityLogStatus.Failed);",
"\nactivity.Errors.Select(x => x.ToString().Contains(Get(Error.YieldCurveNotFound)).Should().Be(true));"
"\nactivity.Errors.Count().Should().Be(1)"
],
"metadata": {},
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"source": [
"var expectedErrorMessage = Get(Error.YieldCurveNotFound, \"EUR\",\"2016\",\"9\",\"Best Estimate\",\"A\");",
"\nvar errorMessage = activity.Errors.First().ToString();",
"\nerrorMessage.Contains(expectedErrorMessage).Should().Be(true)"
],
"metadata": {},
"execution_count": 0,
Expand Down
5 changes: 3 additions & 2 deletions ifrs17/Utils/Queries.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,8 @@
"\n var lockedInYieldCurveByGoc = new Dictionary<string, YieldCurve>();",
"\n foreach (var dn in dataNodes.Where(x => x.ValuationApproach == ValuationApproaches.BBA))",
"\n {",
"\n var argsNew = args with {Year = dn.Year, Month = MonthInAYear, Scenario = args.Scenario};",
"\n var monthUpperLimit = args.Year == dn.Year ? args.Month : MonthInAYear;",
"\n var argsNew = args with {Year = dn.Year, Month = monthUpperLimit, Scenario = args.Scenario};",
"\n var loadedYc = (await querySource.LoadCurrentParameterAsync<YieldCurve>(argsNew, x => x.Currency, x => x.Currency == dn.ContractualCurrency && x.Name == dn.YieldCurveName));",
"\n ",
"\n if (!loadedYc.TryGetValue(dn.ContractualCurrency, out var lockedYc))",
Expand Down Expand Up @@ -232,7 +233,7 @@
"\n x => x.Currency == key.ContractualCurrency ",
"\n && (key.ValuationApproach == ValuationApproaches.VFA",
"\n ? x.Name == key.YieldCurveName",
"\n : true));",
"\n : x.Name == (string)null));",
"\n ",
"\n if (!loadedYc.TryGetValue(key.ContractualCurrency, out var currentYcDict))",
"\n ApplicationMessage.Log(Error.YieldCurveNotFound, key.ContractualCurrency, args.Year.ToString(), args.Month.ToString(), args.Scenario, key.YieldCurveName);",
Expand Down