Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/GeneralPipingInput.cs =================================================================== diff -u -r6173a5eb258ea7b50a5f4aac71d2448db9e211c3 -rc3a85c5842b82e538c80029f35ae3e7e58aadb1e --- Ringtoets/Piping/src/Ringtoets.Piping.Data/GeneralPipingInput.cs (.../GeneralPipingInput.cs) (revision 6173a5eb258ea7b50a5f4aac71d2448db9e211c3) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/GeneralPipingInput.cs (.../GeneralPipingInput.cs) (revision c3a85c5842b82e538c80029f35ae3e7e58aadb1e) @@ -56,7 +56,8 @@ /// Gets the volumetric weight of water. /// [kN/m³] /// - /// Thrown when value is set to double.NaN or a negative number. + /// Thrown when value + /// is set to or falls out of range [0, 20]. public RoundedDouble WaterVolumetricWeight { get @@ -67,9 +68,9 @@ { var newValue = value.ToPrecision(waterVolumetricWeight.NumberOfDecimalPlaces); - if (double.IsNaN(newValue) || newValue < 0) + if (double.IsNaN(newValue) || newValue < 0 || newValue > 20) { - throw new ArgumentException(Resources.GeneralPipingInput_WaterVolumetricWeight_must_be_positive_number); + throw new ArgumentOutOfRangeException("value", Resources.GeneralPipingInput_WaterVolumetricWeight_must_be_in_range_zero_to_twenty); } waterVolumetricWeight = newValue; Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/Properties/Resources.Designer.cs =================================================================== diff -u -r7d8579f17abe04611f9edd55afecb6b85605a04d -rc3a85c5842b82e538c80029f35ae3e7e58aadb1e --- Ringtoets/Piping/src/Ringtoets.Piping.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 7d8579f17abe04611f9edd55afecb6b85605a04d) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision c3a85c5842b82e538c80029f35ae3e7e58aadb1e) @@ -136,11 +136,11 @@ } /// - /// Looks up a localized string similar to De waarde moet een positief getal zijn.. + /// Looks up a localized string similar to De waarde moet binnen het bereik [0, 20] liggen.. /// - public static string GeneralPipingInput_WaterVolumetricWeight_must_be_positive_number { + public static string GeneralPipingInput_WaterVolumetricWeight_must_be_in_range_zero_to_twenty { get { - return ResourceManager.GetString("GeneralPipingInput_WaterVolumetricWeight_must_be_positive_number", resourceCulture); + return ResourceManager.GetString("GeneralPipingInput_WaterVolumetricWeight_must_be_in_range_zero_to_twenty", resourceCulture); } } Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/Properties/Resources.resx =================================================================== diff -u -r7d8579f17abe04611f9edd55afecb6b85605a04d -rc3a85c5842b82e538c80029f35ae3e7e58aadb1e --- Ringtoets/Piping/src/Ringtoets.Piping.Data/Properties/Resources.resx (.../Resources.resx) (revision 7d8579f17abe04611f9edd55afecb6b85605a04d) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/Properties/Resources.resx (.../Resources.resx) (revision c3a85c5842b82e538c80029f35ae3e7e58aadb1e) @@ -153,7 +153,7 @@ Het gespecificeerde punt moet op het profiel liggen (bereik [{0}, {1}]). - - De waarde moet een positief getal zijn. + + De waarde moet binnen het bereik [0, 20] liggen. \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingFailureMechanismContextProperties.cs =================================================================== diff -u -r6173a5eb258ea7b50a5f4aac71d2448db9e211c3 -rc3a85c5842b82e538c80029f35ae3e7e58aadb1e --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingFailureMechanismContextProperties.cs (.../PipingFailureMechanismContextProperties.cs) (revision 6173a5eb258ea7b50a5f4aac71d2448db9e211c3) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingFailureMechanismContextProperties.cs (.../PipingFailureMechanismContextProperties.cs) (revision c3a85c5842b82e538c80029f35ae3e7e58aadb1e) @@ -80,15 +80,15 @@ [ResourcesCategory(typeof(RingtoetsCommonFormsResources), "Categories_General")] [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_WaterVolumetricWeight_DisplayName")] [ResourcesDescription(typeof(Resources), "GeneralPipingInput_WaterVolumetricWeight_Description")] - public double WaterVolumetricWeight + public RoundedDouble WaterVolumetricWeight { get { return data.WrappedData.GeneralInput.WaterVolumetricWeight; } set { - data.WrappedData.GeneralInput.WaterVolumetricWeight = (RoundedDouble) value; + data.WrappedData.GeneralInput.WaterVolumetricWeight = value; data.WrappedData.NotifyObservers(); } } @@ -162,7 +162,7 @@ [ResourcesCategory(typeof(Resources), "Categories_Sellmeijer")] [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_SandParticlesVolumicWeight_DisplayName")] [ResourcesDescription(typeof(Resources), "GeneralPipingInput_SandParticlesVolumicWeight_Description")] - public double SandParticlesVolumicWeight + public RoundedDouble SandParticlesVolumicWeight { get { Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/GeneralPipingInputTest.cs =================================================================== diff -u -r6173a5eb258ea7b50a5f4aac71d2448db9e211c3 -rc3a85c5842b82e538c80029f35ae3e7e58aadb1e --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/GeneralPipingInputTest.cs (.../GeneralPipingInputTest.cs) (revision 6173a5eb258ea7b50a5f4aac71d2448db9e211c3) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/GeneralPipingInputTest.cs (.../GeneralPipingInputTest.cs) (revision c3a85c5842b82e538c80029f35ae3e7e58aadb1e) @@ -46,6 +46,7 @@ Assert.AreEqual(0.3, inputParameters.CriticalHeaveGradient); Assert.AreEqual(16.19, inputParameters.SandParticlesVolumicWeight, inputParameters.SandParticlesVolumicWeight.GetAccuracy()); + Assert.AreEqual(2, inputParameters.SandParticlesVolumicWeight.NumberOfDecimalPlaces); Assert.AreEqual(0.25, inputParameters.WhitesDragCoefficient); Assert.AreEqual(37, inputParameters.BeddingAngle); Assert.AreEqual(1.33e-6, inputParameters.WaterKinematicViscosity); @@ -56,8 +57,10 @@ [Test] [TestCase(double.NaN)] - [TestCase(-1)] + [TestCase(double.PositiveInfinity)] + [TestCase(double.NegativeInfinity)] [TestCase(-0.005)] + [TestCase(20.005)] public void WaterVolumetricWeight_SetInvalidValue_ThrowArgumentException(double newValue) { // Setup @@ -67,12 +70,13 @@ TestDelegate test = () => inputParameters.WaterVolumetricWeight = (RoundedDouble) newValue; // Assert - TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "De waarde moet een positief getal zijn."); + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "De waarde moet binnen het bereik [0, 20] liggen."); } [Test] - [TestCase(5.69)] + [TestCase(10.69)] [TestCase(-0.004)] + [TestCase(20.004)] public void WaterVolumetricWeight_SetValidValue_ValueSetAndSandParticlesVolumicWeightUpdated(double newValue) { // Setup Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingFailureMechanismContextPropertiesTest.cs =================================================================== diff -u -rd410393e45e21f206234c03e2f6842005d7aba88 -rc3a85c5842b82e538c80029f35ae3e7e58aadb1e --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingFailureMechanismContextPropertiesTest.cs (.../PipingFailureMechanismContextPropertiesTest.cs) (revision d410393e45e21f206234c03e2f6842005d7aba88) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingFailureMechanismContextPropertiesTest.cs (.../PipingFailureMechanismContextPropertiesTest.cs) (revision c3a85c5842b82e538c80029f35ae3e7e58aadb1e) @@ -71,11 +71,11 @@ Assert.AreEqual(failureMechanism.GeneralInput.SellmeijerModelFactor, properties.SellmeijerModelFactor); - Assert.AreEqual(failureMechanism.GeneralInput.WaterVolumetricWeight.Value, properties.WaterVolumetricWeight); + Assert.AreEqual(failureMechanism.GeneralInput.WaterVolumetricWeight, properties.WaterVolumetricWeight); Assert.AreEqual(failureMechanism.GeneralInput.CriticalHeaveGradient, properties.CriticalHeaveGradient); - Assert.AreEqual(failureMechanism.GeneralInput.SandParticlesVolumicWeight.Value, properties.SandParticlesVolumicWeight); + Assert.AreEqual(failureMechanism.GeneralInput.SandParticlesVolumicWeight, properties.SandParticlesVolumicWeight); Assert.AreEqual(failureMechanism.GeneralInput.WhitesDragCoefficient, properties.WhitesDragCoefficient); Assert.AreEqual(failureMechanism.GeneralInput.BeddingAngle, properties.BeddingAngle); Assert.AreEqual(failureMechanism.GeneralInput.WaterKinematicViscosity, properties.WaterKinematicViscosity); @@ -281,6 +281,7 @@ [Test] [TestCase(5)] [TestCase(-0.004)] + [TestCase(20.004)] public void WaterVolumetricWeight_SetValidValue_SetsValueRoundedAndUpdatesObservers(double newValue) { // Setup @@ -298,16 +299,19 @@ failureMechanism.Attach(observerMock); // Call - properties.WaterVolumetricWeight = newValue; + properties.WaterVolumetricWeight = (RoundedDouble) newValue; // Assert - Assert.AreEqual(new RoundedDouble(2, newValue), failureMechanism.GeneralInput.WaterVolumetricWeight); + Assert.AreEqual(newValue, failureMechanism.GeneralInput.WaterVolumetricWeight.Value, failureMechanism.GeneralInput.WaterVolumetricWeight.GetAccuracy()); mocks.VerifyAll(); } [Test] [TestCase(double.NaN)] - [TestCase(-0.1)] + [TestCase(double.NegativeInfinity)] + [TestCase(double.PositiveInfinity)] + [TestCase(-0.005)] + [TestCase(20.005)] public void WaterVolumetricWeight_SetValidValue_ThrowArgumentExceptionAndDoesNotUpdateObservers(double newValue) { // Setup @@ -324,10 +328,10 @@ failureMechanism.Attach(observerMock); // Call - TestDelegate test = () => properties.WaterVolumetricWeight = newValue; + TestDelegate test = () => properties.WaterVolumetricWeight = (RoundedDouble) newValue; // Assert - TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "De waarde moet een positief getal zijn."); + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "De waarde moet binnen het bereik [0, 20] liggen."); mocks.VerifyAll(); // Does not expect notify observers. } }