Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/AssessmentSectionCreateExtensions.cs =================================================================== diff -u -rdd37de7257c4586b66f6e3d49295cd9b295ca5ec -r2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/AssessmentSectionCreateExtensions.cs (.../AssessmentSectionCreateExtensions.cs) (revision dd37de7257c4586b66f6e3d49295cd9b295ca5ec) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/AssessmentSectionCreateExtensions.cs (.../AssessmentSectionCreateExtensions.cs) (revision 2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822) @@ -72,7 +72,7 @@ Name = section.Name.DeepClone(), Composition = (byte) section.Composition, Comments = section.Comments.Body.DeepClone(), - Norm = section.FailureMechanismContribution.Norm, + Norm = section.FailureMechanismContribution.LowerLimitNorm, Order = order }; Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/AssessmentSectionEntityReadExtensions.cs =================================================================== diff -u -r99f5c8f535c01eb9882a703e09572ab4b5fe3d97 -r2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/AssessmentSectionEntityReadExtensions.cs (.../AssessmentSectionEntityReadExtensions.cs) (revision 99f5c8f535c01eb9882a703e09572ab4b5fe3d97) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/AssessmentSectionEntityReadExtensions.cs (.../AssessmentSectionEntityReadExtensions.cs) (revision 2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822) @@ -60,7 +60,8 @@ }, FailureMechanismContribution = { - Norm = entity.Norm + LowerLimitNorm = entity.Norm, + SignalingNorm = entity.Norm } }; Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/AssessmentSectionCreateExtensionsTest.cs =================================================================== diff -u -rfe90a6d174a01975381e6cda55ed1f7f4e831a51 -r2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/AssessmentSectionCreateExtensionsTest.cs (.../AssessmentSectionCreateExtensionsTest.cs) (revision fe90a6d174a01975381e6cda55ed1f7f4e831a51) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/AssessmentSectionCreateExtensionsTest.cs (.../AssessmentSectionCreateExtensionsTest.cs) (revision 2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822) @@ -80,7 +80,7 @@ }, FailureMechanismContribution = { - Norm = norm + LowerLimitNorm = norm }, BackgroundData = { Index: Ringtoets/Common/src/Ringtoets.Common.Data/Contribution/FailureMechanismContribution.cs =================================================================== diff -u -rd585b18f2f4d58d6e64f161a50318116de26fce6 -r2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822 --- Ringtoets/Common/src/Ringtoets.Common.Data/Contribution/FailureMechanismContribution.cs (.../FailureMechanismContribution.cs) (revision d585b18f2f4d58d6e64f161a50318116de26fce6) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Contribution/FailureMechanismContribution.cs (.../FailureMechanismContribution.cs) (revision 2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822) @@ -65,7 +65,7 @@ Norm = defaultNorm; signalingNorm = defaultNorm; lowerLimitNorm = defaultNorm; - NormType = NormType.LowerLimit; + NormativeNorm = NormType.LowerLimit; UpdateContributions(failureMechanisms, otherContribution); } @@ -125,15 +125,17 @@ } /// - /// Gets or sets the norm which has been defined on the assessment section. + /// Gets the norm which has been defined on the assessment section. /// /// Thrown when the new value is not in /// the interval [0.000001, 0.1] or is . public double Norm { get { - return norm; + return NormativeNorm == NormType.LowerLimit + ? LowerLimitNorm + : SignalingNorm; } set { @@ -147,7 +149,7 @@ /// /// Gets or sets the norm type which has been defined on the assessment section. /// - public NormType NormType { get; set; } + public NormType NormativeNorm { get; set; } /// /// Gets the distribution of failure mechanism contributions. Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionTest.cs =================================================================== diff -u -rd585b18f2f4d58d6e64f161a50318116de26fce6 -r2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionTest.cs (.../FailureMechanismContributionTest.cs) (revision d585b18f2f4d58d6e64f161a50318116de26fce6) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Contribution/FailureMechanismContributionTest.cs (.../FailureMechanismContributionTest.cs) (revision 2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822) @@ -115,7 +115,7 @@ Assert.AreEqual(norm, result.Norm); Assert.AreEqual(norm, result.SignalingNorm); Assert.AreEqual(norm, result.LowerLimitNorm); - Assert.AreEqual(NormType.LowerLimit, result.NormType); + Assert.AreEqual(NormType.LowerLimit, result.NormativeNorm); } [Test] @@ -438,6 +438,30 @@ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, expectedMessage); } + + [Test] + [TestCase(NormType.Signaling, 0.01)] + [TestCase(NormType.LowerLimit, 0.1)] + public void Norm_DifferentNormativeNormTypes_ReturnNorm(NormType normType, double expectedNorm) + { + // Setup + var random = new Random(21); + int contribution = random.Next(1, 100); + var failureMechanismContribution = new FailureMechanismContribution(Enumerable.Empty(), contribution) + { + LowerLimitNorm = 0.1, + SignalingNorm = 0.01, + NormativeNorm = normType + }; + + // Call + double norm = failureMechanismContribution.Norm; + + // Assert + Assert.AreEqual(expectedNorm, norm); + + } + private static void AssertFailureProbabilitySpace(double newOtherContribution, double norm, double probabilitySpace) { double expectedProbabilitySpace = 100.0 / (norm * newOtherContribution); Index: Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/AssessmentSectionHelper.cs =================================================================== diff -u -r7a9c98886fd29efbea53f5be1b0be96c70ffa106 -r2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822 --- Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/AssessmentSectionHelper.cs (.../AssessmentSectionHelper.cs) (revision 7a9c98886fd29efbea53f5be1b0be96c70ffa106) +++ Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/AssessmentSectionHelper.cs (.../AssessmentSectionHelper.cs) (revision 2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822) @@ -87,7 +87,7 @@ assessmentSection.Stub(a => a.FailureMechanismContribution).Return(new FailureMechanismContribution( failureMechanisms, 1) { - Norm = 0.1 + LowerLimitNorm = 0.1 }); assessmentSection.Stub(a => a.GetFailureMechanisms()).Return(failureMechanisms); Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Data.Test/DuneErosionFailureMechanismExtensionsTest.cs =================================================================== diff -u -r7a9c98886fd29efbea53f5be1b0be96c70ffa106 -r2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822 --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Data.Test/DuneErosionFailureMechanismExtensionsTest.cs (.../DuneErosionFailureMechanismExtensionsTest.cs) (revision 7a9c98886fd29efbea53f5be1b0be96c70ffa106) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Data.Test/DuneErosionFailureMechanismExtensionsTest.cs (.../DuneErosionFailureMechanismExtensionsTest.cs) (revision 2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822) @@ -64,7 +64,7 @@ failureMechanism }, 1) { - Norm = norm + LowerLimitNorm = norm }); mocks.ReplayAll(); Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/FailureMechanismContributionProperties.cs =================================================================== diff -u -rcdf0db780e289f3d6fc5a2a6db00f26517a3aec4 -r2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/FailureMechanismContributionProperties.cs (.../FailureMechanismContributionProperties.cs) (revision cdf0db780e289f3d6fc5a2a6db00f26517a3aec4) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/PropertyClasses/FailureMechanismContributionProperties.cs (.../FailureMechanismContributionProperties.cs) (revision 2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822) @@ -156,11 +156,11 @@ [ResourcesDisplayName(typeof(Resources), nameof(Resources.NormType_DisplayName))] [ResourcesDescription(typeof(Resources), nameof(Resources.NormType_Description))] [TypeConverter(typeof(EnumTypeConverter))] - public NormType NormType + public NormType NormativeNorm { get { - return data.NormType; + return data.NormativeNorm; } } } Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PropertyClasses/FailureMechanismContributionPropertiesIntegrationTest.cs =================================================================== diff -u -r5b300c761d0d8b3748f2ebacb051ff695293e4c6 -r2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PropertyClasses/FailureMechanismContributionPropertiesIntegrationTest.cs (.../FailureMechanismContributionPropertiesIntegrationTest.cs) (revision 5b300c761d0d8b3748f2ebacb051ff695293e4c6) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PropertyClasses/FailureMechanismContributionPropertiesIntegrationTest.cs (.../FailureMechanismContributionPropertiesIntegrationTest.cs) (revision 2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822) @@ -173,7 +173,7 @@ Assert.AreEqual(string.Format(messageCalculationsremoved, numberOfCalculations), messages[0]); Assert.AreEqual(messageAllHydraulicBoundaryLocationOutputCleared, messages[1]); }); - Assert.AreEqual(1.0 / newReturnPeriod, failureMechanismContribution.Norm); + Assert.AreEqual(1.0 / 30000, failureMechanismContribution.Norm); Assert.IsFalse(hydraulicBoundaryLocation.WaveHeightCalculation.HasOutput); Assert.IsFalse(hydraulicBoundaryLocation.DesignWaterLevelCalculation.HasOutput); Assert.IsFalse(grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeightCalculation.HasOutput); @@ -257,7 +257,7 @@ // Assert TestHelper.AssertLogMessageIsGenerated(call, messageAllHydraulicBoundaryLocationOutputCleared, 1); - Assert.AreEqual(1.0 / newReturnPeriod, failureMechanismContribution.Norm); + Assert.AreEqual(1.0 / 30000, failureMechanismContribution.Norm); Assert.IsNaN(hydraulicBoundaryLocation.WaveHeight); Assert.IsNaN(hydraulicBoundaryLocation.DesignWaterLevel); @@ -363,7 +363,7 @@ numberOfCalculations); TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); - Assert.AreEqual(1.0 / newReturnPeriod, failureMechanismContribution.Norm); + Assert.AreEqual(1.0 / 30000, failureMechanismContribution.Norm); Assert.IsNull(pipingCalculation.Output); Assert.IsNull(pipingCalculation.SemiProbabilisticOutput); Assert.IsNull(grassCoverErosionInwardsCalculation.Output); @@ -462,7 +462,7 @@ numberOfCalculations); TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); - Assert.AreEqual(1.0 / newReturnPeriod, failureMechanismContribution.Norm); + Assert.AreEqual(1.0 / 30000, failureMechanismContribution.Norm); Assert.IsNull(pipingCalculation.Output); Assert.IsNull(pipingCalculation.SemiProbabilisticOutput); Assert.IsNull(grassCoverErosionInwardsCalculation.Output); @@ -531,7 +531,7 @@ // Assert TestHelper.AssertLogMessagesCount(call, 0); - Assert.AreEqual(1.0 / newReturnPeriod, failureMechanismContribution.Norm); + Assert.AreEqual(1.0 / 30000, failureMechanismContribution.Norm); mockRepository.VerifyAll(); // No update observer expected. } @@ -574,7 +574,7 @@ // Assert TestHelper.AssertLogMessagesCount(call, 0); - Assert.AreEqual(1.0 / newReturnPeriod, failureMechanismContribution.Norm); + Assert.AreEqual(1.0 / 30000, failureMechanismContribution.Norm); mockRepository.VerifyAll(); } } Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PropertyClasses/FailureMechanismContributionPropertiesTest.cs =================================================================== diff -u -rcdf0db780e289f3d6fc5a2a6db00f26517a3aec4 -r2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PropertyClasses/FailureMechanismContributionPropertiesTest.cs (.../FailureMechanismContributionPropertiesTest.cs) (revision cdf0db780e289f3d6fc5a2a6db00f26517a3aec4) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/PropertyClasses/FailureMechanismContributionPropertiesTest.cs (.../FailureMechanismContributionPropertiesTest.cs) (revision 2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822) @@ -196,9 +196,9 @@ "Overstromingskans van het dijktraject waarvan overschrijding gemeld moet worden aan de Minister van I en M.", true); - PropertyDescriptor normTypeProperty = dynamicProperties[4]; - Assert.IsInstanceOf(normTypeProperty.Converter); - PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(normTypeProperty, + PropertyDescriptor normativeNormProperty = dynamicProperties[4]; + Assert.IsInstanceOf(normativeNormProperty.Converter); + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(normativeNormProperty, expectedCategory, "Norm van het dijktraject", "De kans die wordt gebruikt als de norm van het dijktraject.", @@ -233,7 +233,7 @@ Assert.AreEqual(assessmentSectionComposition, properties.AssessmentSectionComposition); Assert.AreEqual(expectedLowerLimitNorm, properties.LowerLimitNorm); Assert.AreEqual(expectedSignalingNorm, properties.SignalingNorm); - Assert.AreEqual(contribution.NormType, properties.NormType); + Assert.AreEqual(contribution.NormativeNorm, properties.NormativeNorm); mocks.VerifyAll(); } @@ -274,8 +274,8 @@ properties.ReturnPeriod = newReturnPeriod; // Then - Assert.AreEqual(newReturnPeriod, properties.ReturnPeriod); - Assert.AreEqual(1.0 / newReturnPeriod, failureMechanismContribution.Norm); + Assert.AreEqual(30000, properties.ReturnPeriod); + Assert.AreEqual(1.0 / 30000, failureMechanismContribution.Norm); mocks.VerifyAll(); } Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs =================================================================== diff -u -r1bbf51443c907b5f202e80764fa05f2e7f842c04 -r2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision 1bbf51443c907b5f202e80764fa05f2e7f842c04) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Views/FailureMechanismContributionViewTest.cs (.../FailureMechanismContributionViewTest.cs) (revision 2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822) @@ -251,15 +251,15 @@ someMechanism }, random.Next(0, 100)) { - Norm = 1.0 / initialReturnPeriod + LowerLimitNorm = 1.0 / initialReturnPeriod }; var newContribution = new FailureMechanismContribution(new[] { someMechanism }, random.Next(0, 100)) { - Norm = 1.0 / newReturnPeriod + LowerLimitNorm = 1.0 / newReturnPeriod }; using (var distributionView = new FailureMechanismContributionView(viewCommands) @@ -307,7 +307,7 @@ someMechanism }, random.Next(0, 100)) { - Norm = 1.0 / initialReturnPeriod + LowerLimitNorm = 1.0 / initialReturnPeriod }; using (var distributionView = new FailureMechanismContributionView(viewCommands) @@ -324,7 +324,7 @@ Assert.AreEqual(initialReturnPeriodLabelText, returnPeriodLabel.Properties.Text); // Call - contribution.Norm = 1.0 / newReturnPeriod; + contribution.LowerLimitNorm = 1.0 / newReturnPeriod; contribution.NotifyObservers(); // Assert Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Handlers/FailureMechanismContributionNormChangeHandlerTest.cs =================================================================== diff -u -r5b300c761d0d8b3748f2ebacb051ff695293e4c6 -r2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Handlers/FailureMechanismContributionNormChangeHandlerTest.cs (.../FailureMechanismContributionNormChangeHandlerTest.cs) (revision 5b300c761d0d8b3748f2ebacb051ff695293e4c6) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Handlers/FailureMechanismContributionNormChangeHandlerTest.cs (.../FailureMechanismContributionNormChangeHandlerTest.cs) (revision 2e265dc8a3c902ebdfdcdf0f1071f9c3c872d822) @@ -149,7 +149,7 @@ const double norm = 1.0 / 1000; // Call - Action call = () => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => assessmentSection.FailureMechanismContribution.Norm = norm); + Action call = () => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => assessmentSection.FailureMechanismContribution.LowerLimitNorm = norm); // Assert var expectedMessages = new[] @@ -159,7 +159,7 @@ }; TestHelper.AssertLogMessagesAreGenerated(call, expectedMessages, 2); - Assert.AreEqual(norm, assessmentSection.FailureMechanismContribution.Norm); + Assert.AreEqual(norm, assessmentSection.FailureMechanismContribution.LowerLimitNorm); CollectionAssert.IsEmpty(assessmentSection.GetFailureMechanisms().SelectMany(fm => fm.Calculations).Where(c => c.HasOutput), "There should be no calculations with output."); @@ -209,12 +209,12 @@ const double newNormValue = 0.01234; // Call - Action call = () => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => assessmentSection.FailureMechanismContribution.Norm = newNormValue); + Action call = () => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => assessmentSection.FailureMechanismContribution.LowerLimitNorm = newNormValue); // Assert TestHelper.AssertLogMessageIsGenerated(call, "Alle berekende resultaten voor alle hydraulische randvoorwaardenlocaties zijn verwijderd.", 1); - Assert.AreEqual(newNormValue, assessmentSection.FailureMechanismContribution.Norm); + Assert.AreEqual(newNormValue, assessmentSection.FailureMechanismContribution.LowerLimitNorm); foreach (HydraulicBoundaryLocation location in assessmentSection.HydraulicBoundaryDatabase.Locations .Concat(assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations)) @@ -251,12 +251,12 @@ const double norm = 1.0 / 1000; // Call - Action call = () => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => assessmentSection.FailureMechanismContribution.Norm = norm); + Action call = () => affectedObjects = handler.SetPropertyValueAfterConfirmation(() => assessmentSection.FailureMechanismContribution.LowerLimitNorm = norm); // Assert TestHelper.AssertLogMessageIsGenerated(call, "De resultaten van 36 berekeningen zijn verwijderd.", 1); - Assert.AreEqual(norm, assessmentSection.FailureMechanismContribution.Norm); + Assert.AreEqual(norm, assessmentSection.FailureMechanismContribution.LowerLimitNorm); CollectionAssert.IsEmpty(assessmentSection.GetFailureMechanisms().SelectMany(fm => fm.Calculations).Where(c => c.HasOutput), "There should be no calculations with output.");