Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs =================================================================== diff -u -rc1a8483060230939462956b39133ea9fb074858a -rde2ec8c1edd63eff10e2bce318888b28d5042b35 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs (.../AssessmentSection.cs) (revision c1a8483060230939462956b39133ea9fb074858a) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs (.../AssessmentSection.cs) (revision de2ec8c1edd63eff10e2bce318888b28d5042b35) @@ -80,6 +80,7 @@ private StrengthStabilityLengthwiseConstructionFailureMechanism strengthStabilityLengthwiseConstruction; private DuneErosionFailureMechanism duneErosion; private TechnicalInnovationFailureMechanism technicalInnovation; + private RoundedDouble failureProbabilityMarginFactor; /// /// Initializes a new instance of the class. @@ -133,7 +134,7 @@ technicalInnovation = new TechnicalInnovationFailureMechanism(); OtherFailureMechanism = new OtherFailureMechanism(); - FailureProbabilityMarginFactor = new RoundedDouble(2, 0.58); + failureProbabilityMarginFactor = new RoundedDouble(2); FailureMechanismContribution = new FailureMechanismContribution(lowerLimitNorm, signalingNorm); ChangeComposition(composition); @@ -471,7 +472,17 @@ /// /// Gets the failure probability margin factor. /// - public RoundedDouble FailureProbabilityMarginFactor { get; } + public RoundedDouble FailureProbabilityMarginFactor + { + get + { + return failureProbabilityMarginFactor; + } + private set + { + failureProbabilityMarginFactor = value.ToPrecision(failureProbabilityMarginFactor.NumberOfDecimalPlaces); + } + } public IObservableEnumerable WaterLevelCalculationsForFactorizedSignalingNorm { @@ -656,6 +667,7 @@ StabilityPointStructures.Contribution = 2; DuneErosion.Contribution = 0; OtherFailureMechanism.Contribution = 30; + FailureProbabilityMarginFactor = (RoundedDouble) 0.58; break; case AssessmentSectionComposition.Dune: Piping.Contribution = 0; @@ -671,6 +683,7 @@ StabilityPointStructures.Contribution = 0; DuneErosion.Contribution = 70; OtherFailureMechanism.Contribution = 30; + FailureProbabilityMarginFactor = (RoundedDouble) 0; break; case AssessmentSectionComposition.DikeAndDune: Piping.Contribution = 24; @@ -686,6 +699,7 @@ StabilityPointStructures.Contribution = 2; DuneErosion.Contribution = 10; OtherFailureMechanism.Contribution = 20; + FailureProbabilityMarginFactor = (RoundedDouble) 0.58; break; default: throw new NotSupportedException(); Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs =================================================================== diff -u -rc1a8483060230939462956b39133ea9fb074858a -rde2ec8c1edd63eff10e2bce318888b28d5042b35 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision c1a8483060230939462956b39133ea9fb074858a) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision de2ec8c1edd63eff10e2bce318888b28d5042b35) @@ -119,8 +119,7 @@ CollectionAssert.IsEmpty(assessmentSection.WaveHeightCalculationsForLowerLimitNorm); CollectionAssert.IsEmpty(assessmentSection.WaveHeightCalculationsForFactorizedLowerLimitNorm); - Assert.AreEqual(0.58, assessmentSection.FailureProbabilityMarginFactor.Value); - Assert.AreEqual(2, assessmentSection.FailureProbabilityMarginFactor.NumberOfDecimalPlaces); + AssertFailureProbabilityMarginFactor(composition, assessmentSection); } [Test] @@ -350,6 +349,7 @@ Assert.AreEqual(relevancies[8], assessmentSection.StabilityPointStructures.IsRelevant); Assert.AreEqual(relevancies[9], assessmentSection.PipingStructure.IsRelevant); Assert.AreEqual(relevancies[10], assessmentSection.DuneErosion.IsRelevant); + AssertFailureProbabilityMarginFactor(composition, assessmentSection); } [Test] @@ -471,7 +471,7 @@ var assessmentSection = new AssessmentSection(random.NextEnumValue()); var hydraulicBoundaryLocation1 = new TestHydraulicBoundaryLocation(); var hydraulicBoundaryLocation2 = new TestHydraulicBoundaryLocation(); - var hydraulicBoundaryLocations = new[] + TestHydraulicBoundaryLocation[] hydraulicBoundaryLocations = { hydraulicBoundaryLocation1, hydraulicBoundaryLocation2 @@ -521,22 +521,18 @@ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, "De contributie van het nieuwe toetsspoor moet gelijk zijn aan het oude toetsspoor."); } - private static IFailureMechanism[] GetExpectedContributingFailureMechanisms(AssessmentSection section) + private static void AssertFailureProbabilityMarginFactor(AssessmentSectionComposition composition, AssessmentSection assessmentSection) { - return new IFailureMechanism[] + Assert.AreEqual(2, assessmentSection.FailureProbabilityMarginFactor.NumberOfDecimalPlaces); + + if (composition == AssessmentSectionComposition.Dune) { - section.Piping, - section.GrassCoverErosionInwards, - section.MacroStabilityInwards, - section.StabilityStoneCover, - section.WaveImpactAsphaltCover, - section.GrassCoverErosionOutwards, - section.HeightStructures, - section.ClosingStructures, - section.PipingStructure, - section.StabilityPointStructures, - section.DuneErosion - }; + Assert.AreEqual(0, assessmentSection.FailureProbabilityMarginFactor.Value); + } + else + { + Assert.AreEqual(0.58, assessmentSection.FailureProbabilityMarginFactor.Value); + } } private static void AssertExpectedContributions(AssessmentSectionComposition composition, AssessmentSection assessmentSection)