/// <summary>
        /// Create the output of the calculation.
        /// </summary>
        /// <param name="duneLocationName">The name of the location.</param>
        /// <param name="targetReliability">The target reliability for the calculation.</param>
        /// <param name="targetProbability">The target probability for the calculation.</param>
        /// <param name="messageProvider">The object which is used to build log messages.</param>
        /// <returns>A <see cref="DuneLocationCalculationOutput"/>.</returns>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="targetProbability"/>
        /// or the calculated probability falls outside the [0.0, 1.0] range and is not <see cref="double.NaN"/>.</exception>
        private DuneLocationCalculationOutput CreateDuneLocationCalculationOutput(string duneLocationName,
                                                                                  double targetReliability,
                                                                                  double targetProbability,
                                                                                  ICalculationMessageProvider messageProvider)
        {
            double reliability = calculator.ReliabilityIndex;
            double probability = StatisticsConverter.ReliabilityToProbability(reliability);

            CalculationConvergence converged = RiskeerCommonDataCalculationService.GetCalculationConvergence(calculator.Converged);

            if (converged != CalculationConvergence.CalculatedConverged)
            {
                log.WarnFormat(messageProvider.GetCalculatedNotConvergedMessage(duneLocationName));
            }

            return(new DuneLocationCalculationOutput(converged,
                                                     new DuneLocationCalculationOutput.ConstructionProperties
            {
                WaterLevel = calculator.WaterLevel,
                WaveHeight = calculator.WaveHeight,
                WavePeriod = calculator.WavePeriod,
                TargetProbability = targetProbability,
                TargetReliability = targetReliability,
                CalculatedProbability = probability,
                CalculatedReliability = reliability
            }));
        }
Beispiel #2
0
        public void Constructor_ExpectedValues(double targetProbability, double calculatedProbability)
        {
            // Setup
            const double waterLevel            = 3.09378;
            const double waveHeight            = 4.29884;
            const double wavePeakPeriod        = 0.19435;
            const double waveAngle             = 180.62353;
            const double waveDirection         = 230.67893;
            const double targetReliability     = 3000;
            const double calculatedReliability = 4000;
            const CalculationConvergence calculationConvergence = CalculationConvergence.NotCalculated;

            // Call
            var output = new WaveConditionsOutput(waterLevel, waveHeight, wavePeakPeriod, waveAngle, waveDirection, targetProbability,
                                                  targetReliability, calculatedProbability, calculatedReliability, calculationConvergence);

            // Assert
            Assert.IsInstanceOf <CloneableObservable>(output);
            Assert.IsInstanceOf <ICalculationOutput>(output);
            Assert.AreEqual(waterLevel, output.WaterLevel, output.WaterLevel.GetAccuracy());
            Assert.AreEqual(waveHeight, output.WaveHeight, output.WaveHeight.GetAccuracy());
            Assert.AreEqual(wavePeakPeriod, output.WavePeakPeriod, output.WavePeakPeriod.GetAccuracy());
            Assert.AreEqual(waveAngle, output.WaveAngle, output.WaveAngle.GetAccuracy());
            Assert.AreEqual(waveDirection, output.WaveDirection, output.WaveDirection.GetAccuracy());

            Assert.AreEqual(targetProbability, output.TargetProbability);
            Assert.AreEqual(5, output.TargetReliability.NumberOfDecimalPlaces);
            Assert.AreEqual(targetReliability, output.TargetReliability, output.TargetReliability.GetAccuracy());
            Assert.AreEqual(calculatedProbability, output.CalculatedProbability);
            Assert.AreEqual(5, output.CalculatedReliability.NumberOfDecimalPlaces);
            Assert.AreEqual(calculatedReliability, output.CalculatedReliability, output.CalculatedReliability.GetAccuracy());
            Assert.AreEqual(calculationConvergence, output.CalculationConvergence);
        }
