Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Service/MacroStabilityInwardsInputValidator.cs =================================================================== diff -u -r9368b3ac19481ec8b10dcea903ecdf0fab3048cf -rfceb242ffb49cc517e2e75dac598c1c6e6019b70 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Service/MacroStabilityInwardsInputValidator.cs (.../MacroStabilityInwardsInputValidator.cs) (revision 9368b3ac19481ec8b10dcea903ecdf0fab3048cf) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Service/MacroStabilityInwardsInputValidator.cs (.../MacroStabilityInwardsInputValidator.cs) (revision fceb242ffb49cc517e2e75dac598c1c6e6019b70) @@ -22,6 +22,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Core.Common.Base.Data; using Core.Common.Base.Geometry; using Ringtoets.Common.Service; using Ringtoets.Common.Service.ValidationRules; @@ -60,6 +61,7 @@ if (!coreValidationError.Any()) { validationResults.AddRange(ValidateSoilLayers(inputParameters)); + validationResults.AddRange(ValidateZoneBoundaries(inputParameters)); } return validationResults; @@ -87,6 +89,25 @@ } } + private static IEnumerable ValidateZoneBoundaries(MacroStabilityInwardsInput inputParameters) + { + RoundedDouble zoneBoundaryLeft = inputParameters.ZoneBoundaryLeft; + RoundedDouble zoneBoundaryRight = inputParameters.ZoneBoundaryRight; + + if (zoneBoundaryLeft > zoneBoundaryRight) + { + yield return Resources.MacroStabilityInwardsInputValidator_ValidateZoneBoundaries_ZoneBoundaries_must_be_other_way_around; + } + + double surfaceLineLeftBoundary = inputParameters.SurfaceLine.LocalGeometry.First().X; + double surfaceLineRightBoundary = inputParameters.SurfaceLine.LocalGeometry.Last().X; + + if (zoneBoundaryLeft < surfaceLineLeftBoundary || zoneBoundaryRight > surfaceLineRightBoundary) + { + yield return Resources.MacroStabilityInwardsInputValidator_ValidateZoneBoundaries_ZoneBoundaries_must_be_on_SurfaceLine; + } + } + private static bool ValidateTopOfProfileExceedsSurfaceLineTop(IMacroStabilityInwardsWaternetInput inputParameters, MacroStabilityInwardsSoilProfile1D soilProfile1D) {