Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingOutput.cs =================================================================== diff -u --- Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingOutput.cs (revision 0) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingOutput.cs (revision 642a4946d235601302d544697856fed3b5c7a2bd) @@ -0,0 +1,231 @@ +// Copyright (C) Stichting Deltares 2017. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Base.Data; +using Ringtoets.Common.Data.Probability; + +namespace Ringtoets.Piping.Data +{ + /// + /// This class contains the results of a semi-probabilistic assessment of the piping + /// failure mechanism. + /// + public class DerivedPipingOutput + { + private double requiredProbability; + private double pipingProbability; + private double upliftProbability; + private double heaveProbability; + private double sellmeijerProbability; + + /// + /// Creates a new instance of . + /// + /// The factor of safety for the uplift sub mechanism. + /// The reliability of uplift the sub mechanism. + /// The probability of failure due to the uplift sub mechanism. + /// The factor of safety for the heave sub mechanism. + /// The reliability of the heave sub mechanism. + /// The probability of failure due to the heave sub mechanism. + /// The factor of safety for the Sellmeijer sub mechanism. + /// The reliability of the Sellmeijer sub mechanism. + /// The probability of failure due to the Sellmeijer sub mechanism. + /// The required (maximum allowed) probability of failure due to piping. + /// The required (maximum allowed) reliability of the piping failure mechanism + /// The calculated probability of failing due to piping. + /// The calculated reliability of the piping failure mechanism. + /// The factor of safety for the piping failure mechanism. + /// Thrown when setting a probability that falls + /// outside the [0.0, 1.0] range or isn't . + public DerivedPipingOutput(double upliftFactorOfSafety, double upliftReliability, double upliftProbability, + double heaveFactorOfSafety, double heaveReliability, double heaveProbability, + double sellmeijerFactorOfSafety, double sellmeijerReliability, double sellmeijerProbability, + double requiredProbability, double requiredReliability, + double pipingProbability, double pipingReliability, double pipingFactorOfSafety) + { + UpliftFactorOfSafety = new RoundedDouble(3, upliftFactorOfSafety); + UpliftReliability = new RoundedDouble(5, upliftReliability); + UpliftProbability = upliftProbability; + HeaveFactorOfSafety = new RoundedDouble(3, heaveFactorOfSafety); + HeaveReliability = new RoundedDouble(5, heaveReliability); + HeaveProbability = heaveProbability; + SellmeijerFactorOfSafety = new RoundedDouble(3, sellmeijerFactorOfSafety); + SellmeijerReliability = new RoundedDouble(5, sellmeijerReliability); + SellmeijerProbability = sellmeijerProbability; + + RequiredProbability = requiredProbability; + RequiredReliability = new RoundedDouble(5, requiredReliability); + PipingProbability = pipingProbability; + PipingReliability = new RoundedDouble(5, pipingReliability); + PipingFactorOfSafety = new RoundedDouble(3, pipingFactorOfSafety); + } + + /// + /// Gets the required probability of the piping failure mechanism, + /// which value in range [0,1]. + /// + /// Thrown when setting a value that falls + /// outside the [0.0, 1.0] range or isn't . + public double RequiredProbability + { + get + { + return requiredProbability; + } + private set + { + ProbabilityHelper.ValidateProbability(value, nameof(value), true); + requiredProbability = value; + } + } + + /// + /// Get the required reliability of the piping failure mechanism, + /// which is a value greater than 0. + /// + public RoundedDouble RequiredReliability { get; } + + /// + /// Gets the factor of safety of the piping failure mechanism, + /// which is a value greater than 0. + /// + public RoundedDouble PipingFactorOfSafety { get; } + + /// + /// Gets the reliability of the piping failure mechanism, + /// which is a value greater than 0. + /// + public RoundedDouble PipingReliability { get; } + + /// + /// Gets the probability of failing due to the piping failure mechanism, + /// which value in range [0,1]. + /// + /// Thrown when setting a value that falls + /// outside the [0.0, 1.0] range or isn't . + public double PipingProbability + { + get + { + return pipingProbability; + } + private set + { + ProbabilityHelper.ValidateProbability(value, nameof(value), true); + pipingProbability = value; + } + } + + /// + /// Gets the factor of safety for the uplift sub mechanism, + /// which is a value greater than 0. + /// + public RoundedDouble UpliftFactorOfSafety { get; } + + /// + /// Gets the reliability for the uplift sub mechanism, + /// which is a value greater than 0. + /// + public RoundedDouble UpliftReliability { get; } + + /// + /// Gets the probability of failing due to the uplift failure sub mechanism, + /// which value in range [0,1]. + /// + /// Thrown when setting a value that falls + /// outside the [0.0, 1.0] range or isn't . + public double UpliftProbability + { + get + { + return upliftProbability; + } + private set + { + ProbabilityHelper.ValidateProbability(value, nameof(value), true); + upliftProbability = value; + } + } + + /// + /// Gets the factor of safety for the heave sub mechanism, + /// which is a value greater than 0. + /// + public RoundedDouble HeaveFactorOfSafety { get; } + + /// + /// Gets the reliability for the heave sub mechanism, + /// which is a value greater than 0. + /// + public RoundedDouble HeaveReliability { get; } + + /// + /// Gets the probability of failing due to the heave failure sub mechanism, + /// which value in range [0,1]. + /// + /// Thrown when setting a value that falls + /// outside the [0.0, 1.0] range or isn't . + public double HeaveProbability + { + get + { + return heaveProbability; + } + private set + { + ProbabilityHelper.ValidateProbability(value, nameof(value), true); + heaveProbability = value; + } + } + + /// + /// Gets the factor of safety for the Sellmeijer sub mechanism, + /// which is a value greater than 0. + /// + public RoundedDouble SellmeijerFactorOfSafety { get; } + + /// + /// Gets the reliability for the Sellmeijer sub mechanism, + /// which is a value greater than 0. + /// + public RoundedDouble SellmeijerReliability { get; } + + /// + /// Gets the probability of failing due to the Sellmeijer failure sub mechanism, + /// which value in range [0,1]. + /// + /// Thrown when setting a value that falls + /// outside the [0.0, 1.0] range or isn't . + public double SellmeijerProbability + { + get + { + return sellmeijerProbability; + } + private set + { + ProbabilityHelper.ValidateProbability(value, nameof(value), true); + sellmeijerProbability = value; + } + } + } +} \ No newline at end of file Fisheye: Tag 642a4946d235601302d544697856fed3b5c7a2bd refers to a dead (removed) revision in file `Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingSemiProbabilisticOutput.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/Ringtoets.Piping.Data.csproj =================================================================== diff -u -r63fc151e9cf722527465c1eddfa6567a90feb5e6 -r642a4946d235601302d544697856fed3b5c7a2bd --- Ringtoets/Piping/src/Ringtoets.Piping.Data/Ringtoets.Piping.Data.csproj (.../Ringtoets.Piping.Data.csproj) (revision 63fc151e9cf722527465c1eddfa6567a90feb5e6) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/Ringtoets.Piping.Data.csproj (.../Ringtoets.Piping.Data.csproj) (revision 642a4946d235601302d544697856fed3b5c7a2bd) @@ -22,7 +22,7 @@ - + Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PresentationObjects/PipingOutputContext.cs =================================================================== diff -u -rdb77ae03f93f27b25268dd9f62f0091a47fe22d8 -r642a4946d235601302d544697856fed3b5c7a2bd --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PresentationObjects/PipingOutputContext.cs (.../PipingOutputContext.cs) (revision db77ae03f93f27b25268dd9f62f0091a47fe22d8) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PresentationObjects/PipingOutputContext.cs (.../PipingOutputContext.cs) (revision 642a4946d235601302d544697856fed3b5c7a2bd) @@ -26,29 +26,30 @@ namespace Ringtoets.Piping.Forms.PresentationObjects { /// - /// A presentation layer object which wraps a and a . + /// A presentation layer object which wraps a and a . /// public class PipingOutputContext : WrappedObjectContextBase { /// /// Creates a new instance of . /// /// The object to wrap. - /// The + /// The /// created from . - public PipingOutputContext(PipingOutput pipingOutput, PipingSemiProbabilisticOutput semiProbabilisticOutput) + public PipingOutputContext(PipingOutput pipingOutput, DerivedPipingOutput derivedOutput) : base(pipingOutput) { - if (semiProbabilisticOutput == null) + if (derivedOutput == null) { - throw new ArgumentNullException(nameof(semiProbabilisticOutput)); + throw new ArgumentNullException(nameof(derivedOutput)); } - SemiProbabilisticOutput = semiProbabilisticOutput; + + DerivedOutput = derivedOutput; } /// - /// Gets the semi-probabilistic output created from the piping output. + /// Gets the derived output created from the piping output. /// - public PipingSemiProbabilisticOutput SemiProbabilisticOutput { get; } + public DerivedPipingOutput DerivedOutput { get; } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingOutputProperties.cs =================================================================== diff -u -r1b6400211b923fc8d0c5ee4d692d71b468890f5e -r642a4946d235601302d544697856fed3b5c7a2bd --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingOutputProperties.cs (.../PipingOutputProperties.cs) (revision 1b6400211b923fc8d0c5ee4d692d71b468890f5e) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingOutputProperties.cs (.../PipingOutputProperties.cs) (revision 642a4946d235601302d544697856fed3b5c7a2bd) @@ -35,30 +35,29 @@ /// public class PipingOutputProperties : ObjectProperties { - private readonly PipingSemiProbabilisticOutput semiProbabilisticOutput; + private readonly DerivedPipingOutput derivedOutput; /// /// Creates a new instance of . /// /// The output to show the properties for. - /// The semi probabilistic output to - /// show properties for. + /// The derived output to show properties for. /// Thrown when any parameter /// is null. - public PipingOutputProperties(PipingOutput output, PipingSemiProbabilisticOutput semiProbabilisticOutput) + public PipingOutputProperties(PipingOutput output, DerivedPipingOutput derivedOutput) { - if (output == null) + if (derivedOutput == null) { - throw new ArgumentNullException(nameof(output)); + throw new ArgumentNullException(nameof(derivedOutput)); } - if (semiProbabilisticOutput == null) + if (derivedOutput == null) { - throw new ArgumentNullException(nameof(semiProbabilisticOutput)); + throw new ArgumentNullException(nameof(derivedOutput)); } Data = output; - this.semiProbabilisticOutput = semiProbabilisticOutput; + this.derivedOutput = derivedOutput; } [ResourcesCategory(typeof(Resources), nameof(Resources.Categories_Uplift), 1, 4)] @@ -81,7 +80,7 @@ { get { - return semiProbabilisticOutput.UpliftFactorOfSafety; + return derivedOutput.UpliftFactorOfSafety; } } @@ -93,7 +92,7 @@ { get { - return semiProbabilisticOutput.UpliftReliability; + return derivedOutput.UpliftReliability; } } @@ -105,7 +104,7 @@ { get { - return ProbabilityFormattingHelper.Format(semiProbabilisticOutput.UpliftProbability); + return ProbabilityFormattingHelper.Format(derivedOutput.UpliftProbability); } } @@ -129,7 +128,7 @@ { get { - return semiProbabilisticOutput.HeaveFactorOfSafety; + return derivedOutput.HeaveFactorOfSafety; } } @@ -141,7 +140,7 @@ { get { - return semiProbabilisticOutput.HeaveReliability; + return derivedOutput.HeaveReliability; } } @@ -153,7 +152,7 @@ { get { - return ProbabilityFormattingHelper.Format(semiProbabilisticOutput.HeaveProbability); + return ProbabilityFormattingHelper.Format(derivedOutput.HeaveProbability); } } @@ -201,7 +200,7 @@ { get { - return semiProbabilisticOutput.SellmeijerFactorOfSafety; + return derivedOutput.SellmeijerFactorOfSafety; } } @@ -213,7 +212,7 @@ { get { - return semiProbabilisticOutput.SellmeijerReliability; + return derivedOutput.SellmeijerReliability; } } @@ -225,7 +224,7 @@ { get { - return ProbabilityFormattingHelper.Format(semiProbabilisticOutput.SellmeijerProbability); + return ProbabilityFormattingHelper.Format(derivedOutput.SellmeijerProbability); } } @@ -237,7 +236,7 @@ { get { - return ProbabilityFormattingHelper.Format(semiProbabilisticOutput.RequiredProbability); + return ProbabilityFormattingHelper.Format(derivedOutput.RequiredProbability); } } @@ -249,7 +248,7 @@ { get { - return semiProbabilisticOutput.RequiredReliability; + return derivedOutput.RequiredReliability; } } @@ -261,7 +260,7 @@ { get { - return ProbabilityFormattingHelper.Format(semiProbabilisticOutput.PipingProbability); + return ProbabilityFormattingHelper.Format(derivedOutput.PipingProbability); } } @@ -273,7 +272,7 @@ { get { - return semiProbabilisticOutput.PipingReliability; + return derivedOutput.PipingReliability; } } @@ -285,7 +284,7 @@ { get { - return semiProbabilisticOutput.PipingFactorOfSafety; + return derivedOutput.PipingFactorOfSafety; } } } Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs =================================================================== diff -u -raf990fe02513d7cd12034e597037025ecf5aa948 -r642a4946d235601302d544697856fed3b5c7a2bd --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision af990fe02513d7cd12034e597037025ecf5aa948) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 642a4946d235601302d544697856fed3b5c7a2bd) @@ -78,7 +78,7 @@ }; yield return new PropertyInfo { - CreateInstance = context => new PipingOutputProperties(context.WrappedData, context.SemiProbabilisticOutput) + CreateInstance = context => new PipingOutputProperties(context.WrappedData, context.DerivedOutput) }; yield return new PropertyInfo { Index: Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingSemiProbabilisticCalculationService.cs =================================================================== diff -u -rac96d7c315129af851634ed5a4a6800b59ede718 -r642a4946d235601302d544697856fed3b5c7a2bd --- Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingSemiProbabilisticCalculationService.cs (.../PipingSemiProbabilisticCalculationService.cs) (revision ac96d7c315129af851634ed5a4a6800b59ede718) +++ Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingSemiProbabilisticCalculationService.cs (.../PipingSemiProbabilisticCalculationService.cs) (revision 642a4946d235601302d544697856fed3b5c7a2bd) @@ -125,7 +125,7 @@ calculator.Calculate(); - calculation.SemiProbabilisticOutput = new PipingSemiProbabilisticOutput( + calculation.SemiProbabilisticOutput = new DerivedPipingOutput( calculator.upliftFactorOfSafety, calculator.upliftReliability, calculator.upliftProbability, Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/DerivedPipingOutputTest.cs =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/DerivedPipingOutputTest.cs (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/DerivedPipingOutputTest.cs (revision 642a4946d235601302d544697856fed3b5c7a2bd) @@ -0,0 +1,555 @@ +// Copyright (C) Stichting Deltares 2017. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.TestUtil; +using NUnit.Framework; +using Ringtoets.Common.Data.TestUtil; + +namespace Ringtoets.Piping.Data.Test +{ + [TestFixture] + public class DerivedPipingOutputTest + { + [Test] + public void Constructor_DefaultPropertiesSet() + { + // Setup + var random = new Random(21); + double upliftFactorOfSafety = random.NextDouble(); + double upliftReliability = random.NextDouble(); + double upliftProbability = random.NextDouble(); + double heaveFactorOfSafety = random.NextDouble(); + double heaveReliability = random.NextDouble(); + double heaveProbability = random.NextDouble(); + double sellmeijerFactorOfSafety = random.NextDouble(); + double sellmeijerReliability = random.NextDouble(); + double sellmeijerProbability = random.NextDouble(); + double requiredProbability = random.NextDouble(); + double requiredReliability = random.NextDouble(); + double pipingProbability = random.NextDouble(); + double pipingReliability = random.NextDouble(); + double pipingFactorOfSafety = random.NextDouble(); + + // Call + var output = new DerivedPipingOutput( + upliftFactorOfSafety, + upliftReliability, + upliftProbability, + heaveFactorOfSafety, + heaveReliability, + heaveProbability, + sellmeijerFactorOfSafety, + sellmeijerReliability, + sellmeijerProbability, + requiredProbability, + requiredReliability, + pipingProbability, + pipingReliability, + pipingFactorOfSafety); + + // Assert + Assert.AreEqual(3, output.HeaveFactorOfSafety.NumberOfDecimalPlaces); + Assert.AreEqual(upliftFactorOfSafety, output.UpliftFactorOfSafety, output.UpliftFactorOfSafety.GetAccuracy()); + Assert.AreEqual(5, output.UpliftReliability.NumberOfDecimalPlaces); + Assert.AreEqual(upliftReliability, output.UpliftReliability, output.UpliftReliability.GetAccuracy()); + Assert.AreEqual(upliftProbability, output.UpliftProbability); + Assert.AreEqual(3, output.HeaveFactorOfSafety.NumberOfDecimalPlaces); + Assert.AreEqual(heaveFactorOfSafety, output.HeaveFactorOfSafety, output.HeaveFactorOfSafety.GetAccuracy()); + Assert.AreEqual(5, output.HeaveReliability.NumberOfDecimalPlaces); + Assert.AreEqual(heaveReliability, output.HeaveReliability, output.HeaveReliability.GetAccuracy()); + Assert.AreEqual(heaveProbability, output.HeaveProbability); + Assert.AreEqual(3, output.SellmeijerFactorOfSafety.NumberOfDecimalPlaces); + Assert.AreEqual(sellmeijerFactorOfSafety, output.SellmeijerFactorOfSafety, output.SellmeijerFactorOfSafety.GetAccuracy()); + Assert.AreEqual(5, output.SellmeijerReliability.NumberOfDecimalPlaces); + Assert.AreEqual(sellmeijerReliability, output.SellmeijerReliability, output.SellmeijerReliability.GetAccuracy()); + Assert.AreEqual(sellmeijerProbability, output.SellmeijerProbability); + Assert.AreEqual(requiredProbability, output.RequiredProbability); + Assert.AreEqual(5, output.RequiredReliability.NumberOfDecimalPlaces); + Assert.AreEqual(requiredReliability, output.RequiredReliability, output.RequiredReliability.GetAccuracy()); + Assert.AreEqual(pipingProbability, output.PipingProbability); + Assert.AreEqual(5, output.PipingReliability.NumberOfDecimalPlaces); + Assert.AreEqual(pipingReliability, output.PipingReliability, output.PipingReliability.GetAccuracy()); + Assert.AreEqual(3, output.PipingFactorOfSafety.NumberOfDecimalPlaces); + Assert.AreEqual(pipingFactorOfSafety, output.PipingFactorOfSafety, output.PipingFactorOfSafety.GetAccuracy()); + } + + [Test] + [TestCase(double.NaN)] + [TestCase(0.0)] + [TestCase(0.123456789)] + [TestCase(1.0)] + public void RequiredProbability_SetValidValues_ReturnNewlySetValue(double requiredProbability) + { + // Setup + var random = new Random(21); + double upliftFactorOfSafety = random.NextDouble(); + double upliftReliability = random.NextDouble(); + double upliftProbability = random.NextDouble(); + double heaveFactorOfSafety = random.NextDouble(); + double heaveReliability = random.NextDouble(); + double heaveProbability = random.NextDouble(); + double sellmeijerFactorOfSafety = random.NextDouble(); + double sellmeijerReliability = random.NextDouble(); + double sellmeijerProbability = random.NextDouble(); + double requiredReliability = random.NextDouble(); + double pipingProbability = random.NextDouble(); + double pipingReliability = random.NextDouble(); + double pipingFactorOfSafety = random.NextDouble(); + + // Call + var output = new DerivedPipingOutput( + upliftFactorOfSafety, + upliftReliability, + upliftProbability, + heaveFactorOfSafety, + heaveReliability, + heaveProbability, + sellmeijerFactorOfSafety, + sellmeijerReliability, + sellmeijerProbability, + requiredProbability, + requiredReliability, + pipingProbability, + pipingReliability, + pipingFactorOfSafety); + + // Assert + Assert.AreEqual(requiredProbability, output.RequiredProbability); + } + + [Test] + [SetCulture("nl-NL")] + [TestCase(double.PositiveInfinity)] + [TestCase(double.NegativeInfinity)] + [TestCase(0.0 - 1e-6)] + [TestCase(-346587.456)] + [TestCase(1.0 + 1e-6)] + [TestCase(346587.456)] + public void RequiredProbability_SetInvalidValues_ThrowArgumentOutOfRangeException(double requiredProbability) + { + // Setup + var random = new Random(21); + double upliftFactorOfSafety = random.NextDouble(); + double upliftReliability = random.NextDouble(); + double upliftProbability = random.NextDouble(); + double heaveFactorOfSafety = random.NextDouble(); + double heaveReliability = random.NextDouble(); + double heaveProbability = random.NextDouble(); + double sellmeijerFactorOfSafety = random.NextDouble(); + double sellmeijerReliability = random.NextDouble(); + double sellmeijerProbability = random.NextDouble(); + double requiredReliability = random.NextDouble(); + double pipingProbability = random.NextDouble(); + double pipingReliability = random.NextDouble(); + double pipingFactorOfSafety = random.NextDouble(); + + // Call + TestDelegate call = () => new DerivedPipingOutput( + upliftFactorOfSafety, + upliftReliability, + upliftProbability, + heaveFactorOfSafety, + heaveReliability, + heaveProbability, + sellmeijerFactorOfSafety, + sellmeijerReliability, + sellmeijerProbability, + requiredProbability, + requiredReliability, + pipingProbability, + pipingReliability, + pipingFactorOfSafety); + + // Assert + const string expectedMessage = "Kans moet in het bereik [0,0, 1,0] liggen."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); + } + + [Test] + [TestCase(double.NaN)] + [TestCase(0.0)] + [TestCase(0.123456789)] + [TestCase(1.0)] + public void SellmeijerProbability_SetValidValues_ReturnNewlySetValue(double sellmeijerProbability) + { + // Setup + var random = new Random(21); + double upliftFactorOfSafety = random.NextDouble(); + double upliftReliability = random.NextDouble(); + double upliftProbability = random.NextDouble(); + double heaveFactorOfSafety = random.NextDouble(); + double heaveReliability = random.NextDouble(); + double heaveProbability = random.NextDouble(); + double sellmeijerFactorOfSafety = random.NextDouble(); + double sellmeijerReliability = random.NextDouble(); + double requiredProbability = random.NextDouble(); + double requiredReliability = random.NextDouble(); + double pipingProbability = random.NextDouble(); + double pipingReliability = random.NextDouble(); + double pipingFactorOfSafety = random.NextDouble(); + + // Call + var output = new DerivedPipingOutput( + upliftFactorOfSafety, + upliftReliability, + upliftProbability, + heaveFactorOfSafety, + heaveReliability, + heaveProbability, + sellmeijerFactorOfSafety, + sellmeijerReliability, + sellmeijerProbability, + requiredProbability, + requiredReliability, + pipingProbability, + pipingReliability, + pipingFactorOfSafety); + + // Assert + Assert.AreEqual(sellmeijerProbability, output.SellmeijerProbability); + } + + [Test] + [SetCulture("nl-NL")] + [TestCase(double.PositiveInfinity)] + [TestCase(double.NegativeInfinity)] + [TestCase(0.0 - 1e-6)] + [TestCase(-346587.456)] + [TestCase(1.0 + 1e-6)] + [TestCase(346587.456)] + public void SellmeijerProbability_SetInvalidValues_ThrowArgumentOutOfRangeException(double sellmeijerProbability) + { + // Setup + var random = new Random(21); + double upliftFactorOfSafety = random.NextDouble(); + double upliftReliability = random.NextDouble(); + double upliftProbability = random.NextDouble(); + double heaveFactorOfSafety = random.NextDouble(); + double heaveReliability = random.NextDouble(); + double heaveProbability = random.NextDouble(); + double sellmeijerFactorOfSafety = random.NextDouble(); + double sellmeijerReliability = random.NextDouble(); + double requiredProbability = random.NextDouble(); + double requiredReliability = random.NextDouble(); + double pipingProbability = random.NextDouble(); + double pipingReliability = random.NextDouble(); + double pipingFactorOfSafety = random.NextDouble(); + + // Call + TestDelegate call = () => new DerivedPipingOutput( + upliftFactorOfSafety, + upliftReliability, + upliftProbability, + heaveFactorOfSafety, + heaveReliability, + heaveProbability, + sellmeijerFactorOfSafety, + sellmeijerReliability, + sellmeijerProbability, + requiredProbability, + requiredReliability, + pipingProbability, + pipingReliability, + pipingFactorOfSafety); + + // Assert + const string expectedMessage = "Kans moet in het bereik [0,0, 1,0] liggen."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); + } + + [Test] + [TestCase(double.NaN)] + [TestCase(0.0)] + [TestCase(0.123456789)] + [TestCase(1.0)] + public void HeaveProbability_SetValidValues_ReturnNewlySetValue(double heaveProbability) + { + // Setup + var random = new Random(21); + double upliftFactorOfSafety = random.NextDouble(); + double upliftReliability = random.NextDouble(); + double upliftProbability = random.NextDouble(); + double heaveFactorOfSafety = random.NextDouble(); + double heaveReliability = random.NextDouble(); + double sellmeijerFactorOfSafety = random.NextDouble(); + double sellmeijerReliability = random.NextDouble(); + double sellmeijerProbability = random.NextDouble(); + double requiredProbability = random.NextDouble(); + double requiredReliability = random.NextDouble(); + double pipingProbability = random.NextDouble(); + double pipingReliability = random.NextDouble(); + double pipingFactorOfSafety = random.NextDouble(); + + // Call + var output = new DerivedPipingOutput( + upliftFactorOfSafety, + upliftReliability, + upliftProbability, + heaveFactorOfSafety, + heaveReliability, + heaveProbability, + sellmeijerFactorOfSafety, + sellmeijerReliability, + sellmeijerProbability, + requiredProbability, + requiredReliability, + pipingProbability, + pipingReliability, + pipingFactorOfSafety); + + // Assert + Assert.AreEqual(heaveProbability, output.HeaveProbability); + } + + [Test] + [SetCulture("nl-NL")] + [TestCase(double.PositiveInfinity)] + [TestCase(double.NegativeInfinity)] + [TestCase(0.0 - 1e-2)] + [TestCase(-346587.456)] + [TestCase(1.0 + 1e-2)] + [TestCase(346587.456)] + public void HeaveProbability_SetInvalidValues_ThrowArgumentOutOfRangeException(double heaveProbability) + { + // Setup + var random = new Random(21); + double upliftFactorOfSafety = random.NextDouble(); + double upliftReliability = random.NextDouble(); + double upliftProbability = random.NextDouble(); + double heaveFactorOfSafety = random.NextDouble(); + double heaveReliability = random.NextDouble(); + double sellmeijerFactorOfSafety = random.NextDouble(); + double sellmeijerReliability = random.NextDouble(); + double sellmeijerProbability = random.NextDouble(); + double requiredProbability = random.NextDouble(); + double requiredReliability = random.NextDouble(); + double pipingProbability = random.NextDouble(); + double pipingReliability = random.NextDouble(); + double pipingFactorOfSafety = random.NextDouble(); + + // Call + TestDelegate call = () => new DerivedPipingOutput( + upliftFactorOfSafety, + upliftReliability, + upliftProbability, + heaveFactorOfSafety, + heaveReliability, + heaveProbability, + sellmeijerFactorOfSafety, + sellmeijerReliability, + sellmeijerProbability, + requiredProbability, + requiredReliability, + pipingProbability, + pipingReliability, + pipingFactorOfSafety); + + // Assert + const string expectedMessage = "Kans moet in het bereik [0,0, 1,0] liggen."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); + } + + [Test] + [TestCase(double.NaN)] + [TestCase(0.0)] + [TestCase(0.123456789)] + [TestCase(1.0)] + public void UpliftProbability_SetValidValues_ReturnNewlySetValue(double upliftProbability) + { + // Setup + var random = new Random(21); + double upliftFactorOfSafety = random.NextDouble(); + double upliftReliability = random.NextDouble(); + double heaveFactorOfSafety = random.NextDouble(); + double heaveReliability = random.NextDouble(); + double heaveProbability = random.NextDouble(); + double sellmeijerFactorOfSafety = random.NextDouble(); + double sellmeijerReliability = random.NextDouble(); + double sellmeijerProbability = random.NextDouble(); + double requiredProbability = random.NextDouble(); + double requiredReliability = random.NextDouble(); + double pipingProbability = random.NextDouble(); + double pipingReliability = random.NextDouble(); + double pipingFactorOfSafety = random.NextDouble(); + + // Call + var output = new DerivedPipingOutput( + upliftFactorOfSafety, + upliftReliability, + upliftProbability, + heaveFactorOfSafety, + heaveReliability, + heaveProbability, + sellmeijerFactorOfSafety, + sellmeijerReliability, + sellmeijerProbability, + requiredProbability, + requiredReliability, + pipingProbability, + pipingReliability, + pipingFactorOfSafety); + + // Assert + Assert.AreEqual(upliftProbability, output.UpliftProbability); + } + + [Test] + [SetCulture("nl-NL")] + [TestCase(double.PositiveInfinity)] + [TestCase(double.NegativeInfinity)] + [TestCase(0.0 - 1e-6)] + [TestCase(-346587.456)] + [TestCase(1.0 + 1e-6)] + [TestCase(346587.456)] + public void UpliftProbability_SetInvalidValues_ThrowArgumentOutOfRangeException(double upliftProbability) + { + // Setup + var random = new Random(21); + double upliftFactorOfSafety = random.NextDouble(); + double upliftReliability = random.NextDouble(); + double heaveFactorOfSafety = random.NextDouble(); + double heaveReliability = random.NextDouble(); + double heaveProbability = random.NextDouble(); + double sellmeijerFactorOfSafety = random.NextDouble(); + double sellmeijerReliability = random.NextDouble(); + double sellmeijerProbability = random.NextDouble(); + double requiredProbability = random.NextDouble(); + double requiredReliability = random.NextDouble(); + double pipingProbability = random.NextDouble(); + double pipingReliability = random.NextDouble(); + double pipingFactorOfSafety = random.NextDouble(); + + // Call + TestDelegate call = () => new DerivedPipingOutput( + upliftFactorOfSafety, + upliftReliability, + upliftProbability, + heaveFactorOfSafety, + heaveReliability, + heaveProbability, + sellmeijerFactorOfSafety, + sellmeijerReliability, + sellmeijerProbability, + requiredProbability, + requiredReliability, + pipingProbability, + pipingReliability, + pipingFactorOfSafety); + + // Assert + const string expectedMessage = "Kans moet in het bereik [0,0, 1,0] liggen."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); + } + + [Test] + [TestCase(double.NaN)] + [TestCase(0.0)] + [TestCase(0.123456789)] + [TestCase(1.0)] + public void PipingProbability_SetValidValues_ReturnNewlySetValue(double pipingProbability) + { + // Setup + var random = new Random(21); + double upliftFactorOfSafety = random.NextDouble(); + double upliftReliability = random.NextDouble(); + double upliftProbability = random.NextDouble(); + double heaveFactorOfSafety = random.NextDouble(); + double heaveReliability = random.NextDouble(); + double heaveProbability = random.NextDouble(); + double sellmeijerFactorOfSafety = random.NextDouble(); + double sellmeijerReliability = random.NextDouble(); + double sellmeijerProbability = random.NextDouble(); + double requiredProbability = random.NextDouble(); + double requiredReliability = random.NextDouble(); + double pipingReliability = random.NextDouble(); + double pipingFactorOfSafety = random.NextDouble(); + + // Call + var output = new DerivedPipingOutput( + upliftFactorOfSafety, + upliftReliability, + upliftProbability, + heaveFactorOfSafety, + heaveReliability, + heaveProbability, + sellmeijerFactorOfSafety, + sellmeijerReliability, + sellmeijerProbability, + requiredProbability, + requiredReliability, + pipingProbability, + pipingReliability, + pipingFactorOfSafety); + + // Assert + Assert.AreEqual(pipingProbability, output.PipingProbability); + } + + [Test] + [SetCulture("nl-NL")] + [TestCase(double.PositiveInfinity)] + [TestCase(double.NegativeInfinity)] + [TestCase(0.0 - 1e-2)] + [TestCase(-346587.456)] + [TestCase(1.0 + 1e-2)] + [TestCase(346587.456)] + public void PipingProbability_SetInvalidValues_ThrowArgumentOutOfRangeException(double pipingProbability) + { + // Setup + var random = new Random(21); + double upliftFactorOfSafety = random.NextDouble(); + double upliftReliability = random.NextDouble(); + double upliftProbability = random.NextDouble(); + double heaveFactorOfSafety = random.NextDouble(); + double heaveReliability = random.NextDouble(); + double heaveProbability = random.NextDouble(); + double sellmeijerFactorOfSafety = random.NextDouble(); + double sellmeijerReliability = random.NextDouble(); + double sellmeijerProbability = random.NextDouble(); + double requiredProbability = random.NextDouble(); + double requiredReliability = random.NextDouble(); + double pipingReliability = random.NextDouble(); + double pipingFactorOfSafety = random.NextDouble(); + + // Call + TestDelegate call = () => new DerivedPipingOutput( + upliftFactorOfSafety, + upliftReliability, + upliftProbability, + heaveFactorOfSafety, + heaveReliability, + heaveProbability, + sellmeijerFactorOfSafety, + sellmeijerReliability, + sellmeijerProbability, + requiredProbability, + requiredReliability, + pipingProbability, + pipingReliability, + pipingFactorOfSafety); + + // Assert + const string expectedMessage = "Kans moet in het bereik [0,0, 1,0] liggen."; + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); + } + } +} \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationScenarioTest.cs =================================================================== diff -u -rdb77ae03f93f27b25268dd9f62f0091a47fe22d8 -r642a4946d235601302d544697856fed3b5c7a2bd --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationScenarioTest.cs (.../PipingCalculationScenarioTest.cs) (revision db77ae03f93f27b25268dd9f62f0091a47fe22d8) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationScenarioTest.cs (.../PipingCalculationScenarioTest.cs) (revision 642a4946d235601302d544697856fed3b5c7a2bd) @@ -90,7 +90,7 @@ var scenario = new PipingCalculationScenario(new GeneralPipingInput()) { Output = new TestPipingOutput(), - SemiProbabilisticOutput = new TestPipingSemiProbabilisticOutput(expectedProbability) + SemiProbabilisticOutput = new TestDerivedPipingOutput(expectedProbability) }; // Call @@ -153,7 +153,7 @@ var scenario = new PipingCalculationScenario(new GeneralPipingInput()) { Output = new TestPipingOutput(), - SemiProbabilisticOutput = new TestPipingSemiProbabilisticOutput(double.NaN) + SemiProbabilisticOutput = new TestDerivedPipingOutput(double.NaN) }; // Call @@ -172,7 +172,7 @@ var scenario = new PipingCalculationScenario(new GeneralPipingInput()) { Output = new TestPipingOutput(), - SemiProbabilisticOutput = new TestPipingSemiProbabilisticOutput(expectedProbability) + SemiProbabilisticOutput = new TestDerivedPipingOutput(expectedProbability) }; // Call Fisheye: Tag 642a4946d235601302d544697856fed3b5c7a2bd refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingSemiProbabilisticOutputTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj =================================================================== diff -u -r63fc151e9cf722527465c1eddfa6567a90feb5e6 -r642a4946d235601302d544697856fed3b5c7a2bd --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj (.../Ringtoets.Piping.Data.Test.csproj) (revision 63fc151e9cf722527465c1eddfa6567a90feb5e6) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj (.../Ringtoets.Piping.Data.Test.csproj) (revision 642a4946d235601302d544697856fed3b5c7a2bd) @@ -31,7 +31,7 @@ - + Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationScenarioFactory.cs =================================================================== diff -u -r2076a0044928407b9710d7652bd4bc9ea0d69ef0 -r642a4946d235601302d544697856fed3b5c7a2bd --- Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationScenarioFactory.cs (.../PipingCalculationScenarioFactory.cs) (revision 2076a0044928407b9710d7652bd4bc9ea0d69ef0) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationScenarioFactory.cs (.../PipingCalculationScenarioFactory.cs) (revision 642a4946d235601302d544697856fed3b5c7a2bd) @@ -41,14 +41,14 @@ /// /// Creates a calculated scenario for which the surface line on the input intersects with . /// - /// The value for . + /// The value for . /// The section for which an intersection will be created. /// A new . public static PipingCalculationScenario CreatePipingCalculationScenario(double probability, FailureMechanismSection section) { PipingCalculationScenario scenario = CreateNotCalculatedPipingCalculationScenario(section); var random = new Random(21); - scenario.SemiProbabilisticOutput = new PipingSemiProbabilisticOutput( + scenario.SemiProbabilisticOutput = new DerivedPipingOutput( random.NextDouble(), random.NextDouble(), random.NextDouble(),