Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs =================================================================== diff -u -r79cd607bf75f24327b6889d8709b072c3da3c156 -rc4f75aa39431df092fc41bd13c1bd66c52b9e36e --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (.../IllustrationPointsParser.cs) (revision 79cd607bf75f24327b6889d8709b072c3da3c156) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (.../IllustrationPointsParser.cs) (revision c4f75aa39431df092fc41bd13c1bd66c52b9e36e) @@ -94,8 +94,30 @@ ParseSubMechanismResults(reader); reader.NextResult(); ParseFaultTree(reader); + if (Output.IllustrationPoints == null) + { + SetSubMechanismAsRootIllustrationPoint(); + } } + private void SetSubMechanismAsRootIllustrationPoint() + { + var rootIllustrationPoints = new List(); + foreach (Tuple windDirectionClosingSituation in GetAllWindDirectionClosingSituationCombinations()) + { + var illustrationPoint = new SubmechanismIllustrationPoint + { + Beta = subMechanismBetaValues.First().Value, + ClosingSituation = windDirectionClosingSituation.Item4, + WindDirection = windDirectionClosingSituation.Item2 + }; + AddRange(illustrationPoint.Results, subMechanismResults.First().Value); + AddRange(illustrationPoint.Stochasts, subMechanismStochasts.First().Value); + rootIllustrationPoints.Add(new IllustrationPointTreeNode(illustrationPoint)); + } + Output.IllustrationPoints = rootIllustrationPoints; + } + private void ParseFaultTreeAlphaValues(HydraRingDatabaseReader reader) { Dictionary[] readFaultTreeAlphaValues = GetIterator(reader).TakeWhile(r => r != null).ToArray(); @@ -205,14 +227,15 @@ private void ParseFaultTree(HydraRingDatabaseReader reader) { - var rootIllustrationPoints = new List(); IEnumerable> windDirectionClosingSituations = GetAllWindDirectionClosingSituationCombinations(); Dictionary[] readFaultTrees = GetIterator(reader).TakeWhile(r => r != null).ToArray(); if (readFaultTrees.Length > 0) { + var rootIllustrationPoints = new List(); + var results = new List>(); foreach (Dictionary readFaultTree in readFaultTrees) @@ -235,9 +258,9 @@ Tuple root = results.Single(r => !r.Item1.HasValue); rootIllustrationPoints.Add(BuildFaultTree(windDirectionClosingSituation, root.Item2, root.Item4, results)); } - } - Output.IllustrationPoints = rootIllustrationPoints; + Output.IllustrationPoints = rootIllustrationPoints; + } } private IEnumerable> GetAllWindDirectionClosingSituationCombinations() Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/IllustrationPoints/IllustrationPointsParserTest.cs =================================================================== diff -u -r79cd607bf75f24327b6889d8709b072c3da3c156 -rc4f75aa39431df092fc41bd13c1bd66c52b9e36e --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/IllustrationPoints/IllustrationPointsParserTest.cs (.../IllustrationPointsParserTest.cs) (revision 79cd607bf75f24327b6889d8709b072c3da3c156) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/IllustrationPoints/IllustrationPointsParserTest.cs (.../IllustrationPointsParserTest.cs) (revision c4f75aa39431df092fc41bd13c1bd66c52b9e36e) @@ -111,7 +111,7 @@ public void Parse_ValidDataForOtherSection_ThrowsHydraRingFileParserException() { // Setup - string path = Path.Combine(testDirectory, "ValidOutputSection1"); + string path = Path.Combine(testDirectory, "ValidStructuresStabilityOutputSection1"); var parser = new IllustrationPointsParser(); // Call @@ -124,10 +124,10 @@ } [Test] - public void Parse_ValidData_SetsOutputAsExpected() + public void Parse_ValidStructuresStabilityData_SetsOutputAsExpected() { // Setup - string path = Path.Combine(testDirectory, "ValidOutputSection1"); + string path = Path.Combine(testDirectory, "ValidStructuresStabilityOutputSection1"); var parser = new IllustrationPointsParser(); // Call @@ -141,5 +141,24 @@ Assert.AreEqual(46, generalResult.Stochasts.Count()); Assert.AreEqual(12, generalResult.IllustrationPoints.Count()); } + + [Test] + public void Parse_ValidDesignWaterLevelData_SetsOutputAsExpected() + { + // Setup + string path = Path.Combine(testDirectory, "ValidDesignWaterLevelOutputSection1"); + var parser = new IllustrationPointsParser(); + + // Call + parser.Parse(path, 1); + + // Assert + GeneralResult generalResult = parser.Output; + Assert.NotNull(generalResult); + Assert.NotNull(generalResult.GoverningWind); + Assert.AreEqual(4.45304, generalResult.Beta); + Assert.AreEqual(6, generalResult.Stochasts.Count()); + Assert.AreEqual(16, generalResult.IllustrationPoints.Count()); + } } } \ No newline at end of file Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/IllustrationPointsParser/ValidDesignWaterLevelOutputSection1/1-output.sqlite =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/IllustrationPointsParser/ValidOutputSection1/1-output.sqlite =================================================================== diff -u -re73c8b159778b281ecb275512f42da65c0d02e9d -rc4f75aa39431df092fc41bd13c1bd66c52b9e36e Binary files differ Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/IllustrationPointsParser/ValidStructuresStabilityOutputSection1/1-output.sqlite =================================================================== diff -u Binary files differ