Beispiel #3
0
        public void GetCalculationConvergence_WithDifferentValues_ReturnsExpectedConvergence(bool?value, CalculationConvergence expectedConvergence)
        {
            // Call
            CalculationConvergence calculationConverged = RiskeerCommonDataCalculationService.GetCalculationConvergence(value);

            // Assert
            Assert.AreEqual(expectedConvergence, calculationConverged);
        }
        /// <summary>
        /// Creates the <see cref="WaveConditionsOutput"/> based on the provided parameters.
        /// </summary>
        /// <param name="waterLevel">The water level that was calculated for.</param>
        /// <param name="waveHeight">The calculated wave height.</param>
        /// <param name="wavePeakPeriod">The calculated wave peak period.</param>
        /// <param name="waveAngle">The calculated wave angle with respect to the dike normal.</param>
        /// <param name="waveDirection">The calculated wave direction with respect to the North.</param>
        /// <param name="targetProbability">The target probability that was calculated for.</param>
        /// <param name="calculatedReliability">The calculated reliability.</param>
        /// <param name="calculatedConvergence">The calculated convergence value.</param>
        /// <returns>The created <see cref="WaveConditionsOutput"/>.</returns>
        public static WaveConditionsOutput CreateOutput(double waterLevel, double waveHeight,
                                                        double wavePeakPeriod, double waveAngle,
                                                        double waveDirection, double targetProbability,
                                                        double calculatedReliability, bool?calculatedConvergence)
        {
            double targetReliability           = StatisticsConverter.ProbabilityToReliability(targetProbability);
            double calculatedProbability       = StatisticsConverter.ReliabilityToProbability(calculatedReliability);
            CalculationConvergence convergence = RiskeerCommonDataCalculationService.GetCalculationConvergence(calculatedConvergence);

            return(new WaveConditionsOutput(waterLevel, waveHeight, wavePeakPeriod, waveAngle, waveDirection, targetProbability,
                                            targetReliability, calculatedProbability, calculatedReliability, convergence));
        }
Beispiel #5
0
        /// <summary>
        /// Creates a new instance of <see cref="HydraulicLoadsOutput"/>.
        /// </summary>
        /// <param name="targetProbability">The target probability used during the calculation.</param>
        /// <param name="targetReliability">The reliability index used during the calculation.</param>
        /// <param name="calculatedProbability">The calculated probability.</param>
        /// <param name="calculatedReliability">The calculated reliability index.</param>
        /// <param name="calculationConvergence">The convergence status of the calculation.</param>
        /// <param name="generalResult">The general result with the fault tree illustration points.</param>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="targetProbability"/>
        /// or <paramref name="calculatedProbability"/> falls outside the [0.0, 1.0] range and is not <see cref="double.NaN"/>.</exception>
        protected HydraulicLoadsOutput(double targetProbability, double targetReliability,
                                       double calculatedProbability, double calculatedReliability,
                                       CalculationConvergence calculationConvergence,
                                       GeneralResult <TopLevelFaultTreeIllustrationPoint> generalResult)
        {
            ProbabilityHelper.ValidateProbability(targetProbability, nameof(targetProbability), true);
            ProbabilityHelper.ValidateProbability(calculatedProbability, nameof(calculatedProbability), true);

            TargetProbability      = targetProbability;
            TargetReliability      = new RoundedDouble(5, targetReliability);
            CalculatedProbability  = calculatedProbability;
            CalculatedReliability  = new RoundedDouble(5, calculatedReliability);
            CalculationConvergence = calculationConvergence;
            GeneralResult          = generalResult;
        }
Beispiel #6
0
        public void Constructor_WithInvalidCalculationConvergenceValue_ThrowsInvalidEnumArgumentException()
        {
            // Setup
            const CalculationConvergence invalidEnumValue = (CalculationConvergence)9001;

            // Call
            TestDelegate call = () => new WaveConditionsOutput(double.NaN, double.NaN, double.NaN, double.NaN, double.NaN, double.NaN,
                                                               double.NaN, double.NaN, double.NaN, invalidEnumValue);

            // Assert
            const string expectedMessage = "The value of argument 'value' (9001) is invalid for Enum type 'CalculationConvergence'.";
            string       paramName       = TestHelper.AssertThrowsArgumentExceptionAndTestMessage <InvalidEnumArgumentException>(call,
                                                                                                                                 expectedMessage).ParamName;

            Assert.AreEqual("value", paramName);
        }
