Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectTestHelper.cs
===================================================================
diff -u -rb4e3629ea2130359117dd403af8db3c8ae0c680b -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectTestHelper.cs (.../RingtoetsProjectTestHelper.cs) (revision b4e3629ea2130359117dd403af8db3c8ae0c680b)
+++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectTestHelper.cs (.../RingtoetsProjectTestHelper.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -959,8 +959,8 @@
},
Output = new GrassCoverErosionOutwardsWaveConditionsOutput(new[]
{
- new WaveConditionsOutput(1, 2, 3, 4),
- new WaveConditionsOutput(2, 3, 4, 5)
+ new WaveConditionsOutput(1, 2, 3, 4, 5, 0.6, 0.7, 0.8, 0.9),
+ new WaveConditionsOutput(0, 1, 2, 3, 4, 0.5, 0.6, 0.7, 0.8)
})
});
}
@@ -1048,12 +1048,12 @@
},
Output = new StabilityStoneCoverWaveConditionsOutput(new[]
{
- new WaveConditionsOutput(5, 6, 7, 8),
- new WaveConditionsOutput(4, 4, 2, 2)
+ new WaveConditionsOutput(1, 2, 3, 4, 5, 0.6, 0.7, 0.8, 0.9),
+ new WaveConditionsOutput(0, 1, 2, 3, 4, 0.5, 0.6, 0.7, 0.8)
}, new[]
{
- new WaveConditionsOutput(7, 4, 1, 2),
- new WaveConditionsOutput(8, 3, 2, 1)
+ new WaveConditionsOutput(10, 9, 8, 7, 6, 0.5, 0.4, 0.3, 0.2),
+ new WaveConditionsOutput(9, 8, 7, 6, 5, 0.4, 0.3, 0.2, 0.1)
})
});
}
@@ -1141,8 +1141,8 @@
},
Output = new WaveImpactAsphaltCoverWaveConditionsOutput(new[]
{
- new WaveConditionsOutput(5, 6, 7, 8),
- new WaveConditionsOutput(4, 4, 2, 2)
+ new WaveConditionsOutput(1, 2, 3, 4, 5, 0.6, 0.7, 0.8, 0.9),
+ new WaveConditionsOutput(0, 1, 2, 3, 4, 0.5, 0.6, 0.7, 0.8)
})
});
}
Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/PropertyInfos/GrassCoverErosionOutwardsWaveConditionsOutputPropertiesTest.cs
===================================================================
diff -u -r215e7512a8046a8f6ba71276c85d5880328d5ba1 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/PropertyInfos/GrassCoverErosionOutwardsWaveConditionsOutputPropertiesTest.cs (.../GrassCoverErosionOutwardsWaveConditionsOutputPropertiesTest.cs) (revision 215e7512a8046a8f6ba71276c85d5880328d5ba1)
+++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/PropertyInfos/GrassCoverErosionOutwardsWaveConditionsOutputPropertiesTest.cs (.../GrassCoverErosionOutwardsWaveConditionsOutputPropertiesTest.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -23,7 +23,6 @@
using System.ComponentModel;
using Core.Common.Gui.Converters;
using Core.Common.Gui.PropertyBag;
-using Core.Common.Utils;
using NUnit.Framework;
using Ringtoets.Common.Data.TestUtil;
using Ringtoets.Common.Forms.Helpers;
@@ -76,17 +75,11 @@
Assert.AreEqual(firstOutput.WavePeakPeriod, firstOutputProperties.WavePeakPeriod);
Assert.AreEqual(firstOutput.WaveAngle, firstOutputProperties.WaveAngle);
Assert.AreEqual(firstOutput.WaveDirection, firstOutputProperties.WaveDirection);
-
- double expectedTargetReliability = firstOutput.TargetReliability;
- double expectedTargetProbability = StatisticsConverter.ReliabilityToProbability(expectedTargetReliability);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedTargetProbability), firstOutputProperties.TargetProbability);
- Assert.AreEqual(expectedTargetReliability, firstOutputProperties.TargetReliability,
+ Assert.AreEqual(ProbabilityFormattingHelper.Format(firstOutput.TargetProbability), firstOutputProperties.TargetProbability);
+ Assert.AreEqual(firstOutput.TargetReliability, firstOutputProperties.TargetReliability,
firstOutputProperties.TargetReliability.GetAccuracy());
-
- double expectedCalculatedReliability = firstOutput.TargetReliability;
- double expectedCalculatedProbability = StatisticsConverter.ReliabilityToProbability(expectedCalculatedReliability);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedCalculatedProbability), firstOutputProperties.TargetProbability);
- Assert.AreEqual(expectedTargetReliability, firstOutputProperties.TargetReliability,
+ Assert.AreEqual(ProbabilityFormattingHelper.Format(firstOutput.CalculatedProbability), firstOutputProperties.CalculatedProbability);
+ Assert.AreEqual(firstOutput.TargetReliability, firstOutputProperties.TargetReliability,
firstOutputProperties.TargetReliability.GetAccuracy());
Assert.AreEqual(string.Empty, firstOutputProperties.Convergence);
}
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ExportInfos/StabilityStoneCoverWaveConditionsCalculationContextExportInfoTest.cs
===================================================================
diff -u -rd42451749e8feec1c96555eb81b1cd7d67e30146 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ExportInfos/StabilityStoneCoverWaveConditionsCalculationContextExportInfoTest.cs (.../StabilityStoneCoverWaveConditionsCalculationContextExportInfoTest.cs) (revision d42451749e8feec1c96555eb81b1cd7d67e30146)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ExportInfos/StabilityStoneCoverWaveConditionsCalculationContextExportInfoTest.cs (.../StabilityStoneCoverWaveConditionsCalculationContextExportInfoTest.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -25,8 +25,8 @@
using NUnit.Framework;
using Rhino.Mocks;
using Ringtoets.Common.Data.AssessmentSection;
-using Ringtoets.Revetment.Data;
using Ringtoets.Revetment.IO;
+using Ringtoets.Revetment.TestUtil;
using Ringtoets.StabilityStoneCover.Data;
using Ringtoets.StabilityStoneCover.Forms.PresentationObjects;
using Ringtoets.StabilityStoneCover.Plugin;
@@ -113,14 +113,14 @@
var failureMechanism = new StabilityStoneCoverFailureMechanism();
var columnsOutput = new[]
{
- new WaveConditionsOutput(1, 0, 3, 5),
- new WaveConditionsOutput(8, 2, 6, 1)
+ new TestWaveConditionsOutput(1, 0, 3, 5),
+ new TestWaveConditionsOutput(8, 2, 6, 1)
};
var blocksOutput = new[]
{
- new WaveConditionsOutput(6, 2, 9, 4),
- new WaveConditionsOutput(4, 1, 7, 3)
+ new TestWaveConditionsOutput(6, 2, 9, 4),
+ new TestWaveConditionsOutput(4, 1, 7, 3)
};
var context = new StabilityStoneCoverWaveConditionsCalculationContext(
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ExportInfos/StabilityStoneCoverWaveConditionsCalculationGroupContextExportInfoTest.cs
===================================================================
diff -u -rd42451749e8feec1c96555eb81b1cd7d67e30146 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ExportInfos/StabilityStoneCoverWaveConditionsCalculationGroupContextExportInfoTest.cs (.../StabilityStoneCoverWaveConditionsCalculationGroupContextExportInfoTest.cs) (revision d42451749e8feec1c96555eb81b1cd7d67e30146)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ExportInfos/StabilityStoneCoverWaveConditionsCalculationGroupContextExportInfoTest.cs (.../StabilityStoneCoverWaveConditionsCalculationGroupContextExportInfoTest.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -26,8 +26,8 @@
using Rhino.Mocks;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Common.Data.Calculation;
-using Ringtoets.Revetment.Data;
using Ringtoets.Revetment.IO;
+using Ringtoets.Revetment.TestUtil;
using Ringtoets.StabilityStoneCover.Data;
using Ringtoets.StabilityStoneCover.Forms.PresentationObjects;
using Ringtoets.StabilityStoneCover.Plugin;
@@ -141,14 +141,14 @@
var calculationGroup = new CalculationGroup();
var columnsOutput = new[]
{
- new WaveConditionsOutput(1, 0, 3, 5),
- new WaveConditionsOutput(8, 2, 6, 1)
+ new TestWaveConditionsOutput(1, 0, 3, 5),
+ new TestWaveConditionsOutput(8, 2, 6, 1)
};
var blocksOutput = new[]
{
- new WaveConditionsOutput(6, 2, 9, 4),
- new WaveConditionsOutput(4, 1, 7, 3)
+ new TestWaveConditionsOutput(6, 2, 9, 4),
+ new TestWaveConditionsOutput(4, 1, 7, 3)
};
calculationGroup.Children.Add(new StabilityStoneCoverWaveConditionsCalculation
{
@@ -181,21 +181,22 @@
var failureMechanism = new StabilityStoneCoverFailureMechanism();
var calculationGroup = new CalculationGroup();
- var columnsOutput = new[]
- {
- new WaveConditionsOutput(1, 0, 3, 5),
- new WaveConditionsOutput(8, 2, 6, 1)
- };
- var blocksOutput = new[]
- {
- new WaveConditionsOutput(6, 2, 9, 4),
- new WaveConditionsOutput(4, 1, 7, 3)
- };
-
StabilityStoneCoverWaveConditionsOutput stabilityStoneCoverWaveConditionsOutput = null;
if (hasOutput)
{
+ var columnsOutput = new[]
+ {
+ new TestWaveConditionsOutput(1, 0, 3, 5),
+ new TestWaveConditionsOutput(8, 2, 6, 1)
+ };
+
+ var blocksOutput = new[]
+ {
+ new TestWaveConditionsOutput(6, 2, 9, 4),
+ new TestWaveConditionsOutput(4, 1, 7, 3)
+ };
+
stabilityStoneCoverWaveConditionsOutput = new StabilityStoneCoverWaveConditionsOutput(columnsOutput, blocksOutput);
}
calculationGroup.Children.Add(
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ExportInfos/WaveImpactAsphaltCoverWaveConditionsCalculationContextExportInfoTest.cs
===================================================================
diff -u -rd42451749e8feec1c96555eb81b1cd7d67e30146 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ExportInfos/WaveImpactAsphaltCoverWaveConditionsCalculationContextExportInfoTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationContextExportInfoTest.cs) (revision d42451749e8feec1c96555eb81b1cd7d67e30146)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ExportInfos/WaveImpactAsphaltCoverWaveConditionsCalculationContextExportInfoTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationContextExportInfoTest.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -25,8 +25,8 @@
using NUnit.Framework;
using Rhino.Mocks;
using Ringtoets.Common.Data.AssessmentSection;
-using Ringtoets.Revetment.Data;
using Ringtoets.Revetment.IO;
+using Ringtoets.Revetment.TestUtil;
using Ringtoets.WaveImpactAsphaltCover.Data;
using Ringtoets.WaveImpactAsphaltCover.Forms.PresentationObjects;
using Ringtoets.WaveImpactAsphaltCover.Plugin;
@@ -113,8 +113,8 @@
var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism();
var output = new[]
{
- new WaveConditionsOutput(1, 0, 3, 5),
- new WaveConditionsOutput(8, 2, 6, 1)
+ new TestWaveConditionsOutput(1, 0, 3, 5),
+ new TestWaveConditionsOutput(8, 2, 6, 1)
};
var context = new WaveImpactAsphaltCoverWaveConditionsCalculationContext(
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ExportInfos/WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextExportInfoTest.cs
===================================================================
diff -u -rd42451749e8feec1c96555eb81b1cd7d67e30146 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ExportInfos/WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextExportInfoTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextExportInfoTest.cs) (revision d42451749e8feec1c96555eb81b1cd7d67e30146)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/ExportInfos/WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextExportInfoTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextExportInfoTest.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -26,8 +26,8 @@
using Rhino.Mocks;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Common.Data.Calculation;
-using Ringtoets.Revetment.Data;
using Ringtoets.Revetment.IO;
+using Ringtoets.Revetment.TestUtil;
using Ringtoets.WaveImpactAsphaltCover.Data;
using Ringtoets.WaveImpactAsphaltCover.Forms.PresentationObjects;
using Ringtoets.WaveImpactAsphaltCover.Plugin;
@@ -141,8 +141,8 @@
var calculationGroup = new CalculationGroup();
var output = new[]
{
- new WaveConditionsOutput(1, 0, 3, 5),
- new WaveConditionsOutput(8, 2, 6, 1)
+ new TestWaveConditionsOutput(1, 0, 3, 5),
+ new TestWaveConditionsOutput(8, 2, 6, 1)
};
calculationGroup.Children.Add(new WaveImpactAsphaltCoverWaveConditionsCalculation
@@ -176,15 +176,15 @@
var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism();
var calculationGroup = new CalculationGroup();
- var output = new[]
- {
- new WaveConditionsOutput(1, 0, 3, 5),
- new WaveConditionsOutput(8, 2, 6, 1)
- };
WaveImpactAsphaltCoverWaveConditionsOutput waveImpactAsphaltCoverWaveConditionsOutput = null;
if (hasOutput)
{
+ var output = new[]
+ {
+ new TestWaveConditionsOutput(1, 0, 3, 5),
+ new TestWaveConditionsOutput(8, 2, 6, 1)
+ };
waveImpactAsphaltCoverWaveConditionsOutput = new WaveImpactAsphaltCoverWaveConditionsOutput(output);
}
calculationGroup.Children.Add(
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj
===================================================================
diff -u -re38a7c2baca2872af6319d535c6468133ea31fbc -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision e38a7c2baca2872af6319d535c6468133ea31fbc)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/Ringtoets.Integration.Forms.Test.csproj (.../Ringtoets.Integration.Forms.Test.csproj) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -213,6 +213,10 @@
{E3347B16-BB18-41C1-8D34-FBCBF20DB695}
Ringtoets.Revetment.IO
+
+ {3706200E-48C6-4B86-B48C-4E45C69ABE95}
+ Ringtoets.Revetment.Data.TestUtil
+
{3D4B9740-8348-4434-8D77-B611FC6EE57F}
Ringtoets.StabilityPointStructures.Data
Index: Ringtoets/Revetment/src/Ringtoets.Revetment.Data/WaveConditionsOutput.cs
===================================================================
diff -u -r5cb1e84934857c8ac82e41690e7b6fc510d01927 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Revetment/src/Ringtoets.Revetment.Data/WaveConditionsOutput.cs (.../WaveConditionsOutput.cs) (revision 5cb1e84934857c8ac82e41690e7b6fc510d01927)
+++ Ringtoets/Revetment/src/Ringtoets.Revetment.Data/WaveConditionsOutput.cs (.../WaveConditionsOutput.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -23,9 +23,9 @@
using System.ComponentModel;
using Core.Common.Base;
using Core.Common.Base.Data;
-using Core.Common.Utils;
using Ringtoets.Common.Data.Calculation;
using Ringtoets.HydraRing.Data;
+using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources;
namespace Ringtoets.Revetment.Data
{
@@ -35,6 +35,8 @@
public class WaveConditionsOutput : Observable, ICalculationOutput
{
private CalculationConvergence calculationConvergence;
+ private double targetProbability;
+ private double calculatedProbability;
///
/// Creates a new instance of .
@@ -44,21 +46,26 @@
/// The calculated wave peak period.
/// The calculated wave angle with respect to the dike normal.
/// The calculated wave direction with respect to North.
- /// The return period.
- /// The calculated beta.
- /// All provided output values will be rounded to 2 decimals, except for
- /// and .
+ /// The target probability.
+ /// The target beta (reliability).
+ /// The calculated probability.
+ /// The calculated beta (reliability).
public WaveConditionsOutput(double waterLevel, double waveHeight, double wavePeakPeriod, double waveAngle,
- double waveDirection = double.NaN, double returnPeriod = double.NaN, double calculatedReliability = double.NaN)
+ double waveDirection = double.NaN,
+ double targetProbability = double.NaN, double targetReliability = double.NaN,
+ double calculatedProbability = double.NaN, double calculatedReliability = double.NaN)
{
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);
- TargetReliability = StatisticsConverter.ReturnPeriodToReliability(returnPeriod);
- CalculatedReliability = calculatedReliability;
+ TargetProbability = targetProbability;
+ TargetReliability = new RoundedDouble(6, targetReliability);
+
+ CalculatedProbability = calculatedProbability;
+ CalculatedReliability = new RoundedDouble(6, calculatedReliability);
}
///
@@ -95,15 +102,67 @@
/// Gets the target beta.
/// [-]
///
- public double TargetReliability { get; private set; }
+ public RoundedDouble TargetReliability { get; private set; }
///
+ /// Gets the target probability.
+ ///
+ /// [-]
+ /// Thrown when setting a value that falls
+ /// outside the [0.0, 1.0] range and isn't .
+ public double TargetProbability
+ {
+ get
+ {
+ return targetProbability;
+ }
+ private set
+ {
+ if (double.IsNaN(value) || (0.0 <= value && value <= 1.0))
+ {
+ targetProbability = value;
+ }
+ else
+ {
+ throw new ArgumentOutOfRangeException("value",
+ RingtoetsCommonDataResources.Probability_Must_be_in_range_zero_to_one);
+ }
+ }
+ }
+
+ ///
/// Gets the calculated beta.
/// [-]
///
- public double CalculatedReliability { get; private set; }
+ public RoundedDouble CalculatedReliability { get; private set; }
///
+ /// Gets the target probability.
+ ///
+ /// [-]
+ /// Thrown when setting a value that falls
+ /// outside the [0.0, 1.0] range and isn't .
+ public double CalculatedProbability
+ {
+ get
+ {
+ return calculatedProbability;
+ }
+ private set
+ {
+ if (double.IsNaN(value) || (0.0 <= value && value <= 1.0))
+ {
+ calculatedProbability = value;
+ }
+ else
+ {
+ throw new ArgumentOutOfRangeException("value",
+ RingtoetsCommonDataResources.Probability_Must_be_in_range_zero_to_one);
+ }
+ }
+ }
+
+ ///
/// Gets or sets the convergence status of the calculation.
///
/// Thrown when attempting to set invalid enum value
Index: Ringtoets/Revetment/src/Ringtoets.Revetment.Forms/PropertyClasses/WaveConditionsOutputProperties.cs
===================================================================
diff -u -r5cb1e84934857c8ac82e41690e7b6fc510d01927 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Revetment/src/Ringtoets.Revetment.Forms/PropertyClasses/WaveConditionsOutputProperties.cs (.../WaveConditionsOutputProperties.cs) (revision 5cb1e84934857c8ac82e41690e7b6fc510d01927)
+++ Ringtoets/Revetment/src/Ringtoets.Revetment.Forms/PropertyClasses/WaveConditionsOutputProperties.cs (.../WaveConditionsOutputProperties.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -106,8 +106,7 @@
{
get
{
- double probability = StatisticsConverter.ReliabilityToProbability(data.TargetReliability);
- return ProbabilityFormattingHelper.Format(probability);
+ return ProbabilityFormattingHelper.Format(data.TargetProbability);
}
}
@@ -118,7 +117,7 @@
{
get
{
- return new RoundedDouble(3, data.TargetReliability);
+ return data.TargetReliability;
}
}
@@ -129,8 +128,7 @@
{
get
{
- double probability = StatisticsConverter.ReliabilityToProbability(data.CalculatedReliability);
- return ProbabilityFormattingHelper.Format(probability);
+ return ProbabilityFormattingHelper.Format(data.CalculatedProbability);
}
}
@@ -141,7 +139,7 @@
{
get
{
- return new RoundedDouble(3, data.CalculatedReliability);
+ return data.CalculatedReliability;
}
}
Index: Ringtoets/Revetment/src/Ringtoets.Revetment.Service/Ringtoets.Revetment.Service.csproj
===================================================================
diff -u -rbc4c4000ca4a850b49a88156ca2b919ea690494b -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Revetment/src/Ringtoets.Revetment.Service/Ringtoets.Revetment.Service.csproj (.../Ringtoets.Revetment.Service.csproj) (revision bc4c4000ca4a850b49a88156ca2b919ea690494b)
+++ Ringtoets/Revetment/src/Ringtoets.Revetment.Service/Ringtoets.Revetment.Service.csproj (.../Ringtoets.Revetment.Service.csproj) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -50,6 +50,7 @@
Resources.resx
+
@@ -63,6 +64,10 @@
Core.Common.Base
False
+
+ {f49bd8b2-332a-4c91-a196-8cce0a2c7d98}
+ Core.Common.Utils
+
{d4200f43-3f72-4f42-af0a-8ced416a38ec}
Ringtoets.Common.Data
Index: Ringtoets/Revetment/src/Ringtoets.Revetment.Service/WaveConditionsCalculationServiceBase.cs
===================================================================
diff -u -r5cb1e84934857c8ac82e41690e7b6fc510d01927 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Revetment/src/Ringtoets.Revetment.Service/WaveConditionsCalculationServiceBase.cs (.../WaveConditionsCalculationServiceBase.cs) (revision 5cb1e84934857c8ac82e41690e7b6fc510d01927)
+++ Ringtoets/Revetment/src/Ringtoets.Revetment.Service/WaveConditionsCalculationServiceBase.cs (.../WaveConditionsCalculationServiceBase.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -228,14 +228,13 @@
{
calculator.Calculate(calculationInput);
- var output = new WaveConditionsOutput(waterLevel,
- calculator.WaveHeight,
- calculator.WavePeakPeriod,
- calculator.WaveAngle,
- calculator.WaveDirection,
- returnPeriod,
- calculator.ReliabilityIndex);
- output.CalculationConvergence = RingtoetsCommonDataCalculationService.CalculationConverged(calculator.ReliabilityIndex, returnPeriod);
+ WaveConditionsOutput output = WaveConditionsService.Calculate(waterLevel,
+ calculator.WaveHeight,
+ calculator.WavePeakPeriod,
+ calculator.WaveAngle,
+ calculator.WaveDirection,
+ returnPeriod,
+ calculator.ReliabilityIndex);
return output;
}
catch (HydraRingFileParserException)
Index: Ringtoets/Revetment/src/Ringtoets.Revetment.Service/WaveConditionsService.cs
===================================================================
diff -u
--- Ringtoets/Revetment/src/Ringtoets.Revetment.Service/WaveConditionsService.cs (revision 0)
+++ Ringtoets/Revetment/src/Ringtoets.Revetment.Service/WaveConditionsService.cs (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -0,0 +1,60 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using Core.Common.Utils;
+using Ringtoets.Common.Service;
+using Ringtoets.Revetment.Data;
+
+namespace Ringtoets.Revetment.Service
+{
+ ///
+ /// Class for calculating the .
+ ///
+ public static class WaveConditionsService
+ {
+ ///
+ /// Calculates the based on the provided parameters.
+ ///
+ /// The calculated water level.
+ /// The calculated wave height.
+ /// The calculated wave peak period.
+ /// The calculated wave angle w.r.t the dike normal.
+ /// The calculated wave direction w.r.t. North.
+ /// The target return period to calculate for.
+ /// The calculated reliability.
+ /// The calculated .
+ public static WaveConditionsOutput Calculate(double waterLevel, double waveHeight, double wavePeakPeriod,
+ double waveAngle, double waveDirection,
+ double returnPeriod, double calculatedReliability)
+ {
+ double targetReliability = StatisticsConverter.ReturnPeriodToReliability(returnPeriod);
+ double targetProbability = StatisticsConverter.ReliabilityToProbability(targetReliability);
+
+ double calculatedProbability = StatisticsConverter.ReliabilityToProbability(calculatedReliability);
+
+ return new WaveConditionsOutput(waterLevel, waveHeight, wavePeakPeriod, waveAngle, waveDirection, targetProbability,
+ targetReliability, calculatedProbability, calculatedReliability)
+ {
+ CalculationConvergence = RingtoetsCommonDataCalculationService.CalculationConverged(calculatedReliability, returnPeriod)
+ };
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/Revetment/test/Ringtoets.Revetment.Data.Test/WaveConditionsOutputTest.cs
===================================================================
diff -u -r5cb1e84934857c8ac82e41690e7b6fc510d01927 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Revetment/test/Ringtoets.Revetment.Data.Test/WaveConditionsOutputTest.cs (.../WaveConditionsOutputTest.cs) (revision 5cb1e84934857c8ac82e41690e7b6fc510d01927)
+++ Ringtoets/Revetment/test/Ringtoets.Revetment.Data.Test/WaveConditionsOutputTest.cs (.../WaveConditionsOutputTest.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -23,7 +23,6 @@
using System.ComponentModel;
using Core.Common.Base;
using Core.Common.TestUtil;
-using Core.Common.Utils;
using NUnit.Framework;
using Ringtoets.Common.Data.Calculation;
using Ringtoets.Common.Data.TestUtil;
@@ -43,14 +42,14 @@
const double wavePeakPeriod = 0.19435;
const double waveAngle = 180.62353;
const double waveDirection = 230.67893;
- const double returnPeriod = 6000000;
+ const double targetProbability = 0.5;
+ const double targetReliability = 3000;
+ const double calculatedProbability = 0.7;
+ const double calculatedReliability = 4000;
- var random = new Random(21);
- double calculatedBeta = random.NextDouble();
-
// Call
- var output = new WaveConditionsOutput(waterLevel, waveHeight, wavePeakPeriod, waveAngle, waveDirection, returnPeriod,
- calculatedBeta);
+ var output = new WaveConditionsOutput(waterLevel, waveHeight, wavePeakPeriod, waveAngle, waveDirection, targetProbability,
+ targetReliability, calculatedProbability, calculatedReliability);
// Assert
Assert.IsInstanceOf(output);
@@ -61,31 +60,92 @@
Assert.AreEqual(waveAngle, output.WaveAngle, output.WaveAngle.GetAccuracy());
Assert.AreEqual(waveDirection, output.WaveDirection, output.WaveDirection.GetAccuracy());
- Assert.AreEqual(StatisticsConverter.ReturnPeriodToReliability(returnPeriod), output.TargetReliability);
- Assert.AreEqual(calculatedBeta, output.CalculatedReliability);
+ Assert.AreEqual(targetProbability, output.TargetProbability);
+ Assert.AreEqual(6, output.TargetReliability.NumberOfDecimalPlaces);
+ Assert.AreEqual(targetReliability, output.TargetReliability, output.TargetReliability.GetAccuracy());
+ Assert.AreEqual(calculatedProbability, output.CalculatedProbability);
+ Assert.AreEqual(6, output.CalculatedReliability.NumberOfDecimalPlaces);
+ Assert.AreEqual(calculatedReliability, output.CalculatedReliability, output.CalculatedReliability.GetAccuracy());
Assert.AreEqual(CalculationConvergence.NotCalculated, output.CalculationConvergence);
}
[Test]
+ [TestCase(0.0)]
+ [TestCase(1.0)]
+ [TestCase(0.5)]
+ [TestCase(double.NaN)]
+ public void TargetProbability_ValidValues_ReturnsExpectedValue(double targetProbability)
+ {
+ // Call
+ var output = new WaveConditionsOutput(double.NaN, double.NaN, double.NaN, double.NaN, double.NaN, targetProbability,
+ double.NaN, double.NaN, double.NaN);
+
+ // Assert
+ Assert.AreEqual(targetProbability, output.TargetProbability);
+ }
+
+ [Test]
+ [TestCase(-1e-6)]
+ [TestCase(1 + 1e-6)]
+ [TestCase(-100)]
+ [TestCase(100)]
+ [TestCase(double.NegativeInfinity)]
+ [TestCase(double.PositiveInfinity)]
+ public void TargetProbability_InvalidValues_ThrowsArgumentOutOfRangeException(double targetProbability)
+ {
+ // Call
+ TestDelegate call = () => new WaveConditionsOutput(double.NaN, double.NaN, double.NaN, double.NaN, double.NaN, targetProbability,
+ double.NaN, double.NaN, double.NaN);
+
+ // Assert
+ const string expectedMessage = "Kans moet in het bereik [0, 1] liggen.";
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage);
+ }
+
+
+ [Test]
+ [TestCase(0.0)]
+ [TestCase(1.0)]
+ [TestCase(0.5)]
+ [TestCase(double.NaN)]
+ public void CalculatedProbability_ValidValues_ReturnsExpectedValue(double calculatedProbability)
+ {
+ // Call
+ var output = new WaveConditionsOutput(double.NaN, double.NaN, double.NaN, double.NaN, double.NaN, double.NaN,
+ double.NaN, calculatedProbability, double.NaN);
+
+ // Assert
+ Assert.AreEqual(calculatedProbability, output.CalculatedProbability);
+ }
+
+ [Test]
+ [TestCase(-1e-6)]
+ [TestCase(1 + 1e-6)]
+ [TestCase(-100)]
+ [TestCase(100)]
+ [TestCase(double.NegativeInfinity)]
+ [TestCase(double.PositiveInfinity)]
+ public void CalculatedProbability_InvalidValues_ThrowsArgumentOutOfRangeException(double calculatedProbability)
+ {
+ // Call
+ TestDelegate call = () => new WaveConditionsOutput(double.NaN, double.NaN, double.NaN, double.NaN, double.NaN, double.NaN,
+ double.NaN, calculatedProbability, double.NaN);
+
+ // Assert
+ const string expectedMessage = "Kans moet in het bereik [0, 1] liggen.";
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage);
+ }
+
+ [Test]
[TestCase(CalculationConvergence.NotCalculated)]
[TestCase(CalculationConvergence.CalculatedConverged)]
[TestCase(CalculationConvergence.CalculatedNotConverged)]
public void CalculationConvergence_ValidValues_SetsCalculationConvergence(CalculationConvergence convergence)
{
// 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;
+ var output = new WaveConditionsOutput(double.NaN, double.NaN, double.NaN, double.NaN, double.NaN, double.NaN,
+ double.NaN, double.NaN, double.NaN);
- var random = new Random(21);
- double returnPeriod = random.NextDouble();
- double calculatedBeta = random.NextDouble();
-
- var output = new WaveConditionsOutput(waterLevel, waveHeight, wavePeakPeriod, waveAngle, waveDirection, returnPeriod,
- calculatedBeta);
-
// Call
output.CalculationConvergence = convergence;
@@ -97,19 +157,9 @@
public void CalculationConvergence_Invalidvalue_ThrowsInvalidEnumArgumentException()
{
// 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 returnPeriod = 6000000;
+ var output = new WaveConditionsOutput(double.NaN, double.NaN, double.NaN, double.NaN, double.NaN, double.NaN,
+ double.NaN, double.NaN, double.NaN);
- var random = new Random(21);
- double calculatedBeta = random.NextDouble();
-
- var output = new WaveConditionsOutput(waterLevel, waveHeight, wavePeakPeriod, waveAngle, waveDirection, returnPeriod,
- calculatedBeta);
-
// Call
TestDelegate call = () => output.CalculationConvergence = (CalculationConvergence) 9001;
Index: Ringtoets/Revetment/test/Ringtoets.Revetment.Data.TestUtil.Test/TestWaveConditionsOutputTest.cs
===================================================================
diff -u -r215e7512a8046a8f6ba71276c85d5880328d5ba1 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Revetment/test/Ringtoets.Revetment.Data.TestUtil.Test/TestWaveConditionsOutputTest.cs (.../TestWaveConditionsOutputTest.cs) (revision 215e7512a8046a8f6ba71276c85d5880328d5ba1)
+++ Ringtoets/Revetment/test/Ringtoets.Revetment.Data.TestUtil.Test/TestWaveConditionsOutputTest.cs (.../TestWaveConditionsOutputTest.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -20,7 +20,6 @@
// All rights reserved.
using System;
-using Core.Common.Utils;
using NUnit.Framework;
using Ringtoets.Common.Data.TestUtil;
using Ringtoets.HydraRing.Data;
@@ -44,17 +43,18 @@
Assert.AreEqual(4.4, output.WaveAngle, output.WaveAngle.GetAccuracy());
Assert.AreEqual(5.5, output.WaveDirection, output.WaveDirection.GetAccuracy());
- double expectedTargetReliability = StatisticsConverter.ReturnPeriodToReliability(3000);
- Assert.AreEqual(expectedTargetReliability, output.TargetReliability);
- Assert.AreEqual(12.3, output.CalculatedReliability);
+ Assert.AreEqual(0.1, output.TargetProbability);
+ Assert.AreEqual(1.282, output.TargetReliability, output.TargetReliability.GetAccuracy());
+ Assert.AreEqual(0.4, output.CalculatedProbability);
+ Assert.AreEqual(0.253, output.CalculatedReliability, output.TargetReliability.GetAccuracy());
Assert.AreEqual(CalculationConvergence.NotCalculated, output.CalculationConvergence);
}
[Test]
[TestCase(CalculationConvergence.NotCalculated)]
[TestCase(CalculationConvergence.CalculatedConverged)]
[TestCase(CalculationConvergence.CalculatedNotConverged)]
- public void Constructor_WithParameters_ReturnsWithExpectedCalculationConvergence(CalculationConvergence convergence)
+ public void Constructor_WithParameters_ReturnsWithExpectedValues(CalculationConvergence convergence)
{
// Setup
var random = new Random(21);
@@ -73,9 +73,10 @@
Assert.AreEqual(waveAngle, output.WaveAngle, output.WaveAngle.GetAccuracy());
Assert.AreEqual(5.5, output.WaveDirection, output.WaveDirection.GetAccuracy());
- double expectedTargetReliability = StatisticsConverter.ReturnPeriodToReliability(3000);
- Assert.AreEqual(expectedTargetReliability, output.TargetReliability);
- Assert.AreEqual(12.3, output.CalculatedReliability);
+ Assert.AreEqual(0.1, output.TargetProbability);
+ Assert.AreEqual(1.282, output.TargetReliability, output.TargetReliability.GetAccuracy());
+ Assert.AreEqual(0.4, output.CalculatedProbability);
+ Assert.AreEqual(0.253, output.CalculatedReliability, output.TargetReliability.GetAccuracy());
Assert.AreEqual(convergence, output.CalculationConvergence);
}
}
Index: Ringtoets/Revetment/test/Ringtoets.Revetment.Data.TestUtil/TestWaveConditionsOutput.cs
===================================================================
diff -u -r215e7512a8046a8f6ba71276c85d5880328d5ba1 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Revetment/test/Ringtoets.Revetment.Data.TestUtil/TestWaveConditionsOutput.cs (.../TestWaveConditionsOutput.cs) (revision 215e7512a8046a8f6ba71276c85d5880328d5ba1)
+++ Ringtoets/Revetment/test/Ringtoets.Revetment.Data.TestUtil/TestWaveConditionsOutput.cs (.../TestWaveConditionsOutput.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -44,7 +44,7 @@
/// The calculated wave peak period
public TestWaveConditionsOutput(double waterLevel, double waveHeight, double wavePeakPeriod, double waveAngle,
CalculationConvergence convergence = CalculationConvergence.NotCalculated) :
- base(waterLevel, waveHeight, wavePeakPeriod, waveAngle, 5.5, 3000, 12.3)
+ base(waterLevel, waveHeight, wavePeakPeriod, waveAngle, 5.5, 0.1, 1.282, 0.4, 0.253)
{
CalculationConvergence = convergence;
}
Index: Ringtoets/Revetment/test/Ringtoets.Revetment.Forms.Test/PropertyClasses/WaveConditionsOutputPropertiesTest.cs
===================================================================
diff -u -r5cb1e84934857c8ac82e41690e7b6fc510d01927 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Revetment/test/Ringtoets.Revetment.Forms.Test/PropertyClasses/WaveConditionsOutputPropertiesTest.cs (.../WaveConditionsOutputPropertiesTest.cs) (revision 5cb1e84934857c8ac82e41690e7b6fc510d01927)
+++ Ringtoets/Revetment/test/Ringtoets.Revetment.Forms.Test/PropertyClasses/WaveConditionsOutputPropertiesTest.cs (.../WaveConditionsOutputPropertiesTest.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -23,7 +23,6 @@
using System.ComponentModel;
using Core.Common.Gui.PropertyBag;
using Core.Common.TestUtil;
-using Core.Common.Utils;
using NUnit.Framework;
using Ringtoets.Common.Data.TestUtil;
using Ringtoets.Common.Forms.Helpers;
@@ -55,14 +54,16 @@
const double wavePeakPeriod = 0.19435;
const double waveAngle = 180.62353;
const double waveDirection = 230.5326;
- const double returnPeriod = 3000;
- const double calculatedBeta = 67.856;
+ const double targetProbability = 0.5;
+ const double targetReliability = 3000;
+ const double calculatedProbability = 0.4;
+ const double calculatedReliability = 6000;
// Call
var properties = new WaveConditionsOutputProperties
{
- Data = new WaveConditionsOutput(waterLevel, waveHeight, wavePeakPeriod, waveAngle, waveDirection, returnPeriod,
- calculatedBeta)
+ Data = new WaveConditionsOutput(waterLevel, waveHeight, wavePeakPeriod, waveAngle, waveDirection, targetProbability,
+ targetReliability, calculatedProbability, calculatedReliability)
};
// Assert
@@ -72,16 +73,13 @@
Assert.AreEqual(waveAngle, properties.WaveAngle, properties.WaveAngle.GetAccuracy());
Assert.AreEqual(waveDirection, properties.WaveDirection, properties.WaveDirection.GetAccuracy());
- const double accuracy = 1e-3;
- double expectedTargetReliability = StatisticsConverter.ReturnPeriodToReliability(returnPeriod);
- double targetProbability = StatisticsConverter.ReliabilityToProbability(expectedTargetReliability);
-
Assert.AreEqual(ProbabilityFormattingHelper.Format(targetProbability), properties.TargetProbability);
- Assert.AreEqual(expectedTargetReliability, properties.TargetReliability, accuracy);
+ Assert.AreEqual(6, properties.TargetReliability.NumberOfDecimalPlaces);
+ Assert.AreEqual(targetReliability, properties.TargetReliability, properties.TargetReliability.GetAccuracy());
- double expectedCalculatedProbability = StatisticsConverter.ReliabilityToProbability(calculatedBeta);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedCalculatedProbability), properties.CalculatedProbability);
- Assert.AreEqual(calculatedBeta, properties.CalculatedReliability, accuracy);
+ Assert.AreEqual(ProbabilityFormattingHelper.Format(calculatedProbability), properties.CalculatedProbability);
+ Assert.AreEqual(6, properties.CalculatedReliability.NumberOfDecimalPlaces);
+ Assert.AreEqual(calculatedReliability, properties.CalculatedReliability, properties.CalculatedReliability.GetAccuracy());
Assert.AreEqual(string.Empty, properties.Convergence);
}
@@ -95,14 +93,16 @@
const double wavePeakPeriod = 0.19435;
const double waveAngle = 180.62353;
const double waveDirection = 230.5326;
- const double returnPeriod = 3000;
- const double calculatedBeta = 67.856;
+ const double targetProbability = 0.5;
+ const double targetReliability = 3000;
+ const double calculatedProbability = 0.4;
+ const double calculatedReliability = 6000;
// Call
var properties = new WaveConditionsOutputProperties
{
- Data = new WaveConditionsOutput(waterLevel, waveHeight, wavePeakPeriod, waveAngle, waveDirection, returnPeriod,
- calculatedBeta)
+ Data = new WaveConditionsOutput(waterLevel, waveHeight, wavePeakPeriod, waveAngle, waveDirection, targetProbability,
+ targetReliability, calculatedProbability, calculatedReliability)
};
// Assert
@@ -172,7 +172,7 @@
"Betrouwbaarheidsindex van de ingevoerde kans waarvoor het resultaat moet worden berekend.",
true);
- PropertyDescriptor calculatedProbabilityProperty= dynamicProperties[requiredCalculatedProbabilityPropertyIndex];
+ PropertyDescriptor calculatedProbabilityProperty = dynamicProperties[requiredCalculatedProbabilityPropertyIndex];
Assert.IsNotNull(calculatedProbabilityProperty);
PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(calculatedProbabilityProperty,
"Algemeen",
Index: Ringtoets/Revetment/test/Ringtoets.Revetment.Service.Test/Ringtoets.Revetment.Service.Test.csproj
===================================================================
diff -u -r2d5e2d09b0cb1a7f48e1b0a067d332347c89d4a8 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/Revetment/test/Ringtoets.Revetment.Service.Test/Ringtoets.Revetment.Service.Test.csproj (.../Ringtoets.Revetment.Service.Test.csproj) (revision 2d5e2d09b0cb1a7f48e1b0a067d332347c89d4a8)
+++ Ringtoets/Revetment/test/Ringtoets.Revetment.Service.Test/Ringtoets.Revetment.Service.Test.csproj (.../Ringtoets.Revetment.Service.Test.csproj) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -55,6 +55,7 @@
+
@@ -71,6 +72,10 @@
{3bbfd65b-b277-4e50-ae6d-bd24c3434609}
Core.Common.Base
+
+ {f49bd8b2-332a-4c91-a196-8cce0a2c7d98}
+ Core.Common.Utils
+
{D749EE4C-CE50-4C17-BF01-9A953028C126}
Core.Common.TestUtil
Index: Ringtoets/Revetment/test/Ringtoets.Revetment.Service.Test/WaveConditionsServiceTest.cs
===================================================================
diff -u
--- Ringtoets/Revetment/test/Ringtoets.Revetment.Service.Test/WaveConditionsServiceTest.cs (revision 0)
+++ Ringtoets/Revetment/test/Ringtoets.Revetment.Service.Test/WaveConditionsServiceTest.cs (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -0,0 +1,148 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using Core.Common.Utils;
+using NUnit.Framework;
+using Ringtoets.Common.Data.TestUtil;
+using Ringtoets.HydraRing.Data;
+using Ringtoets.Revetment.Data;
+
+namespace Ringtoets.Revetment.Service.Test
+{
+ [TestFixture]
+ public class WaveConditionsServiceTest
+ {
+ [Test]
+ public void Calculate_NonProbabilisticInput_ReturnsExpectedNonProbabilisticValues()
+ {
+ // 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;
+
+ // Call
+ WaveConditionsOutput output = WaveConditionsService.Calculate(waterLevel, waveHeight, wavePeakPeriod,
+ waveAngle, waveDirection, double.MinValue, double.NaN);
+
+ // 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());
+ }
+
+ [Test]
+ public void CalculationConverged_WithConvergedResults_CalculationConvergedTrue()
+ {
+ // Setup
+ double returnPeriod = 1.0e3;
+ double calculatedReliability = StatisticsConverter.ReturnPeriodToReliability(returnPeriod);
+
+ // Call
+ WaveConditionsOutput output = WaveConditionsService.Calculate(double.NaN, double.NaN, double.NaN, double.NaN,
+ double.NaN, returnPeriod, calculatedReliability);
+
+ // Assert
+ Assert.AreEqual(CalculationConvergence.CalculatedConverged, output.CalculationConvergence);
+ }
+
+ [Test]
+ public void CalculationConverged_WithoutConvergedResults_CalculationConvergedFalse()
+ {
+ // Call
+ WaveConditionsOutput output = WaveConditionsService.Calculate(double.NaN, double.NaN, double.NaN, double.NaN,
+ double.NaN, 1, 5.0e-3);
+
+ // Assert
+ Assert.AreEqual(CalculationConvergence.CalculatedNotConverged, output.CalculationConvergence);
+ }
+
+ [Test]
+ [TestCase(1.1, -1.335177736118940)]
+ [TestCase(3000, 3.402932835385330)]
+ [TestCase(20000, 3.890591886413120)]
+ [TestCase(30000, 3.987878936606940)]
+ [TestCase(600000, 4.649132934007460)]
+ [TestCase(1000000, 4.75342430881709)]
+ [TestCase(6000000, 5.103554002888150)]
+ public void TargetReliability_DifferentReturnPeriods_ReturnsExpectedValues(double returnPeriod, double expectedReliability)
+ {
+ // Call
+ WaveConditionsOutput output = WaveConditionsService.Calculate(double.NaN, double.NaN, double.NaN, double.NaN,
+ double.NaN, returnPeriod, double.NaN);
+
+ // Assert
+ Assert.AreEqual(expectedReliability, output.TargetReliability, output.TargetReliability.GetAccuracy());
+ }
+
+ [Test]
+ [TestCase(1.1, 9.090909E-01)]
+ [TestCase(3000, 3.333333E-04)]
+ [TestCase(20000, 5.000000E-05)]
+ [TestCase(30000, 3.333333E-05)]
+ [TestCase(600000, 1.666667E-06)]
+ [TestCase(1000000, 1.000000E-06)]
+ [TestCase(6000000, 1.666667E-07)]
+ public void TargetProbability_DifferentReturnPeriods_ReturnsExpectedValues(double returnPeriod, double expectedProbability)
+ {
+ // Call
+ WaveConditionsOutput output = WaveConditionsService.Calculate(double.NaN, double.NaN, double.NaN, double.NaN,
+ double.NaN, returnPeriod, double.NaN);
+
+ // Assert
+ Assert.AreEqual(expectedProbability, output.TargetProbability, 1e-6);
+ }
+
+ [Test]
+ [TestCase(-1.335177736118940, -1.335177736118940)]
+ [TestCase(3.402932835385330, 3.402932835385330)]
+ public void CalculatedReliability_DifferentReliabilities_ReturnsExpectedValues(double reliability, double expectedReliability)
+ {
+ // Call
+ WaveConditionsOutput output = WaveConditionsService.Calculate(double.NaN, double.NaN, double.NaN, double.NaN,
+ double.NaN, double.MinValue, reliability);
+
+ // Assert
+ Assert.AreEqual(expectedReliability, output.CalculatedReliability, output.CalculatedReliability.GetAccuracy());
+ }
+
+ [Test]
+ [TestCase(-1.335177736118940, 9.090909E-01)]
+ [TestCase(3.402932835385330, 3.333333E-04)]
+ [TestCase(3.890591886413120, 5.000000E-05)]
+ [TestCase(3.987878936606940, 3.333333E-05)]
+ [TestCase(4.649132934007460, 1.666667E-06)]
+ [TestCase(4.753424308817090, 1.000000E-06)]
+ [TestCase(5.103554002888150, 1.666667E-07)]
+ public void CalculatedProbability_DifferentReliabilities_ReturnsExpectedValues(double reliability, double expectedProbability)
+ {
+ // Call
+ WaveConditionsOutput output = WaveConditionsService.Calculate(double.NaN, double.NaN, double.NaN, double.NaN,
+ double.NaN, double.MinValue, reliability);
+
+ // Assert
+ Assert.AreEqual(expectedProbability, output.CalculatedProbability, 1e-6);
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/PropertyClasses/StabilityStoneCoverWaveConditionsOutputPropertiesTest.cs
===================================================================
diff -u -r215e7512a8046a8f6ba71276c85d5880328d5ba1 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/PropertyClasses/StabilityStoneCoverWaveConditionsOutputPropertiesTest.cs (.../StabilityStoneCoverWaveConditionsOutputPropertiesTest.cs) (revision 215e7512a8046a8f6ba71276c85d5880328d5ba1)
+++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/PropertyClasses/StabilityStoneCoverWaveConditionsOutputPropertiesTest.cs (.../StabilityStoneCoverWaveConditionsOutputPropertiesTest.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -84,21 +84,16 @@
Assert.AreEqual(firstBlocksOutput.WavePeakPeriod, firstBlocksProperties.WavePeakPeriod);
Assert.AreEqual(firstBlocksOutput.WaveAngle, firstBlocksProperties.WaveAngle);
Assert.AreEqual(firstBlocksOutput.WaveDirection, firstBlocksProperties.WaveDirection);
-
- double expectedBlocksTargerReliability = firstBlocksOutput.TargetReliability;
- double expectedBlocksTargetProbability = StatisticsConverter.ReliabilityToProbability(expectedBlocksTargerReliability);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedBlocksTargetProbability), firstBlocksProperties.TargetProbability);
- Assert.AreEqual(expectedBlocksTargerReliability, firstBlocksProperties.TargetReliability,
+ Assert.AreEqual(ProbabilityFormattingHelper.Format(firstBlocksOutput.TargetProbability),
+ firstBlocksProperties.TargetProbability);
+ Assert.AreEqual(firstBlocksOutput.TargetReliability, firstBlocksProperties.TargetReliability,
firstBlocksProperties.TargetReliability.GetAccuracy());
-
- double expectedBlocksCalculatedReliability = firstBlocksOutput.TargetReliability;
- double expectedBlocksCalculatedProbability = StatisticsConverter.ReliabilityToProbability(expectedBlocksCalculatedReliability);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedBlocksCalculatedProbability), firstBlocksProperties.TargetProbability);
- Assert.AreEqual(expectedBlocksTargerReliability, firstBlocksProperties.TargetReliability,
+ Assert.AreEqual(ProbabilityFormattingHelper.Format(firstBlocksOutput.CalculatedProbability),
+ firstBlocksProperties.CalculatedProbability);
+ Assert.AreEqual(firstBlocksOutput.TargetReliability, firstBlocksProperties.TargetReliability,
firstBlocksProperties.TargetReliability.GetAccuracy());
-
Assert.AreEqual(string.Empty, firstBlocksProperties.Convergence);
-
+
CollectionAssert.AllItemsAreInstancesOfType(properties.Columns, typeof(WaveConditionsOutputProperties));
Assert.AreEqual(columnsOutput.Length, properties.Columns.Length);
@@ -109,21 +104,15 @@
Assert.AreEqual(firstColumnsOutput.WavePeakPeriod, firstColumnsProperties.WavePeakPeriod);
Assert.AreEqual(firstColumnsOutput.WaveAngle, firstColumnsProperties.WaveAngle);
Assert.AreEqual(firstColumnsOutput.WaveDirection, firstColumnsProperties.WaveDirection);
-
- double expectedColumnsTargerReliability = firstBlocksOutput.TargetReliability;
- double expectedColumnsTargetProbability = StatisticsConverter.ReliabilityToProbability(expectedColumnsTargerReliability);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedColumnsTargetProbability), firstBlocksProperties.TargetProbability);
- Assert.AreEqual(expectedColumnsTargerReliability, firstBlocksProperties.TargetReliability,
- firstBlocksProperties.TargetReliability.GetAccuracy());
-
- double expectedColumnsCalculatedReliability = firstBlocksOutput.TargetReliability;
- double expectedColumnsCalculatedProbability = StatisticsConverter.ReliabilityToProbability(expectedColumnsCalculatedReliability);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedColumnsCalculatedProbability), firstBlocksProperties.TargetProbability);
- Assert.AreEqual(expectedColumnsTargerReliability, firstBlocksProperties.TargetReliability,
- firstBlocksProperties.TargetReliability.GetAccuracy());
-
+ Assert.AreEqual(ProbabilityFormattingHelper.Format(firstColumnsOutput.TargetProbability),
+ firstColumnsProperties.TargetProbability);
+ Assert.AreEqual(firstColumnsOutput.TargetReliability, firstColumnsProperties.TargetReliability,
+ firstColumnsProperties.TargetReliability.GetAccuracy());
+ Assert.AreEqual(ProbabilityFormattingHelper.Format(firstBlocksOutput.CalculatedProbability),
+ firstColumnsProperties.CalculatedProbability);
+ Assert.AreEqual(firstColumnsOutput.TargetReliability, firstColumnsProperties.TargetReliability,
+ firstColumnsProperties.TargetReliability.GetAccuracy());
Assert.AreEqual(string.Empty, firstBlocksProperties.Convergence);
-
}
[Test]
Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Forms.Test/PropertyClasses/WaveImpactAsphaltCoverWaveConditionsOutputPropertiesTest.cs
===================================================================
diff -u -r215e7512a8046a8f6ba71276c85d5880328d5ba1 -r714ecb29352663cc4b18f7d00d09ed73b863c53f
--- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Forms.Test/PropertyClasses/WaveImpactAsphaltCoverWaveConditionsOutputPropertiesTest.cs (.../WaveImpactAsphaltCoverWaveConditionsOutputPropertiesTest.cs) (revision 215e7512a8046a8f6ba71276c85d5880328d5ba1)
+++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Forms.Test/PropertyClasses/WaveImpactAsphaltCoverWaveConditionsOutputPropertiesTest.cs (.../WaveImpactAsphaltCoverWaveConditionsOutputPropertiesTest.cs) (revision 714ecb29352663cc4b18f7d00d09ed73b863c53f)
@@ -23,7 +23,6 @@
using System.ComponentModel;
using Core.Common.Gui.Converters;
using Core.Common.Gui.PropertyBag;
-using Core.Common.Utils;
using NUnit.Framework;
using Ringtoets.Common.Data.TestUtil;
using Ringtoets.Common.Forms.Helpers;
@@ -77,17 +76,13 @@
Assert.AreEqual(expectedOutputProperty.WavePeakPeriod, firstOutputProperties.WavePeakPeriod);
Assert.AreEqual(expectedOutputProperty.WaveAngle, firstOutputProperties.WaveAngle);
Assert.AreEqual(expectedOutputProperty.WaveDirection, firstOutputProperties.WaveDirection);
-
- double expectedTargetReliability = expectedOutputProperty.TargetReliability;
- double expectedTargetProbability = StatisticsConverter.ReliabilityToProbability(expectedTargetReliability);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedTargetProbability), firstOutputProperties.TargetProbability);
- Assert.AreEqual(expectedTargetReliability, firstOutputProperties.TargetReliability,
+ Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedOutputProperty.TargetProbability),
+ firstOutputProperties.TargetProbability);
+ Assert.AreEqual(expectedOutputProperty.TargetReliability, firstOutputProperties.TargetReliability,
firstOutputProperties.TargetReliability.GetAccuracy());
-
- double expectedCalculatedReliability = expectedOutputProperty.TargetReliability;
- double expectedCalculatedProbability = StatisticsConverter.ReliabilityToProbability(expectedCalculatedReliability);
- Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedCalculatedProbability), firstOutputProperties.TargetProbability);
- Assert.AreEqual(expectedTargetReliability, firstOutputProperties.TargetReliability,
+ Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedOutputProperty.TargetProbability),
+ firstOutputProperties.TargetProbability);
+ Assert.AreEqual(expectedOutputProperty.TargetReliability, firstOutputProperties.TargetReliability,
firstOutputProperties.TargetReliability.GetAccuracy());
Assert.AreEqual(string.Empty, firstOutputProperties.Convergence);
}