Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Data.Test/HeightStructuresFailureMechanismSectionResultTest.cs =================================================================== diff -u -rbe5396964501c20d142d21dcf39a2a859bbcb472 -re5e23e07a418655a45382dd5cc01d537fc17dfa4 --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Data.Test/HeightStructuresFailureMechanismSectionResultTest.cs (.../HeightStructuresFailureMechanismSectionResultTest.cs) (revision be5396964501c20d142d21dcf39a2a859bbcb472) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Data.Test/HeightStructuresFailureMechanismSectionResultTest.cs (.../HeightStructuresFailureMechanismSectionResultTest.cs) (revision e5e23e07a418655a45382dd5cc01d537fc17dfa4) @@ -49,7 +49,7 @@ Assert.IsNaN(sectionResult.TailorMadeAssessmentProbability); Assert.AreSame(section, sectionResult.Section); Assert.IsFalse(sectionResult.UseManualAssemblyProbability); - Assert.AreEqual(double.NaN, sectionResult.ManualAssemblyProbability); + Assert.IsNaN(sectionResult.ManualAssemblyProbability); } [Test] Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructuresFailureMechanismSectionResult.cs =================================================================== diff -u -r3127db01c67e5b95c17a3acb25705e42acdb4c50 -re5e23e07a418655a45382dd5cc01d537fc17dfa4 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructuresFailureMechanismSectionResult.cs (.../StabilityPointStructuresFailureMechanismSectionResult.cs) (revision 3127db01c67e5b95c17a3acb25705e42acdb4c50) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Data/StabilityPointStructuresFailureMechanismSectionResult.cs (.../StabilityPointStructuresFailureMechanismSectionResult.cs) (revision e5e23e07a418655a45382dd5cc01d537fc17dfa4) @@ -35,6 +35,7 @@ public class StabilityPointStructuresFailureMechanismSectionResult : FailureMechanismSectionResult { private double tailorMadeAssessmentProbability; + private double manualAssemblyProbability; /// /// Initializes a new instance of . @@ -46,7 +47,8 @@ SimpleAssessmentResult = SimpleAssessmentResultValidityOnlyType.None; DetailedAssessmentResult = DetailedAssessmentResultType.Probability; TailorMadeAssessmentResult = TailorMadeAssessmentProbabilityCalculationResultType.None; - tailorMadeAssessmentProbability = double.NaN; + TailorMadeAssessmentProbability = double.NaN; + ManualAssemblyProbability = double.NaN; } /// @@ -90,5 +92,31 @@ tailorMadeAssessmentProbability = value; } } + + /// + /// Gets or sets the indicator whether the combined assembly + /// should be overwritten by . + /// + public bool UseManualAssemblyProbability { get; set; } + + /// + /// Gets or sets the manually selected assembly category group. + /// + /// Thrown when + /// is not in range [0,1]. + public double ManualAssemblyProbability + { + get + { + return manualAssemblyProbability; + } + set + { + ProbabilityHelper.ValidateProbability(value, null, + RingtoetsCommonDataResources.ArbitraryProbabilityFailureMechanismSectionResult_AssessmentProbability_Value_needs_to_be_in_Range_0_, + true); + manualAssemblyProbability = value; + } + } } } \ No newline at end of file Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/StabilityPointStructuresFailureMechanismSectionResultTest.cs =================================================================== diff -u -r3127db01c67e5b95c17a3acb25705e42acdb4c50 -re5e23e07a418655a45382dd5cc01d537fc17dfa4 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/StabilityPointStructuresFailureMechanismSectionResultTest.cs (.../StabilityPointStructuresFailureMechanismSectionResultTest.cs) (revision 3127db01c67e5b95c17a3acb25705e42acdb4c50) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/StabilityPointStructuresFailureMechanismSectionResultTest.cs (.../StabilityPointStructuresFailureMechanismSectionResultTest.cs) (revision e5e23e07a418655a45382dd5cc01d537fc17dfa4) @@ -48,6 +48,8 @@ Assert.AreEqual(TailorMadeAssessmentProbabilityCalculationResultType.None, sectionResult.TailorMadeAssessmentResult); Assert.IsNaN(sectionResult.TailorMadeAssessmentProbability); Assert.AreSame(section, sectionResult.Section); + Assert.IsFalse(sectionResult.UseManualAssemblyProbability); + Assert.IsNaN(sectionResult.ManualAssemblyProbability); } [Test] @@ -87,5 +89,46 @@ // Assert Assert.AreEqual(validValue, sectionResult.TailorMadeAssessmentProbability); } + + [Test] + [SetCulture("nl-NL")] + [TestCase(-20)] + [TestCase(-1e-6)] + [TestCase(1 + 1e-6)] + [TestCase(12)] + public void ManualAssemblyProbability_InvalidValue_ThrowsArgumentOutOfRangeException(double newValue) + { + // Setup + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new StabilityPointStructuresFailureMechanismSectionResult(section); + + // Call + TestDelegate test = () => result.ManualAssemblyProbability = newValue; + + // Assert + string message = Assert.Throws(test).Message; + const string expectedMessage = "De waarde voor de faalkans moet in het bereik [0,0, 1,0] liggen."; + Assert.AreEqual(expectedMessage, message); + } + + [Test] + [TestCase(0)] + [TestCase(1e-6)] + [TestCase(0.5)] + [TestCase(1 - 1e-6)] + [TestCase(1)] + [TestCase(double.NaN)] + public void ManualAssemblyProbability_ValidValue_NewValueSet(double newValue) + { + // Setup + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new StabilityPointStructuresFailureMechanismSectionResult(section); + + // Call + result.ManualAssemblyProbability = newValue; + + // Assert + Assert.AreEqual(newValue, result.ManualAssemblyProbability); + } } } \ No newline at end of file