Beispiel #7
0
        /// <summary>
        /// Creates a new instance of <see cref="WaveConditionsOutput"/>.
        /// </summary>
        /// <param name="waterLevel">The water level for which the calculation has been performed.</param>
        /// <param name="waveHeight">The calculated wave height.</param>
        /// <param name="wavePeakPeriod">The calculated wave peak period.</param>
        /// <param name="waveAngle">The calculated wave angle with respect to the dike normal.</param>
        /// <param name="waveDirection">The calculated wave direction with respect to the North.</param>
        /// <param name="targetProbability">The target probability.</param>
        /// <param name="targetReliability">The target beta (reliability).</param>
        /// <param name="calculatedProbability">The calculated probability.</param>
        /// <param name="calculatedReliability">The calculated beta (reliability).</param>
        /// <param name="calculationConvergence">The convergence status of the calculation.</param>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="targetProbability"/> or
        /// <paramref name="calculatedProbability"/> falls outside the [0.0, 1.0] range and is not
        /// <see cref="double.NaN"/>.</exception>
        /// <exception cref="InvalidEnumArgumentException">Thrown when <paramref name="calculationConvergence"/>
        /// has an invalid enum value of type <see cref="CalculationConvergence"/>.</exception>
        public WaveConditionsOutput(double waterLevel, double waveHeight, double wavePeakPeriod, double waveAngle,
                                    double waveDirection,
                                    double targetProbability, double targetReliability,
                                    double calculatedProbability, double calculatedReliability,
                                    CalculationConvergence calculationConvergence)
        {
            WaterLevel     = new RoundedDouble(2, waterLevel);
            WaveHeight     = new RoundedDouble(2, waveHeight);
            WavePeakPeriod = new RoundedDouble(2, wavePeakPeriod);
            WaveAngle      = new RoundedDouble(2, waveAngle);
            WaveDirection  = new RoundedDouble(2, waveDirection);

            TargetProbability = targetProbability;
            TargetReliability = new RoundedDouble(5, targetReliability);

            CalculatedProbability = calculatedProbability;
            CalculatedReliability = new RoundedDouble(5, calculatedReliability);

            CalculationConvergence = calculationConvergence;
        }
        /// <summary>
        /// Creates a new instance of <see cref="HydraulicBoundaryLocationCalculationOutput"/>.
        /// </summary>
        /// <param name="result">The calculation result.</param>
        /// <param name="targetProbability">The target probability used during the calculation.</param>
        /// <param name="targetReliability">The reliability index used during the calculation.</param>
        /// <param name="calculatedProbability">The calculated probability.</param>
        /// <param name="calculatedReliability">The calculated reliability.</param>
        /// <param name="calculationConvergence">The convergence status of the calculation.</param>
        /// <param name="generalResult">The general result of this output with sub mechanism illustration points.</param>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="targetProbability"/>
        /// or <paramref name="calculatedProbability"/> falls outside the [0.0, 1.0] range and is not <see cref="double.NaN"/>.</exception>
        public HydraulicBoundaryLocationCalculationOutput(double result,
                                                          double targetProbability,
                                                          double targetReliability,
                                                          double calculatedProbability,
                                                          double calculatedReliability,
                                                          CalculationConvergence calculationConvergence,
                                                          GeneralResult <TopLevelSubMechanismIllustrationPoint> generalResult)
        {
            ProbabilityHelper.ValidateProbability(targetProbability, nameof(targetProbability), true);
            ProbabilityHelper.ValidateProbability(calculatedProbability, nameof(calculatedProbability), true);

            Result = new RoundedDouble(2, result);

            TargetProbability      = targetProbability;
            TargetReliability      = new RoundedDouble(5, targetReliability);
            CalculatedProbability  = calculatedProbability;
            CalculatedReliability  = new RoundedDouble(5, calculatedReliability);
            CalculationConvergence = calculationConvergence;
            GeneralResult          = generalResult;
        }
        /// <summary>
        /// Creates a new instance of <see cref="DuneLocationCalculationOutput"/>.
        /// </summary>
        /// <param name="calculationConvergence">The convergence status of the calculation.</param>
        /// <param name="constructionProperties">The container for the properties for the <see cref="DuneLocationCalculationOutput"/>.</param>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="constructionProperties"/> is <c>null</c>.</exception>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <see cref="ConstructionProperties.TargetProbability"/>
        /// or <see cref="ConstructionProperties.CalculatedProbability"/> falls outside the [0.0, 1.0] range.</exception>
        public DuneLocationCalculationOutput(CalculationConvergence calculationConvergence, ConstructionProperties constructionProperties)
        {
            if (constructionProperties == null)
            {
                throw new ArgumentNullException(nameof(constructionProperties));
            }

            WaterLevel = new RoundedDouble(2, constructionProperties.WaterLevel);
            WaveHeight = new RoundedDouble(2, constructionProperties.WaveHeight);
            WavePeriod = new RoundedDouble(2, constructionProperties.WavePeriod);

            ProbabilityHelper.ValidateProbability(constructionProperties.TargetProbability, nameof(TargetProbability), true);
            ProbabilityHelper.ValidateProbability(constructionProperties.CalculatedProbability, nameof(CalculatedProbability), true);

            TargetProbability      = constructionProperties.TargetProbability;
            TargetReliability      = new RoundedDouble(5, constructionProperties.TargetReliability);
            CalculatedProbability  = constructionProperties.CalculatedProbability;
            CalculatedReliability  = new RoundedDouble(5, constructionProperties.CalculatedReliability);
            CalculationConvergence = calculationConvergence;
        }
        /// <summary>
        /// Creates the output of an overtopping rate calculation.
        /// </summary>
        /// <param name="calculator">The calculator used for performing the calculation.</param>
        /// <param name="calculationName">The name of the calculation.</param>
        /// <param name="targetReliability">The target reliability for the calculation.</param>
        /// <param name="targetProbability">The target probability for the calculation.</param>
        /// <param name="shouldIllustrationPointsBeCalculated">Indicates whether the illustration points
        /// should be calculated for the calculation.</param>
        /// <returns>A <see cref="OvertoppingRateOutput"/>.</returns>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="targetProbability"/>
        /// or the calculated probability falls outside the [0.0, 1.0] range and is not <see cref="double.NaN"/>.</exception>
        private static OvertoppingRateOutput CreateOvertoppingRateOutput(IHydraulicLoadsCalculator calculator,
                                                                         string calculationName,
                                                                         double targetReliability,
                                                                         double targetProbability,
                                                                         bool shouldIllustrationPointsBeCalculated)
        {
            double overtoppingRate = calculator.Value;
            double reliability     = calculator.ReliabilityIndex;
            double probability     = StatisticsConverter.ReliabilityToProbability(reliability);

            CalculationConvergence converged = RiskeerCommonDataCalculationService.GetCalculationConvergence(calculator.Converged);

            if (converged != CalculationConvergence.CalculatedConverged)
            {
                log.Warn(
                    string.Format(Resources.GrassCoverErosionInwardsCalculationService_Calculation_of_type_0_for_calculation_with_name_1_not_converged,
                                  Resources.GrassCoverErosionInwardsCalculationService_OvertoppingRate,
                                  calculationName));
            }

            GeneralResult <TopLevelFaultTreeIllustrationPoint> generalResult = null;

            try
            {
                generalResult = shouldIllustrationPointsBeCalculated
                                    ? ConvertIllustrationPointsResult(calculator.IllustrationPointsResult,
                                                                      calculator.IllustrationPointsParserErrorMessage)
                                    : null;
            }
            catch (ArgumentException e)
            {
                log.Warn(string.Format(Resources.GrassCoverErosionInwardsCalculationService_CalculateOvertopping_Error_in_reading_illustrationPoints_for_CalculationName_0_overtopping_rate_with_ErrorMessage_1,
                                       calculationName,
                                       e.Message));
            }

            return(new OvertoppingRateOutput(overtoppingRate, targetProbability,
                                             targetReliability, probability, reliability,
                                             converged, generalResult));
        }
        /// <summary>
        /// Creates the output of the calculation.
        /// </summary>
        /// <param name="messageProvider">The object which is used to build log messages.</param>
        /// <param name="hydraulicBoundaryLocationName">The name of the hydraulic boundary location.</param>
        /// <param name="targetReliability">The target reliability for the calculation.</param>
        /// <param name="targetProbability">The target probability for the calculation.</param>
        /// <param name="calculatorConverged">The value indicating whether the calculation converged.</param>
        /// <param name="generalResult">The general result with illustration points.</param>
        /// <returns>A <see cref="HydraulicBoundaryLocationCalculationOutput"/>.</returns>
        /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="targetProbability"/>
        /// or the calculated probability falls outside the [0.0, 1.0] range and is not <see cref="double.NaN"/>.</exception>
        private HydraulicBoundaryLocationCalculationOutput CreateOutput(ICalculationMessageProvider messageProvider,
                                                                        string hydraulicBoundaryLocationName,
                                                                        double targetReliability,
                                                                        double targetProbability,
                                                                        bool?calculatorConverged,
                                                                        GeneralResult <TopLevelSubMechanismIllustrationPoint> generalResult)
        {
            double waveHeight  = calculator.WaveHeight;
            double reliability = calculator.ReliabilityIndex;
            double probability = StatisticsConverter.ReliabilityToProbability(reliability);

            CalculationConvergence converged = RiskeerCommonDataCalculationService.GetCalculationConvergence(calculatorConverged);

            if (converged != CalculationConvergence.CalculatedConverged)
            {
                log.Warn(messageProvider.GetCalculatedNotConvergedMessage(hydraulicBoundaryLocationName));
            }

            return(new HydraulicBoundaryLocationCalculationOutput(waveHeight, targetProbability,
                                                                  targetReliability, probability, reliability,
                                                                  converged, generalResult));
        }
 /// <summary>
 /// Creates a new instance of <see cref="TestHydraulicLoadsOutput"/>.
 /// </summary>
 /// <param name="targetProbability">The target probability used during the calculation.</param>
 /// <param name="targetReliability">The reliability index used during the calculation.</param>
 /// <param name="calculatedProbability">The calculated probability.</param>
 /// <param name="calculatedReliability">The calculated reliability index.</param>
 /// <param name="calculationConvergence">The convergence status of the calculation.</param>
 /// <param name="generalResult">The general result with the fault tree illustration points.</param>
 /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="targetProbability"/>
 /// or <paramref name="calculatedProbability"/> falls outside the [0.0, 1.0] range and is not <see cref="double.NaN"/>.</exception>
 public TestHydraulicLoadsOutput(double targetProbability, double targetReliability,
                                 double calculatedProbability, double calculatedReliability, CalculationConvergence calculationConvergence,
                                 GeneralResult <TopLevelFaultTreeIllustrationPoint> generalResult)
     : base(targetProbability, targetReliability, calculatedProbability,
            calculatedReliability, calculationConvergence, generalResult)
 {
 }
 /// <summary>
 /// Creates a new instance of <see cref="TestDikeHeightOutput"/>.
 /// </summary>
 /// <param name="dikeHeight">The dike height to set to the output.</param>
 /// <param name="calculationConvergence">The <see cref="CalculationConvergence"/> to set to the output.</param>
 public TestDikeHeightOutput(double dikeHeight, CalculationConvergence calculationConvergence = CalculationConvergence.NotCalculated)
     : base(dikeHeight, double.NaN, double.NaN, double.NaN, double.NaN, calculationConvergence, null)
 {
 }
