Index: Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/FaultTreeIllustrationPointConverterTest.cs =================================================================== diff -u -rc883bd5e03754a2a020f36683abb0e4c9d324d2d -r2c00fea093af45947307620c4203188ceb872951 --- Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/FaultTreeIllustrationPointConverterTest.cs (.../FaultTreeIllustrationPointConverterTest.cs) (revision c883bd5e03754a2a020f36683abb0e4c9d324d2d) +++ Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/FaultTreeIllustrationPointConverterTest.cs (.../FaultTreeIllustrationPointConverterTest.cs) (revision 2c00fea093af45947307620c4203188ceb872951) @@ -57,8 +57,10 @@ var hydraRingStochast = new HydraRingStochast(name, duration, alpha); double beta = random.NextDouble(); - var hydraRingFaultTreeIllustrationPoint = new HydraRingFaultTreeIllustrationPoint("name", beta, HydraRingCombinationType.And); - hydraRingFaultTreeIllustrationPoint.Stochasts.Add(hydraRingStochast); + var hydraRingFaultTreeIllustrationPoint = new HydraRingFaultTreeIllustrationPoint("name", beta, new[] + { + hydraRingStochast + }, HydraRingCombinationType.And); // Call FaultTreeIllustrationPoint faultTreeIllustrationPoint = @@ -67,7 +69,7 @@ // Assert Assert.AreEqual(hydraRingFaultTreeIllustrationPoint.Beta, faultTreeIllustrationPoint.Beta, faultTreeIllustrationPoint.Beta.GetAccuracy()); Assert.AreEqual(hydraRingFaultTreeIllustrationPoint.Name, faultTreeIllustrationPoint.Name); - Assert.AreEqual((int)hydraRingFaultTreeIllustrationPoint.CombinationType, (int)faultTreeIllustrationPoint.CombinationType); + Assert.AreEqual((int) hydraRingFaultTreeIllustrationPoint.CombinationType, (int) faultTreeIllustrationPoint.CombinationType); Stochast stochast = faultTreeIllustrationPoint.Stochasts.Single(); Assert.AreEqual(hydraRingStochast.Alpha, stochast.Alpha, stochast.Alpha.GetAccuracy()); Index: Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/GeneralResultConverterTest.cs =================================================================== diff -u -r2e5f2b59e81cda48f3d7ee03afa4db88abc7b1a8 -r2c00fea093af45947307620c4203188ceb872951 --- Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/GeneralResultConverterTest.cs (.../GeneralResultConverterTest.cs) (revision 2e5f2b59e81cda48f3d7ee03afa4db88abc7b1a8) +++ Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/GeneralResultConverterTest.cs (.../GeneralResultConverterTest.cs) (revision 2c00fea093af45947307620c4203188ceb872951) @@ -146,6 +146,7 @@ var hydraRingIllustrationPoint = new HydraRingFaultTreeIllustrationPoint( "IllustrationPoint", random.NextDouble(), + Enumerable.Empty(), random.NextEnumValue()); var hydraRingIllustrationTreeNode = new HydraRingIllustrationPointTreeNode(hydraRingIllustrationPoint); Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/IStructuresCalculator.cs =================================================================== diff -u -re86a631a713f0bfef8444229e00aa9daef1a0fd8 -r2c00fea093af45947307620c4203188ceb872951 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/IStructuresCalculator.cs (.../IStructuresCalculator.cs) (revision e86a631a713f0bfef8444229e00aa9daef1a0fd8) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/IStructuresCalculator.cs (.../IStructuresCalculator.cs) (revision 2c00fea093af45947307620c4203188ceb872951) @@ -20,6 +20,7 @@ // All rights reserved. using Ringtoets.HydraRing.Calculation.Data.Input; +using Ringtoets.HydraRing.Calculation.Data.Output.IllustrationPoints; using Ringtoets.HydraRing.Calculation.Exceptions; namespace Ringtoets.HydraRing.Calculation.Calculator @@ -47,6 +48,11 @@ string LastErrorFileContent { get; } /// + /// Gets the result of parsing the illustration points in the Hydra-Ring database. + /// + GeneralResult IllustrationPointsResult { get; } + + /// /// Performs the actual calculation by running the Hydra-Ring executable. /// /// The which contains all the necessary input Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/FaultTreeIllustrationPoint.cs =================================================================== diff -u -r0748ce1d3449ef7d34ce00c68fa7319ab9d4fbfe -r2c00fea093af45947307620c4203188ceb872951 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/FaultTreeIllustrationPoint.cs (.../FaultTreeIllustrationPoint.cs) (revision 0748ce1d3449ef7d34ce00c68fa7319ab9d4fbfe) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/FaultTreeIllustrationPoint.cs (.../FaultTreeIllustrationPoint.cs) (revision 2c00fea093af45947307620c4203188ceb872951) @@ -35,9 +35,13 @@ /// /// The name of the fault tree illustration point /// The combined beta values of its children. + /// The combined stochasts of its children. /// The way in which the sub illustration points are combined. /// Thrown when is null. - public FaultTreeIllustrationPoint(string name, double beta, CombinationType combinationType) + public FaultTreeIllustrationPoint(string name, + double beta, + IEnumerable stochasts, + CombinationType combinationType) { if (name == null) { @@ -47,7 +51,7 @@ Beta = beta; CombinationType = combinationType; Name = name; - Stochasts = new List(); + Stochasts = stochasts; } /// @@ -58,7 +62,7 @@ /// /// Gets the combined stochasts of its children. /// - public ICollection Stochasts { get; } + public IEnumerable Stochasts { get; } /// /// Gets the combined beta values of its children. Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs =================================================================== diff -u -r2494425b0c9355fa337d49efcc0267f958ebe154 -r2c00fea093af45947307620c4203188ceb872951 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (.../IllustrationPointsParser.cs) (revision 2494425b0c9355fa337d49efcc0267f958ebe154) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (.../IllustrationPointsParser.cs) (revision 2c00fea093af45947307620c4203188ceb872951) @@ -366,17 +366,21 @@ ICollection> results) { var dataKey = new ThreeKeyIndex(windDirectionClosingSituation.Item1, windDirectionClosingSituation.Item3, faultTreeId); + var faultTreeIllustrationPointStochasts = new List(); if (!faultTreeBetaValues.ContainsKey(dataKey)) { return null; } - var illustrationPoint = new FaultTreeIllustrationPoint(faultTrees[faultTreeId], faultTreeBetaValues[dataKey], combinationType); if (faultTreeStochasts.ContainsKey(dataKey)) { - AddRange(illustrationPoint.Stochasts, faultTreeStochasts[dataKey]); + AddRange(faultTreeIllustrationPointStochasts, faultTreeStochasts[dataKey]); } + var illustrationPoint = new FaultTreeIllustrationPoint(faultTrees[faultTreeId], + faultTreeBetaValues[dataKey], + faultTreeIllustrationPointStochasts, + combinationType); var node = new IllustrationPointTreeNode(illustrationPoint); foreach (Tuple child in results.Where(r => r.Item1 == faultTreeId)) Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Calculator/DesignWaterLevelCalculatorTest.cs =================================================================== diff -u -r64d60335b1deab4bafd37f78f3514660cc4afb27 -r2c00fea093af45947307620c4203188ceb872951 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Calculator/DesignWaterLevelCalculatorTest.cs (.../DesignWaterLevelCalculatorTest.cs) (revision 64d60335b1deab4bafd37f78f3514660cc4afb27) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Calculator/DesignWaterLevelCalculatorTest.cs (.../DesignWaterLevelCalculatorTest.cs) (revision 2c00fea093af45947307620c4203188ceb872951) @@ -35,10 +35,12 @@ // Assert Assert.IsInstanceOf(calculator); + Assert.IsInstanceOf(calculator); Assert.IsNaN(calculator.ReliabilityIndex); Assert.IsNaN(calculator.DesignWaterLevel); Assert.IsNull(calculator.Converged); Assert.IsNull(calculator.OutputDirectory); + Assert.IsNull(calculator.IllustrationPointsResult); } } } \ No newline at end of file Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Calculator/StructuresCalculatorTest.cs =================================================================== diff -u -r45762d43270b997ca89d8f8ec73f7b895b52bd6a -r2c00fea093af45947307620c4203188ceb872951 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Calculator/StructuresCalculatorTest.cs (.../StructuresCalculatorTest.cs) (revision 45762d43270b997ca89d8f8ec73f7b895b52bd6a) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Calculator/StructuresCalculatorTest.cs (.../StructuresCalculatorTest.cs) (revision 2c00fea093af45947307620c4203188ceb872951) @@ -39,6 +39,7 @@ Assert.IsInstanceOf>(calculator); Assert.IsNaN(calculator.ExceedanceProbabilityBeta); Assert.IsNull(calculator.OutputDirectory); + Assert.IsNull(calculator.IllustrationPointsResult); } } } \ No newline at end of file Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Calculator/WaveHeightCalculatorTest.cs =================================================================== diff -u -r64d60335b1deab4bafd37f78f3514660cc4afb27 -r2c00fea093af45947307620c4203188ceb872951 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Calculator/WaveHeightCalculatorTest.cs (.../WaveHeightCalculatorTest.cs) (revision 64d60335b1deab4bafd37f78f3514660cc4afb27) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Calculator/WaveHeightCalculatorTest.cs (.../WaveHeightCalculatorTest.cs) (revision 2c00fea093af45947307620c4203188ceb872951) @@ -35,10 +35,12 @@ // Assert Assert.IsInstanceOf(calculator); + Assert.IsInstanceOf(calculator); Assert.IsNaN(calculator.ReliabilityIndex); Assert.IsNaN(calculator.WaveHeight); Assert.IsNull(calculator.Converged); Assert.IsNull(calculator.OutputDirectory); + Assert.IsNull(calculator.IllustrationPointsResult); } } } \ No newline at end of file Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Output/IllustrationPoints/FaultTreeIllustrationPointTest.cs =================================================================== diff -u -ra5cd9b063d07cb1205e7691b7ff38fc393005210 -r2c00fea093af45947307620c4203188ceb872951 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Output/IllustrationPoints/FaultTreeIllustrationPointTest.cs (.../FaultTreeIllustrationPointTest.cs) (revision a5cd9b063d07cb1205e7691b7ff38fc393005210) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Output/IllustrationPoints/FaultTreeIllustrationPointTest.cs (.../FaultTreeIllustrationPointTest.cs) (revision 2c00fea093af45947307620c4203188ceb872951) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using System.Linq; using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.HydraRing.Calculation.Data.Output.IllustrationPoints; @@ -38,6 +39,7 @@ // Call TestDelegate call = () => new FaultTreeIllustrationPoint(null, random.NextDouble(), + Enumerable.Empty(), random.NextEnumValue()); // Assert @@ -46,23 +48,42 @@ } [Test] + public void Constructor_StochastsNull_ThrowsArgumentNullException() + { + // Setup + var random = new Random(123); + + // Call + TestDelegate call = () => new FaultTreeIllustrationPoint("name", + random.NextDouble(), + null, + random.NextEnumValue()); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("stochasts", exception.ParamName); + } + + [Test] public void Constructor_WithValidParameter_ReturnsNewInstance() { // Setup var random = new Random(123); const string name = "name"; double beta = random.NextDouble(); var combinationType = random.NextEnumValue(); + var stochasts = Enumerable.Empty(); // Call - var illustrationPoint = new FaultTreeIllustrationPoint(name, beta, combinationType); + var illustrationPoint = new FaultTreeIllustrationPoint(name, beta, stochasts, combinationType); // Assert Assert.IsInstanceOf(illustrationPoint); Assert.AreEqual(name, illustrationPoint.Name); Assert.IsEmpty(illustrationPoint.Stochasts); Assert.AreEqual(beta, illustrationPoint.Beta); Assert.AreEqual(combinationType, illustrationPoint.CombinationType); + Assert.AreSame(stochasts, illustrationPoint.Stochasts); } } } \ No newline at end of file Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/IllustrationPoints/IllustrationPointsParserTest.cs =================================================================== diff -u -r2494425b0c9355fa337d49efcc0267f958ebe154 -r2c00fea093af45947307620c4203188ceb872951 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/IllustrationPoints/IllustrationPointsParserTest.cs (.../IllustrationPointsParserTest.cs) (revision 2494425b0c9355fa337d49efcc0267f958ebe154) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/IllustrationPoints/IllustrationPointsParserTest.cs (.../IllustrationPointsParserTest.cs) (revision 2c00fea093af45947307620c4203188ceb872951) @@ -221,7 +221,7 @@ FaultTreeIllustrationPoint faultTreeIllustrationPoint = faultTrees.First(); Assert.AreEqual("Structure 2017 Z12", subMechanismIllustrationPoint.Name); Assert.AreEqual(2.23881, faultTreeIllustrationPoint.Beta); - Assert.AreEqual(46, faultTreeIllustrationPoint.Stochasts.Count); + Assert.AreEqual(46, faultTreeIllustrationPoint.Stochasts.Count()); Assert.AreEqual(new[] { Tuple.Create("Kerende hoogte van het kunstwerk", 0.0, 4383.0),