Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/SoilProfile/MacroStabilityInwardsStochasticSoilProfile.cs
===================================================================
diff -u -r9f936b0b29f490a024df02345df182133b1c041a -r6545e28fb366f9bfdf71e776a404e9ce256df182
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/SoilProfile/MacroStabilityInwardsStochasticSoilProfile.cs (.../MacroStabilityInwardsStochasticSoilProfile.cs) (revision 9f936b0b29f490a024df02345df182133b1c041a)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/SoilProfile/MacroStabilityInwardsStochasticSoilProfile.cs (.../MacroStabilityInwardsStochasticSoilProfile.cs) (revision 6545e28fb366f9bfdf71e776a404e9ce256df182)
@@ -100,6 +100,19 @@
Probability = fromProfile.Probability;
}
+ ///
+ /// Updates the probability of the
+ /// by adding .
+ ///
+ /// The amount to increase the
+ /// with.
+ /// Thrown when the
+ /// is outside the range [0, 1].
+ public void AddProbability(double probabilityToAdd)
+ {
+ Probability += probabilityToAdd;
+ }
+
public override string ToString()
{
return SoilProfile?.ToString() ?? string.Empty;
Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsStochasticSoilProfileTest.cs
===================================================================
diff -u -r9f936b0b29f490a024df02345df182133b1c041a -r6545e28fb366f9bfdf71e776a404e9ce256df182
--- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsStochasticSoilProfileTest.cs (.../MacroStabilityInwardsStochasticSoilProfileTest.cs) (revision 9f936b0b29f490a024df02345df182133b1c041a)
+++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsStochasticSoilProfileTest.cs (.../MacroStabilityInwardsStochasticSoilProfileTest.cs) (revision 6545e28fb366f9bfdf71e776a404e9ce256df182)
@@ -87,6 +87,58 @@
}
[Test]
+ [SetCulture("nl-NL")]
+ [TestCase(-1)]
+ [TestCase(1)]
+ [TestCase(-0.51)]
+ [TestCase(0.51)]
+ [TestCase(double.NaN)]
+ public void AddProbability_ProbabilityToAddResultsInvalidProbability_ThrowsArgumentOutOfRangeException(double probabilityToAdd)
+ {
+ // Setup
+ const double probability = 0.5;
+
+ var mocks = new MockRepository();
+ var soilProfile = mocks.Stub();
+ mocks.ReplayAll();
+
+ var profile = new MacroStabilityInwardsStochasticSoilProfile(probability, soilProfile);
+
+ // Call
+ TestDelegate test = () => profile.AddProbability(probabilityToAdd);
+
+ // Assert
+ const string expectedMessage = "Het aandeel van de ondergrondschematisatie in het stochastische ondergrondmodel" +
+ " moet in het bereik [0,0, 1,0] liggen.";
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, expectedMessage);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [TestCase(0.5)]
+ [TestCase(-0.5)]
+ [TestCase(-0.2)]
+ [TestCase(0.2)]
+ public void AddProbability_ProbabilityToAddResultsValidProbability_ReturnsExpectedProbability(double probabilityToAdd)
+ {
+ // Setup
+ const double probability = 0.5;
+
+ var mocks = new MockRepository();
+ var soilProfile = mocks.Stub();
+ mocks.ReplayAll();
+
+ var profile = new MacroStabilityInwardsStochasticSoilProfile(probability, soilProfile);
+
+ // Call
+ profile.AddProbability(probabilityToAdd);
+
+ // Assert
+ Assert.AreEqual(probability + probabilityToAdd, profile.Probability, 1e-6);
+ mocks.VerifyAll();
+ }
+
+ [Test]
public void Update_WithNullProfile_ThrowsArgumentNullException()
{
// Setup
Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/SoilProfile/PipingStochasticSoilProfile.cs
===================================================================
diff -u -ref905ca4d14236014d884b5658e18838b697eb01 -r6545e28fb366f9bfdf71e776a404e9ce256df182
--- Ringtoets/Piping/src/Ringtoets.Piping.Data/SoilProfile/PipingStochasticSoilProfile.cs (.../PipingStochasticSoilProfile.cs) (revision ef905ca4d14236014d884b5658e18838b697eb01)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Data/SoilProfile/PipingStochasticSoilProfile.cs (.../PipingStochasticSoilProfile.cs) (revision 6545e28fb366f9bfdf71e776a404e9ce256df182)
@@ -98,6 +98,19 @@
Probability = fromProfile.Probability;
}
+ ///
+ /// Updates the probability of the
+ /// by adding .
+ ///
+ /// The amount to increase the
+ /// with.
+ /// Thrown when the
+ /// is outside the range [0, 1].
+ public void AddProbability(double probabilityToAdd)
+ {
+ Probability += probabilityToAdd;
+ }
+
public override string ToString()
{
return SoilProfile.ToString();
Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/SoilProfile/PipingStochasticSoilProfileTest.cs
===================================================================
diff -u -r6cf604a94300560817de70fd42d09baa5b22c3a6 -r6545e28fb366f9bfdf71e776a404e9ce256df182
--- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/SoilProfile/PipingStochasticSoilProfileTest.cs (.../PipingStochasticSoilProfileTest.cs) (revision 6cf604a94300560817de70fd42d09baa5b22c3a6)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/SoilProfile/PipingStochasticSoilProfileTest.cs (.../PipingStochasticSoilProfileTest.cs) (revision 6545e28fb366f9bfdf71e776a404e9ce256df182)
@@ -84,6 +84,50 @@
}
[Test]
+ [SetCulture("nl-NL")]
+ [TestCase(-1)]
+ [TestCase(1)]
+ [TestCase(-0.51)]
+ [TestCase(0.51)]
+ [TestCase(double.NaN)]
+ public void AddProbability_ProbabilityToAddResultsInvalidProbability_ThrowsArgumentOutOfRangeException(double probabilityToAdd)
+ {
+ // Setup
+ const double probability = 0.5;
+
+ PipingSoilProfile profile = PipingSoilProfileTestFactory.CreatePipingSoilProfile();
+ var stochasticSoilProfile = new PipingStochasticSoilProfile(probability, profile);
+
+ // Call
+ TestDelegate test = () => stochasticSoilProfile.AddProbability(probabilityToAdd);
+
+ // Assert
+ const string expectedMessage = "Het aandeel van de ondergrondschematisatie in het stochastische ondergrondmodel" +
+ " moet in het bereik [0,0, 1,0] liggen.";
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, expectedMessage);
+ }
+
+ [Test]
+ [TestCase(0.5)]
+ [TestCase(-0.5)]
+ [TestCase(-0.2)]
+ [TestCase(0.2)]
+ public void AddProbability_ProbabilityToAddResultsValidProbability_ReturnsExpectedProbability(double probabilityToAdd)
+ {
+ // Setup
+ const double probability = 0.5;
+
+ PipingSoilProfile profile = PipingSoilProfileTestFactory.CreatePipingSoilProfile();
+ var stochasticSoilProfile = new PipingStochasticSoilProfile(probability, profile);
+
+ // Call
+ stochasticSoilProfile.AddProbability(probabilityToAdd);
+
+ // Assert
+ Assert.AreEqual(probability + probabilityToAdd, stochasticSoilProfile.Probability, 1e-6);
+ }
+
+ [Test]
public void Update_SoilProfileNull_ThrowsArgumentNullException()
{
// Setup