Index: Ringtoets/Revetment/src/Ringtoets.Revetment.Data/WaveConditionsInput.cs =================================================================== diff -u -r14c7697f5bec8544f673df9a0205abffa0c145b9 -rc0cbfb8da75e870ea078c4bbbf48a2f04e8f7d0a --- Ringtoets/Revetment/src/Ringtoets.Revetment.Data/WaveConditionsInput.cs (.../WaveConditionsInput.cs) (revision 14c7697f5bec8544f673df9a0205abffa0c145b9) +++ Ringtoets/Revetment/src/Ringtoets.Revetment.Data/WaveConditionsInput.cs (.../WaveConditionsInput.cs) (revision c0cbfb8da75e870ea078c4bbbf48a2f04e8f7d0a) @@ -61,6 +61,11 @@ } /// + /// Gets or sets the hydraulic boundary location from which to use the assessment level. + /// + public HydraulicBoundaryLocation HydraulicBoundaryLocation { get; set; } + + /// /// Gets or sets the dike profile. /// public DikeProfile DikeProfile @@ -77,11 +82,6 @@ } /// - /// Gets or sets the hydraulic boundary location from which to use the assessment level. - /// - public HydraulicBoundaryLocation HydraulicBoundaryLocation { get; set; } - - /// /// Gets or sets if needs to be taken into account. /// public bool UseBreakWater { get; set; } @@ -261,17 +261,27 @@ private IEnumerable DetermineWaterLevels() { var waterLevels = new List(); - var upperBoundary = new RoundedDouble(2, Math.Min(DetermineUpperWaterLevel(), Math.Min(UpperBoundaryRevetment, UpperBoundaryWaterLevels))); - var lowerBoundary = new RoundedDouble(2, Math.Max(LowerBoundaryRevetment, LowerBoundaryWaterLevels)); - if (double.IsNaN(upperBoundary) || - double.IsNaN(lowerBoundary) || - Math.Abs(lowerBoundary - upperBoundary) < 1e-6 || - Math.Abs(StepSize) < 1e-6) + var upperBoundary = new RoundedDouble(2, Math.Min(DetermineUpperWaterLevel(), + Math.Min(UpperBoundaryRevetment, + !double.IsNaN(UpperBoundaryWaterLevels) + ? UpperBoundaryWaterLevels + : double.MaxValue))); + + var lowerBoundary = new RoundedDouble(2, Math.Max(LowerBoundaryRevetment, + !double.IsNaN(LowerBoundaryWaterLevels) + ? LowerBoundaryWaterLevels + : double.MinValue)); + + if (double.IsNaN(upperBoundary) + || double.IsNaN(lowerBoundary) + || double.IsNaN(stepSize)) { return waterLevels; } + waterLevels.Add(lowerBoundary); + RoundedDouble currentWaterLevel = new RoundedDouble(2, Math.Floor(lowerBoundary/stepSize)*stepSize + stepSize); while (currentWaterLevel < upperBoundary) @@ -280,12 +290,6 @@ currentWaterLevel = (currentWaterLevel + stepSize).ToPrecision(currentWaterLevel.NumberOfDecimalPlaces); } - if (!waterLevels.Any()) - { - return waterLevels; - } - - waterLevels.Insert(0, lowerBoundary); waterLevels.Add(upperBoundary); return waterLevels;