Beispiel #14
0
 /// <summary>
 /// Creates a new instance of <see cref="OvertoppingRateOutput"/>.
 /// </summary>
 /// <param name="overtoppingRate">The calculated overtopping rate.</param>
 /// <param name="targetProbability">The target probability used during the calculation.</param>
 /// <param name="targetReliability">The reliability index used during the calculation.</param>
 /// <param name="calculatedProbability">The calculated probability.</param>
 /// <param name="calculatedReliability">The calculated reliability index.</param>
 /// <param name="calculationConvergence">The convergence status of the calculation.</param>
 /// <param name="generalResult">The general result with illustration points belonging to
 /// this output.</param>
 /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="targetProbability"/>
 /// or <paramref name="calculatedProbability"/> falls outside the [0.0, 1.0] range and is not <see cref="double.NaN"/>.</exception>
 public OvertoppingRateOutput(double overtoppingRate, double targetProbability, double targetReliability,
                              double calculatedProbability, double calculatedReliability, CalculationConvergence calculationConvergence,
                              GeneralResult <TopLevelFaultTreeIllustrationPoint> generalResult)
     : base(targetProbability, targetReliability, calculatedProbability,
            calculatedReliability, calculationConvergence, generalResult)
 {
     OvertoppingRate = new RoundedDouble(5, overtoppingRate);
 }
        public void CreateOutput_ValidParameters_ReturnsExpectedValues(bool?convergence, CalculationConvergence expectedConvergence)
        {
            // Setup
            const double waterLevel            = 1.1;
            const double waveHeight            = 2.2;
            const double wavePeakPeriod        = 3.3;
            const double waveAngle             = 4.4;
            const double waveDirection         = 5.5;
            const double targetProbability     = 1 / 6.6;
            const double calculatedReliability = -7.7;

            // Call
            WaveConditionsOutput output = WaveConditionsOutputFactory.CreateOutput(waterLevel, waveHeight, wavePeakPeriod,
                                                                                   waveAngle, waveDirection, targetProbability,
                                                                                   calculatedReliability, convergence);

            // Assert
            Assert.AreEqual(waterLevel, output.WaterLevel, output.WaterLevel.GetAccuracy());
            Assert.AreEqual(waveHeight, output.WaveHeight, output.WaveHeight.GetAccuracy());
            Assert.AreEqual(wavePeakPeriod, output.WavePeakPeriod, output.WavePeakPeriod.GetAccuracy());
            Assert.AreEqual(waveAngle, output.WaveAngle, output.WaveAngle.GetAccuracy());
            Assert.AreEqual(waveDirection, output.WaveDirection, output.WaveDirection.GetAccuracy());
            Assert.AreEqual(targetProbability, output.TargetProbability, 1e-6);
            Assert.AreEqual(StatisticsConverter.ProbabilityToReliability(targetProbability), output.TargetReliability, output.TargetReliability.GetAccuracy());
            Assert.AreEqual(calculatedReliability, output.CalculatedReliability, output.CalculatedReliability.GetAccuracy());
            Assert.AreEqual(StatisticsConverter.ReliabilityToProbability(calculatedReliability), output.CalculatedProbability, 1e-6);
            Assert.AreEqual(expectedConvergence, output.CalculationConvergence);
        }
