Index: Riskeer/Piping/src/Riskeer.Piping.Service/PipingCalculationValidationHelper.cs =================================================================== diff -u -r3cbba622af245bc359a861f11522140b5905a7a1 -rd8dd6b9fbf7990a92a3d1f60839772cdd653c719 --- Riskeer/Piping/src/Riskeer.Piping.Service/PipingCalculationValidationHelper.cs (.../PipingCalculationValidationHelper.cs) (revision 3cbba622af245bc359a861f11522140b5905a7a1) +++ Riskeer/Piping/src/Riskeer.Piping.Service/PipingCalculationValidationHelper.cs (.../PipingCalculationValidationHelper.cs) (revision d8dd6b9fbf7990a92a3d1f60839772cdd653c719) @@ -56,7 +56,6 @@ warnings.AddRange(GetMultipleAquiferLayersWarning(input, surfaceLineLevel)); warnings.AddRange(GetMultipleCoverageLayersWarning(input, surfaceLineLevel)); - warnings.AddRange(GetDiameter70Warning(input)); warnings.AddRange(GetThicknessCoverageLayerWarnings(input)); } @@ -108,16 +107,6 @@ } } - private static IEnumerable GetDiameter70Warning(PipingInput input) - { - RoundedDouble diameter70Value = PipingDesignVariableFactory.GetDiameter70(input).GetDesignValue(); - - if (!double.IsNaN(diameter70Value) && (diameter70Value < 6.3e-5 || diameter70Value > 0.5e-3)) - { - yield return string.Format(Resources.PipingCalculationService_GetInputWarnings_Specified_DiameterD70_value_0_not_in_valid_range_of_model, diameter70Value); - } - } - private static IEnumerable GetMultipleCoverageLayersWarning(PipingInput input, double surfaceLineLevel) { bool hasMoreThanOneCoverageLayer = input.StochasticSoilProfile.SoilProfile.GetConsecutiveCoverageLayersBelowLevel(surfaceLineLevel).Count() > 1; Index: Riskeer/Piping/src/Riskeer.Piping.Service/SemiProbabilistic/SemiProbabilisticPipingCalculationService.cs =================================================================== diff -u -ra18f03773a92939ae1ad710d71c35a1efed7f54a -rd8dd6b9fbf7990a92a3d1f60839772cdd653c719 --- Riskeer/Piping/src/Riskeer.Piping.Service/SemiProbabilistic/SemiProbabilisticPipingCalculationService.cs (.../SemiProbabilisticPipingCalculationService.cs) (revision a18f03773a92939ae1ad710d71c35a1efed7f54a) +++ Riskeer/Piping/src/Riskeer.Piping.Service/SemiProbabilistic/SemiProbabilisticPipingCalculationService.cs (.../SemiProbabilisticPipingCalculationService.cs) (revision d8dd6b9fbf7990a92a3d1f60839772cdd653c719) @@ -136,6 +136,15 @@ private static void LogAnyWarnings(SemiProbabilisticPipingCalculation calculation) { CalculationServiceHelper.LogMessagesAsWarning(PipingCalculationValidationHelper.GetValidationWarnings(calculation.InputParameters).ToArray()); + + RoundedDouble diameter70Value = PipingDesignVariableFactory.GetDiameter70(calculation.InputParameters).GetDesignValue(); + if (!double.IsNaN(diameter70Value) && (diameter70Value < 6.3e-5 || diameter70Value > 0.5e-3)) + { + CalculationServiceHelper.LogMessagesAsWarning(new[] + { + string.Format(Resources.PipingCalculationService_GetInputWarnings_Specified_DiameterD70_value_0_not_in_valid_range_of_model, diameter70Value) + }); + } } private static bool LogAnyErrors(SemiProbabilisticPipingCalculation calculation, GeneralPipingInput generalInput, RoundedDouble normativeAssessmentLevel) Index: Riskeer/Piping/test/Riskeer.Piping.Service.Test/PipingCalculationValidationHelperTest.cs =================================================================== diff -u -rf260ac6028b0962bac381e9cbd81f9db7823a16e -rd8dd6b9fbf7990a92a3d1f60839772cdd653c719 --- Riskeer/Piping/test/Riskeer.Piping.Service.Test/PipingCalculationValidationHelperTest.cs (.../PipingCalculationValidationHelperTest.cs) (revision f260ac6028b0962bac381e9cbd81f9db7823a16e) +++ Riskeer/Piping/test/Riskeer.Piping.Service.Test/PipingCalculationValidationHelperTest.cs (.../PipingCalculationValidationHelperTest.cs) (revision d8dd6b9fbf7990a92a3d1f60839772cdd653c719) @@ -244,13 +244,13 @@ { // Setup var surfaceLine = new PipingSurfaceLine(string.Empty); - + surfaceLine.SetGeometry(new[] { new Point3D(0, 0, 3.3), new Point3D(1.0, 0, 3.3) }); - + var profile = new PipingSoilProfile(string.Empty, 0, new[] { new PipingSoilLayer(4.3) @@ -279,56 +279,6 @@ } [Test] - [TestCase(6.2e-5)] - [TestCase(5.1e-3)] - public void GetValidationWarnings_InvalidDiameterD70Value_ReturnsMessage(double diameter70Value) - { - // Setup - var random = new Random(21); - var coverageLayerInvalidD70 = new PipingSoilLayer(5.0) - { - IsAquifer = true, - Permeability = new VariationCoefficientLogNormalDistribution - { - Mean = (RoundedDouble) 1, - CoefficientOfVariation = (RoundedDouble) 0.5 - }, - DiameterD70 = new VariationCoefficientLogNormalDistribution - { - Mean = (RoundedDouble) diameter70Value, - CoefficientOfVariation = (RoundedDouble) 0 - } - }; - var validLayer = new PipingSoilLayer(testSurfaceLineTopLevel) - { - IsAquifer = false, - BelowPhreaticLevel = new LogNormalDistribution - { - Mean = random.NextRoundedDouble(15.0, 999.999), - StandardDeviation = random.NextRoundedDouble(1e-6, 5.0), - Shift = random.NextRoundedDouble(1e-6, 10) - } - }; - var profile = new PipingSoilProfile(string.Empty, 0.0, - new[] - { - validLayer, - coverageLayerInvalidD70 - }, - SoilProfileType.SoilProfile1D); - - calculation.InputParameters.StochasticSoilProfile = new PipingStochasticSoilProfile(0.0, profile); - - // Call - IEnumerable messages = PipingCalculationValidationHelper.GetValidationWarnings(calculation.InputParameters); - - // Assert - Assert.AreEqual(1, messages.Count()); - var expectedMessage = $"Rekenwaarde voor d70 ({new RoundedDouble(6, diameter70Value)} m) ligt buiten het geldigheidsbereik van dit model. Geldige waarden liggen tussen 0.000063 m en 0.0005 m."; - Assert.AreEqual(expectedMessage, messages.ElementAt(0)); - } - - [Test] public void GetValidationErrors_InputNull_ThrowsArgumentNullException() { // Call Index: Riskeer/Piping/test/Riskeer.Piping.Service.Test/Probabilistic/ProbabilisticPipingCalculationServiceTest.cs =================================================================== diff -u -rff0f25c130d9f23881225bd6d8c3f8d09d8b1fd5 -rd8dd6b9fbf7990a92a3d1f60839772cdd653c719 --- Riskeer/Piping/test/Riskeer.Piping.Service.Test/Probabilistic/ProbabilisticPipingCalculationServiceTest.cs (.../ProbabilisticPipingCalculationServiceTest.cs) (revision ff0f25c130d9f23881225bd6d8c3f8d09d8b1fd5) +++ Riskeer/Piping/test/Riskeer.Piping.Service.Test/Probabilistic/ProbabilisticPipingCalculationServiceTest.cs (.../ProbabilisticPipingCalculationServiceTest.cs) (revision d8dd6b9fbf7990a92a3d1f60839772cdd653c719) @@ -642,72 +642,6 @@ } [Test] - [TestCase(6.2e-5)] - [TestCase(5.1e-3)] - public void Validate_InvalidDiameterD70Value_LogsMessageAndReturnsTrue(double diameter70Value) - { - // Setup - var failureMechanism = new PipingFailureMechanism(); - - var mocks = new MockRepository(); - IAssessmentSection assessmentSection = AssessmentSectionTestHelper.CreateAssessmentSectionStub( - failureMechanism, mocks, validHydraulicBoundaryDatabaseFilePath); - mocks.ReplayAll(); - - var random = new Random(21); - var coverageLayerInvalidD70 = new PipingSoilLayer(5.0) - { - IsAquifer = true, - Permeability = new VariationCoefficientLogNormalDistribution - { - Mean = (RoundedDouble) 1, - CoefficientOfVariation = (RoundedDouble) 0.5 - }, - DiameterD70 = new VariationCoefficientLogNormalDistribution - { - Mean = (RoundedDouble) diameter70Value, - CoefficientOfVariation = (RoundedDouble) 0 - } - }; - var validLayer = new PipingSoilLayer(testSurfaceLineTopLevel) - { - IsAquifer = false, - BelowPhreaticLevel = new LogNormalDistribution - { - Mean = random.NextRoundedDouble(15.0, 999.999), - StandardDeviation = random.NextRoundedDouble(1e-6, 5.0), - Shift = random.NextRoundedDouble(1e-6, 10) - } - }; - var profile = new PipingSoilProfile(string.Empty, 0.0, - new[] - { - validLayer, - coverageLayerInvalidD70 - }, - SoilProfileType.SoilProfile1D); - - calculation.InputParameters.StochasticSoilProfile = new PipingStochasticSoilProfile(0.0, profile); - - var isValid = false; - - // Call - void Call() => isValid = ProbabilisticPipingCalculationService.Validate(calculation, failureMechanism.GeneralInput, assessmentSection); - - // Assert - TestHelper.AssertLogMessages(Call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - CalculationServiceTestHelper.AssertValidationStartMessage(msgs[0]); - Assert.AreEqual($"Rekenwaarde voor d70 ({new RoundedDouble(6, diameter70Value)} m) ligt buiten het geldigheidsbereik van dit model. Geldige waarden liggen tussen 0.000063 m en 0.0005 m.", msgs[1]); - CalculationServiceTestHelper.AssertValidationEndMessage(msgs[2]); - }); - Assert.IsTrue(isValid); - mocks.VerifyAll(); - } - - [Test] [TestCase(false, false)] [TestCase(false, true)] [TestCase(true, false)]