Index: Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/PropertyClasses/GrassCoverErosionInwardsInputContextProperties.cs =================================================================== diff -u -rc24cb183310aeafb01a1b9d81a57e1bc898cbeb6 -rfc84d833b7246c6f04ce51a9b12c59f5d99eaf50 --- Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/PropertyClasses/GrassCoverErosionInwardsInputContextProperties.cs (.../GrassCoverErosionInwardsInputContextProperties.cs) (revision c24cb183310aeafb01a1b9d81a57e1bc898cbeb6) +++ Riskeer/GrassCoverErosionInwards/src/Riskeer.GrassCoverErosionInwards.Forms/PropertyClasses/GrassCoverErosionInwardsInputContextProperties.cs (.../GrassCoverErosionInwardsInputContextProperties.cs) (revision fc84d833b7246c6f04ce51a9b12c59f5d99eaf50) @@ -33,6 +33,7 @@ using Riskeer.Common.Forms.Helpers; using Riskeer.Common.Forms.PresentationObjects; using Riskeer.Common.Forms.PropertyClasses; +using Riskeer.Common.Forms.TypeConverters; using Riskeer.Common.Forms.UITypeEditors; using Riskeer.GrassCoverErosionInwards.Forms.PresentationObjects; using Riskeer.GrassCoverErosionInwards.Forms.Properties; @@ -58,9 +59,11 @@ private const int criticalFlowRatePropertyIndex = 9; private const int shouldOvertoppingOutputIllustrationPointsBeCalculatedPropertyIndex = 10; private const int shouldDikeHeightBeCalculatedPropertyIndex = 11; - private const int shouldDikeHeightIllustrationPointsBeCalculatedPropertyIndex = 12; - private const int shouldOvertoppingRateBeCalculatedPropertyIndex = 13; - private const int shouldOvertoppingRateIllustrationPointsBeCalculatedPropertyIndex = 14; + private const int dikeHeightReliabilityIndexPropertyIndex = 12; + private const int shouldDikeHeightIllustrationPointsBeCalculatedPropertyIndex = 13; + private const int shouldOvertoppingRateBeCalculatedPropertyIndex = 14; + private const int overtoppingRateReliabilityIndexPropertyIndex = 15; + private const int shouldOvertoppingRateIllustrationPointsBeCalculatedPropertyIndex = 16; private readonly IObservablePropertyChangeHandler propertyChangeHandler; @@ -235,6 +238,20 @@ } } + [PropertyOrder(dikeHeightReliabilityIndexPropertyIndex)] + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + [ResourcesCategory(typeof(Resources), nameof(Resources.Categories_DikeHeight), 5, 6)] + [DisplayName("Doelkans (1/jaar)")] + [Description("Doelkans (1/jaar)")] + public double DikeHeightReliabilityIndex + { + get => data.WrappedData.DikeHeightReliabilityIndex; + set + { + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.DikeHeightReliabilityIndex = value, propertyChangeHandler); + } + } + [DynamicReadOnly] [PropertyOrder(shouldDikeHeightIllustrationPointsBeCalculatedPropertyIndex)] [ResourcesCategory(typeof(Resources), nameof(Resources.Categories_DikeHeight), 5, 6)] @@ -262,6 +279,20 @@ PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.ShouldOvertoppingRateBeCalculated = value, propertyChangeHandler); } } + + [PropertyOrder(overtoppingRateReliabilityIndexPropertyIndex)] + [TypeConverter(typeof(NoProbabilityValueDoubleConverter))] + [ResourcesCategory(typeof(Resources), nameof(Resources.Categories_OvertoppingRate), 6, 6)] + [DisplayName("Doelkans (1/jaar)")] + [Description("Doelkans (1/jaar)")] + public double OvertoppingRateReliabilityIndex + { + get => data.WrappedData.OvertoppingRateReliabilityIndex; + set + { + PropertyChangeHelper.ChangePropertyAndNotify(() => data.WrappedData.OvertoppingRateReliabilityIndex = value, propertyChangeHandler); + } + } [DynamicReadOnly] [PropertyOrder(shouldOvertoppingRateIllustrationPointsBeCalculatedPropertyIndex)] Index: Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/PropertyClasses/GrassCoverErosionInwardsInputContextPropertiesTest.cs =================================================================== diff -u -rc24cb183310aeafb01a1b9d81a57e1bc898cbeb6 -rfc84d833b7246c6f04ce51a9b12c59f5d99eaf50 --- Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/PropertyClasses/GrassCoverErosionInwardsInputContextPropertiesTest.cs (.../GrassCoverErosionInwardsInputContextPropertiesTest.cs) (revision c24cb183310aeafb01a1b9d81a57e1bc898cbeb6) +++ Riskeer/GrassCoverErosionInwards/test/Riskeer.GrassCoverErosionInwards.Forms.Test/PropertyClasses/GrassCoverErosionInwardsInputContextPropertiesTest.cs (.../GrassCoverErosionInwardsInputContextPropertiesTest.cs) (revision fc84d833b7246c6f04ce51a9b12c59f5d99eaf50) @@ -38,6 +38,7 @@ using Riskeer.Common.Forms.PresentationObjects; using Riskeer.Common.Forms.PropertyClasses; using Riskeer.Common.Forms.TestUtil; +using Riskeer.Common.Forms.TypeConverters; using Riskeer.Common.Forms.UITypeEditors; using Riskeer.GrassCoverErosionInwards.Data; using Riskeer.GrassCoverErosionInwards.Forms.PresentationObjects; @@ -59,9 +60,11 @@ private const int criticalFlowRatePropertyIndex = 8; private const int shouldOvertoppingOutputIllustrationPointsBeCalculatedPropertyIndex = 9; private const int shouldDikeHeightBeCalculatedPropertyIndex = 10; - private const int shouldDikeHeightIllustrationPointsBeCalculatedPropertyIndex = 11; - private const int shouldOvertoppingRateBeCalculatedPropertyIndex = 12; - private const int shouldOvertoppingRateIllustrationPointsBeCalculatedPropertyIndex = 13; + private const int dikeHeightReliabilityIndexPropertyIndex = 11; + private const int shouldDikeHeightIllustrationPointsBeCalculatedPropertyIndex = 12; + private const int shouldOvertoppingRateBeCalculatedPropertyIndex = 13; + private const int overtoppingRateReliabilityIndexPropertyIndex = 14; + private const int shouldOvertoppingRateIllustrationPointsBeCalculatedPropertyIndex = 15; private MockRepository mockRepository; private IObservablePropertyChangeHandler handler; @@ -138,6 +141,11 @@ Assert.IsInstanceOf>(properties); Assert.IsInstanceOf(properties); Assert.AreSame(context, properties.Data); + + TestHelper.AssertTypeConverter( + nameof(GrassCoverErosionInwardsInputContextProperties.DikeHeightReliabilityIndex)); + TestHelper.AssertTypeConverter( + nameof(GrassCoverErosionInwardsInputContextProperties.OvertoppingRateReliabilityIndex)); } [Test] @@ -167,11 +175,13 @@ Assert.IsNaN(properties.DikeHeight); Assert.AreEqual(input.CriticalFlowRate.Mean, properties.CriticalFlowRate.Mean); Assert.AreEqual(input.CriticalFlowRate.StandardDeviation, properties.CriticalFlowRate.StandardDeviation); - Assert.IsFalse(properties.ShouldOvertoppingOutputIllustrationPointsBeCalculated); + Assert.AreEqual(input.ShouldOvertoppingOutputIllustrationPointsBeCalculated, properties.ShouldOvertoppingOutputIllustrationPointsBeCalculated); Assert.AreEqual(input.ShouldDikeHeightBeCalculated, properties.ShouldDikeHeightBeCalculated); - Assert.IsFalse(properties.ShouldDikeHeightIllustrationPointsBeCalculated); + Assert.AreEqual(input.DikeHeightReliabilityIndex, properties.DikeHeightReliabilityIndex); + Assert.AreEqual(input.ShouldDikeHeightIllustrationPointsBeCalculated, properties.ShouldDikeHeightIllustrationPointsBeCalculated); Assert.AreEqual(input.ShouldOvertoppingRateBeCalculated, properties.ShouldOvertoppingRateBeCalculated); - Assert.IsFalse(properties.ShouldOvertoppingRateIllustrationPointsBeCalculated); + Assert.AreEqual(input.OvertoppingRateReliabilityIndex, properties.OvertoppingRateReliabilityIndex); + Assert.AreEqual(input.ShouldOvertoppingRateIllustrationPointsBeCalculated, properties.ShouldOvertoppingRateIllustrationPointsBeCalculated); mockRepository.VerifyAll(); } @@ -207,11 +217,13 @@ Assert.AreEqual(0.0, properties.DikeHeight.Value); Assert.AreEqual(input.CriticalFlowRate.Mean, properties.CriticalFlowRate.Mean); Assert.AreEqual(input.CriticalFlowRate.StandardDeviation, properties.CriticalFlowRate.StandardDeviation); - Assert.IsFalse(properties.ShouldOvertoppingOutputIllustrationPointsBeCalculated); + Assert.AreEqual(input.ShouldOvertoppingOutputIllustrationPointsBeCalculated, properties.ShouldOvertoppingOutputIllustrationPointsBeCalculated); Assert.AreEqual(input.ShouldDikeHeightBeCalculated, properties.ShouldDikeHeightBeCalculated); - Assert.IsFalse(properties.ShouldDikeHeightIllustrationPointsBeCalculated); + Assert.AreEqual(input.DikeHeightReliabilityIndex, properties.DikeHeightReliabilityIndex); + Assert.AreEqual(input.ShouldDikeHeightIllustrationPointsBeCalculated, properties.ShouldDikeHeightIllustrationPointsBeCalculated); Assert.AreEqual(input.ShouldOvertoppingRateBeCalculated, properties.ShouldOvertoppingRateBeCalculated); - Assert.IsFalse(properties.ShouldOvertoppingRateIllustrationPointsBeCalculated); + Assert.AreEqual(input.OvertoppingRateReliabilityIndex, properties.OvertoppingRateReliabilityIndex); + Assert.AreEqual(input.ShouldOvertoppingRateIllustrationPointsBeCalculated, properties.ShouldOvertoppingRateIllustrationPointsBeCalculated); mockRepository.VerifyAll(); } @@ -247,11 +259,25 @@ } [Test] + public void DikeHeightReliabilityIndex_Always_InputChangedAndObservablesNotified() + { + double dikeHeightReliabilityIndex = new Random(21).NextDouble(); + SetPropertyAndVerifyNotificationsAndOutput(properties => properties.DikeHeightReliabilityIndex = dikeHeightReliabilityIndex); + } + + [Test] public void ShouldOvertoppingRateBeCalculated_Always_InputChangedAndObservablesNotified() { bool shouldOvertoppingRateBeCalculated = new Random(21).NextBoolean(); SetPropertyAndVerifyNotificationsAndOutput(properties => properties.ShouldOvertoppingRateBeCalculated = shouldOvertoppingRateBeCalculated); } + + [Test] + public void OvertoppingRateReliabilityIndex_Always_InputChangedAndObservablesNotified() + { + double overtoppingRateReliabilityIndex = new Random(21).NextDouble(); + SetPropertyAndVerifyNotificationsAndOutput(properties => properties.OvertoppingRateReliabilityIndex = overtoppingRateReliabilityIndex); + } [Test] public void SelectedHydraulicBoundaryLocation_Always_InputChangedAndObservablesNotified() @@ -653,7 +679,7 @@ const string overtoppingRateCategoryName = "Overslagdebiet"; PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); - Assert.AreEqual(14, dynamicProperties.Count); + Assert.AreEqual(16, dynamicProperties.Count); PropertyDescriptor hydraulicBoundaryLocationProperty = dynamicProperties[hydraulicBoundaryLocationPropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(hydraulicBoundaryLocationProperty, @@ -730,6 +756,11 @@ "HBN berekenen", "Geeft aan of ook het Hydraulisch Belasting Niveau (HBN) moet worden berekend."); + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(dynamicProperties[dikeHeightReliabilityIndexPropertyIndex], + dikeHeightCategoryName, + "Doelkans (1/jaar)", + "Doelkans (1/jaar)"); + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(dynamicProperties[shouldDikeHeightIllustrationPointsBeCalculatedPropertyIndex], dikeHeightCategoryName, "Illustratiepunten inlezen ", @@ -740,6 +771,11 @@ overtoppingRateCategoryName, "Overslagdebiet berekenen", "Geeft aan of ook het overslagdebiet moet worden berekend."); + + PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(dynamicProperties[overtoppingRateReliabilityIndexPropertyIndex], + overtoppingRateCategoryName, + "Doelkans (1/jaar)", + "Doelkans (1/jaar)"); PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(dynamicProperties[shouldOvertoppingRateIllustrationPointsBeCalculatedPropertyIndex], overtoppingRateCategoryName,