Beispiel #16
0
 /// <summary>
 /// Creates a new instance of <see cref="TestHydraulicBoundaryLocationCalculationOutput"/>.
 /// </summary>
 /// <param name="result">The result to set in the output.</param>
 /// <param name="calculationConvergence">The <see cref="CalculationConvergence"/> to set in the output.</param>
 public TestHydraulicBoundaryLocationCalculationOutput(double result, CalculationConvergence calculationConvergence = CalculationConvergence.NotCalculated) :
     base(result, double.NaN, double.NaN, double.NaN, double.NaN, calculationConvergence, null)
 {
 }
Beispiel #17
0
 /// <summary>
 /// Creates a new instance of <see cref="DikeHeightOutput"/>.
 /// </summary>
 /// <param name="dikeHeight">The calculated dike height.</param>
 /// <param name="targetProbability">The target probability used during the calculation.</param>
 /// <param name="targetReliability">The reliability index used during the calculation.</param>
 /// <param name="calculatedProbability">The calculated probability.</param>
 /// <param name="calculatedReliability">The calculated reliability index.</param>
 /// <param name="calculationConvergence">The convergence status of the calculation.</param>
 /// <param name="generalResult">The general result with the illustration points for this output.</param>
 /// <exception cref="ArgumentOutOfRangeException">Thrown when <paramref name="targetProbability"/>
 /// or <paramref name="calculatedProbability"/> falls outside the [0.0, 1.0] range and is not <see cref="double.NaN"/>.</exception>
 public DikeHeightOutput(double dikeHeight, double targetProbability, double targetReliability,
                         double calculatedProbability, double calculatedReliability, CalculationConvergence calculationConvergence,
                         GeneralResult <TopLevelFaultTreeIllustrationPoint> generalResult)
     : base(targetProbability, targetReliability, calculatedProbability,
            calculatedReliability, calculationConvergence, generalResult)
 {
     DikeHeight = new RoundedDouble(2, dikeHeight);
 }
 /// <summary>
 /// Creates a new instance of <see cref="TestOvertoppingRateOutput"/>.
 /// </summary>
 /// <param name="overtoppingRate">The overtopping rate to set to the output.</param>
 /// <param name="calculationConvergence">The <see cref="CalculationConvergence"/> to set to the output.</param>
 public TestOvertoppingRateOutput(double overtoppingRate, CalculationConvergence calculationConvergence = CalculationConvergence.NotCalculated) :
     base(overtoppingRate, double.NaN, double.NaN, double.NaN, double.NaN, calculationConvergence, null)
 {
 }