Index: Ringtoets/Common/src/Ringtoets.Common.Service/IllustrationPoints/WindDirectionClosingSituationIllustrationPointConverter.cs =================================================================== diff -u -r0fd23ff8e68b5f0d18d344d104bc68216cb49b51 -r5f1c70d7eea83fca2ef6305a87a8098820ded1d9 --- Ringtoets/Common/src/Ringtoets.Common.Service/IllustrationPoints/WindDirectionClosingSituationIllustrationPointConverter.cs (.../WindDirectionClosingSituationIllustrationPointConverter.cs) (revision 0fd23ff8e68b5f0d18d344d104bc68216cb49b51) +++ Ringtoets/Common/src/Ringtoets.Common.Service/IllustrationPoints/WindDirectionClosingSituationIllustrationPointConverter.cs (.../WindDirectionClosingSituationIllustrationPointConverter.cs) (revision 5f1c70d7eea83fca2ef6305a87a8098820ded1d9) @@ -42,17 +42,8 @@ /// to base the on. /// The /// to base the on. - /// - /// Thrown when any of: - /// - /// , - /// , - /// , - /// - /// are null. - /// Thrown when - /// - /// is not in the interval of [0, 360]. + /// A . + /// Thrown when any parameter is null. public static WindDirectionClosingSituationIllustrationPoint CreateWindDirectionClosingScenarioIllustrationPoint( WindDirectionClosingSituation hydraWindDirectionClosingSituation, SubMechanismIllustrationPoint hydraSubMechanismIllustrationPoint) Index: Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/GeneralResultConverterTest.cs =================================================================== diff -u -r342ecb50ef0e54c04002a2643689c6d0108518c7 -r5f1c70d7eea83fca2ef6305a87a8098820ded1d9 --- Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/GeneralResultConverterTest.cs (.../GeneralResultConverterTest.cs) (revision 342ecb50ef0e54c04002a2643689c6d0108518c7) +++ Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/GeneralResultConverterTest.cs (.../GeneralResultConverterTest.cs) (revision 5f1c70d7eea83fca2ef6305a87a8098820ded1d9) @@ -88,11 +88,8 @@ var hydraWindDirectionClosingSituation = new WindDirectionClosingSituation(hydraWindDirection, closingSituation); - var hydraIllustrationPoint = new HydraSubMechanismIllustrationPoint - { - Beta = random.NextDouble(), - Name = " IllustrationPoint" - }; + double beta = random.NextDouble(); + var hydraIllustrationPoint = new HydraSubMechanismIllustrationPoint("Illustration Point", beta); var hydraIllustrationTreeNode = new IllustrationPointTreeNode(hydraIllustrationPoint); double governingWindDirectionAngle = random.NextDouble(); Index: Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/IllustrationPointConverterTest.cs =================================================================== diff -u -r0fd23ff8e68b5f0d18d344d104bc68216cb49b51 -r5f1c70d7eea83fca2ef6305a87a8098820ded1d9 --- Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/IllustrationPointConverterTest.cs (.../IllustrationPointConverterTest.cs) (revision 0fd23ff8e68b5f0d18d344d104bc68216cb49b51) +++ Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/IllustrationPointConverterTest.cs (.../IllustrationPointConverterTest.cs) (revision 5f1c70d7eea83fca2ef6305a87a8098820ded1d9) @@ -64,10 +64,10 @@ Name = "HydraRealizedStochast", Realization = random.NextDouble() }; - var subMechanismIllustrationPoint = new SubMechanismIllustrationPoint + + double beta = random.NextDouble(); + var subMechanismIllustrationPoint = new SubMechanismIllustrationPoint("name", beta) { - Beta = random.NextDouble(), - Name = "name", Results = { hydraIllustrationPointResult Index: Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/WindDirectionClosingSituationIllustrationPointConverterTest.cs =================================================================== diff -u -r342ecb50ef0e54c04002a2643689c6d0108518c7 -r5f1c70d7eea83fca2ef6305a87a8098820ded1d9 --- Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/WindDirectionClosingSituationIllustrationPointConverterTest.cs (.../WindDirectionClosingSituationIllustrationPointConverterTest.cs) (revision 342ecb50ef0e54c04002a2643689c6d0108518c7) +++ Ringtoets/Common/test/Ringtoets.Common.Service.Test/IllustrationPoints/WindDirectionClosingSituationIllustrationPointConverterTest.cs (.../WindDirectionClosingSituationIllustrationPointConverterTest.cs) (revision 5f1c70d7eea83fca2ef6305a87a8098820ded1d9) @@ -44,7 +44,7 @@ TestDelegate call = () => WindDirectionClosingSituationIllustrationPointConverter.CreateWindDirectionClosingScenarioIllustrationPoint( null, - new HydraSubMechanismIllustrationPoint()); + new HydraSubMechanismIllustrationPoint("name", 123)); // Assert string paramName = Assert.Throws(call).ParamName; @@ -92,10 +92,10 @@ Name = "HydraRealizedStochast", Realization = random.NextDouble() }; - var subMechanismIllustrationPoint = new HydraSubMechanismIllustrationPoint + + double beta = random.NextDouble(); + var subMechanismIllustrationPoint = new HydraSubMechanismIllustrationPoint("name", beta) { - Beta = random.NextDouble(), - Name = "name", Results = { hydraIllustrationPointResult Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/SubmechanismIllustrationPoint.cs =================================================================== diff -u -r0fd23ff8e68b5f0d18d344d104bc68216cb49b51 -r5f1c70d7eea83fca2ef6305a87a8098820ded1d9 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/SubmechanismIllustrationPoint.cs (.../SubmechanismIllustrationPoint.cs) (revision 0fd23ff8e68b5f0d18d344d104bc68216cb49b51) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/SubmechanismIllustrationPoint.cs (.../SubmechanismIllustrationPoint.cs) (revision 5f1c70d7eea83fca2ef6305a87a8098820ded1d9) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.Collections.Generic; namespace Ringtoets.HydraRing.Calculation.Data.Output.IllustrationPoints @@ -29,23 +30,44 @@ public class SubMechanismIllustrationPoint : IIllustrationPoint { /// + /// Creates a new instance of . + /// + /// The name of the illustration point. + /// The beta value of the illustration point + /// Thrown when + /// is null. + public SubMechanismIllustrationPoint(string name, double beta) + { + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + Name = name; + Beta = beta; + Stochasts = new List(); + Results = new List(); + } + + + /// /// Gets or sets the name. /// public string Name { get; set; } /// /// Gets the stochasts that were realized. /// - public ICollection Stochasts { get; } = new List(); + public ICollection Stochasts { get; } /// /// Gets the beta values that were realized. /// - public double Beta { get; set; } = double.NaN; + public double Beta { get; set; } /// /// Gets the output variables. /// - public ICollection Results { get; } = new List(); + public ICollection Results { get; } } } \ No newline at end of file Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs =================================================================== diff -u -r342ecb50ef0e54c04002a2643689c6d0108518c7 -r5f1c70d7eea83fca2ef6305a87a8098820ded1d9 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (.../IllustrationPointsParser.cs) (revision 342ecb50ef0e54c04002a2643689c6d0108518c7) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (.../IllustrationPointsParser.cs) (revision 5f1c70d7eea83fca2ef6305a87a8098820ded1d9) @@ -125,11 +125,11 @@ var rootIllustrationPoints = new Dictionary(); foreach (Tuple windDirectionClosingSituation in GetAllWindDirectionClosingSituationCombinations()) { - var illustrationPoint = new SubMechanismIllustrationPoint - { - Name = subMechanisms.First().Value, - Beta = subMechanismBetaValues.First().Value - }; + string submechanismIllustrationPointName = subMechanisms.First().Value; + double subMechanismIllustrationPointBeta = subMechanismBetaValues.First().Value; + var illustrationPoint = new SubMechanismIllustrationPoint(submechanismIllustrationPointName, + subMechanismIllustrationPointBeta); + AddRange(illustrationPoint.Results, subMechanismResults.First().Value); AddRange(illustrationPoint.Stochasts, subMechanismStochasts.First().Value); @@ -335,11 +335,12 @@ private IllustrationPointTreeNode BuildSubMechanism(Tuple windDirectionClosingSituation, int subMechanismId) { var dataKey = new ThreeKeyIndex(windDirectionClosingSituation.Item1, windDirectionClosingSituation.Item3, subMechanismId); - var illustrationPoint = new SubMechanismIllustrationPoint - { - Name = subMechanisms[subMechanismId], - Beta = subMechanismBetaValues[dataKey] - }; + + string submechanismIllustrationPointName = subMechanisms[subMechanismId]; + double subMechanismIllustrationPointBeta = subMechanismBetaValues[dataKey]; + var illustrationPoint = new SubMechanismIllustrationPoint(submechanismIllustrationPointName, + subMechanismIllustrationPointBeta); + if (subMechanismStochasts.ContainsKey(dataKey)) { AddRange(illustrationPoint.Stochasts, subMechanismStochasts[dataKey]); Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Output/IllustrationPoints/SubMechanismIllustrationPointTest.cs =================================================================== diff -u -r0fd23ff8e68b5f0d18d344d104bc68216cb49b51 -r5f1c70d7eea83fca2ef6305a87a8098820ded1d9 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Output/IllustrationPoints/SubMechanismIllustrationPointTest.cs (.../SubMechanismIllustrationPointTest.cs) (revision 0fd23ff8e68b5f0d18d344d104bc68216cb49b51) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Output/IllustrationPoints/SubMechanismIllustrationPointTest.cs (.../SubMechanismIllustrationPointTest.cs) (revision 5f1c70d7eea83fca2ef6305a87a8098820ded1d9) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using NUnit.Framework; using Ringtoets.HydraRing.Calculation.Data.Output.IllustrationPoints; @@ -28,16 +29,33 @@ public class SubMechanismIllustrationPointTest { [Test] + public void Constructor_NameNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => new SubMechanismIllustrationPoint(null, 123); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("name", exception.ParamName); + } + + [Test] public void Constructor_WithParameter_ReturnsNewInstance() { + // Setup + const string name = "Name"; + + var random = new Random(21); + double beta = random.NextDouble(); + // Call - var illustrationPoint = new SubMechanismIllustrationPoint(); + var illustrationPoint = new SubMechanismIllustrationPoint(name, beta); // Assert Assert.IsInstanceOf(illustrationPoint); Assert.IsEmpty(illustrationPoint.Stochasts); Assert.IsEmpty(illustrationPoint.Results); - Assert.IsNaN(illustrationPoint.Beta); + Assert.AreEqual(beta, illustrationPoint.Beta); } } } \ No newline at end of file