Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCalculationInput.cs
===================================================================
diff -u
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCalculationInput.cs (revision 0)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCalculationInput.cs (revision 8797ed1774bf2255a1370fafe122d9150f79e365)
@@ -0,0 +1,149 @@
+// 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 System.Collections.Generic;
+using Core.Common.Utils;
+
+namespace Ringtoets.HydraRing.Calculation.Data.Input.WaveConditions
+{
+ ///
+ /// Container of all data necessary for performing a wave conditions calculation (Q-variant) via Hydra-Ring.
+ ///
+ public abstract class WaveConditionsCalculationInput : HydraRingCalculationInput
+ {
+ private readonly double beta;
+ private readonly IEnumerable forelandPoints;
+ private readonly HydraRingBreakWater breakWater;
+ private readonly double waterLevel;
+ private readonly double a;
+ private readonly double b;
+ private readonly HydraRingSection section;
+
+ ///
+ /// Creates a new instance of the class.
+ ///
+ /// The id of the section to use during the calculation.
+ /// The id of the hydraulic station to use during the calculation.
+ /// The norm to use during the calculation.
+ /// The foreland points to use during the calculation.
+ /// The break water to use during the calculation.
+ /// The water level to calculate the wave conditions for.
+ /// The a-value to use during the calculation.
+ /// The b-value to use during the calculation.
+ /// As a part of the constructor, the is automatically converted into a reliability index.
+ protected WaveConditionsCalculationInput(int sectionId,
+ long hydraulicBoundaryLocationId,
+ double norm,
+ IEnumerable forelandPoints,
+ HydraRingBreakWater breakWater,
+ double waterLevel,
+ double a,
+ double b)
+ : base(hydraulicBoundaryLocationId)
+ {
+ beta = StatisticsConverter.NormToBeta(norm);
+ this.forelandPoints = forelandPoints;
+ this.breakWater = breakWater;
+ this.waterLevel = waterLevel;
+ this.a = a;
+ this.b = b;
+ section = new HydraRingSection(sectionId, double.NaN, double.NaN);
+ }
+
+ public override HydraRingFailureMechanismType FailureMechanismType
+ {
+ get
+ {
+ return HydraRingFailureMechanismType.QVariant;
+ }
+ }
+
+ public override int CalculationTypeId
+ {
+ get
+ {
+ return 6;
+ }
+ }
+
+ public override int VariableId
+ {
+ get
+ {
+ return 114;
+ }
+ }
+
+ public override HydraRingSection Section
+ {
+ get
+ {
+ return section;
+ }
+ }
+
+ public override IEnumerable Variables
+ {
+ get
+ {
+ // Water level
+ yield return new HydraRingVariable(113, HydraRingDistributionType.Deterministic, waterLevel,
+ HydraRingDeviationType.Standard, double.NaN, double.NaN, double.NaN);
+
+ // Resistance Q-variant
+ yield return new HydraRingVariable(114, HydraRingDistributionType.Deterministic, 1.0,
+ HydraRingDeviationType.Standard, double.NaN, double.NaN, double.NaN);
+
+ // a-value
+ yield return new HydraRingVariable(115, HydraRingDistributionType.Deterministic, a,
+ HydraRingDeviationType.Standard, double.NaN, double.NaN, double.NaN);
+
+ // b-value
+ yield return new HydraRingVariable(116, HydraRingDistributionType.Deterministic, b,
+ HydraRingDeviationType.Standard, double.NaN, double.NaN, double.NaN);
+ }
+ }
+
+ public override IEnumerable ForelandsPoints
+ {
+ get
+ {
+ return forelandPoints;
+ }
+ }
+
+ public override HydraRingBreakWater BreakWater
+ {
+ get
+ {
+ return breakWater;
+ }
+ }
+
+ public override double Beta
+ {
+ get
+ {
+ return beta;
+ }
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCosineInput.cs
===================================================================
diff -u -rca150e0e418e5e89ba6c3db7bff6f07bfa1c2102 -r8797ed1774bf2255a1370fafe122d9150f79e365
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCosineInput.cs (.../WaveConditionsCosineInput.cs) (revision ca150e0e418e5e89ba6c3db7bff6f07bfa1c2102)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCosineInput.cs (.../WaveConditionsCosineInput.cs) (revision 8797ed1774bf2255a1370fafe122d9150f79e365)
@@ -27,7 +27,7 @@
///
/// Container of all data necessary for performing a cosine based wave conditions calculation (Q-variant) via Hydra-Ring.
///
- public class WaveConditionsCosineInput : WaveConditionsInput
+ public class WaveConditionsCosineInput : WaveConditionsCalculationInput
{
private readonly double c;
Fisheye: Tag 8797ed1774bf2255a1370fafe122d9150f79e365 refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsInput.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsTrapezoidInput.cs
===================================================================
diff -u -rca150e0e418e5e89ba6c3db7bff6f07bfa1c2102 -r8797ed1774bf2255a1370fafe122d9150f79e365
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsTrapezoidInput.cs (.../WaveConditionsTrapezoidInput.cs) (revision ca150e0e418e5e89ba6c3db7bff6f07bfa1c2102)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsTrapezoidInput.cs (.../WaveConditionsTrapezoidInput.cs) (revision 8797ed1774bf2255a1370fafe122d9150f79e365)
@@ -27,7 +27,7 @@
///
/// Container of all data necessary for performing a trapezoid based wave conditions calculation (Q-variant) via Hydra-Ring.
///
- public class WaveConditionsTrapezoidInput : WaveConditionsInput
+ public class WaveConditionsTrapezoidInput : WaveConditionsCalculationInput
{
private readonly double beta1;
private readonly double beta2;
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj
===================================================================
diff -u -r9dd80fda99e5d5b90931986f959b53c52da150b1 -r8797ed1774bf2255a1370fafe122d9150f79e365
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision 9dd80fda99e5d5b90931986f959b53c52da150b1)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision 8797ed1774bf2255a1370fafe122d9150f79e365)
@@ -58,7 +58,7 @@
-
+
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Input/WaveConditions/WaveConditionsCalculationInputTest.cs
===================================================================
diff -u
--- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Input/WaveConditions/WaveConditionsCalculationInputTest.cs (revision 0)
+++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Input/WaveConditions/WaveConditionsCalculationInputTest.cs (revision 8797ed1774bf2255a1370fafe122d9150f79e365)
@@ -0,0 +1,104 @@
+// 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 System.Collections.Generic;
+using System.Linq;
+using Core.Common.Utils;
+using NUnit.Framework;
+using Ringtoets.HydraRing.Calculation.Data;
+using Ringtoets.HydraRing.Calculation.Data.Input;
+using Ringtoets.HydraRing.Calculation.Data.Input.WaveConditions;
+using Ringtoets.HydraRing.Calculation.TestUtil;
+
+namespace Ringtoets.HydraRing.Calculation.Test.Data.Input.WaveConditions
+{
+ [TestFixture]
+ public class WaveConditionsCalculationInputTest
+ {
+ [Test]
+ public void Constructor_Always_ExpectedValues()
+ {
+ // Setup
+ const int sectionId = 111;
+ const int hydraulicBoundaryLocationId = 222;
+ const int norm = 333;
+ var forelandPoints = Enumerable.Empty();
+ var breakWater = new HydraRingBreakWater(1, 4.4);
+ const double waterLevel = 5.5;
+ const double a = 6.6;
+ const double b = 7.7;
+
+ // Call
+ var waveConditionsInput = new WaveConditionsCalculationInputImplementation(sectionId,
+ hydraulicBoundaryLocationId,
+ norm,
+ forelandPoints,
+ breakWater,
+ waterLevel,
+ a,
+ b);
+
+ // Assert
+ const int expectedCalculationTypeId = 6;
+ const int expectedVariableId = 114;
+ double expectedBeta = StatisticsConverter.NormToBeta(norm);
+ Assert.IsInstanceOf(waveConditionsInput);
+ Assert.AreEqual(HydraRingFailureMechanismType.QVariant, waveConditionsInput.FailureMechanismType);
+ Assert.AreEqual(expectedCalculationTypeId, waveConditionsInput.CalculationTypeId);
+ Assert.AreEqual(expectedVariableId, waveConditionsInput.VariableId);
+ Assert.AreEqual(hydraulicBoundaryLocationId, waveConditionsInput.HydraulicBoundaryLocationId);
+ Assert.IsNotNull(waveConditionsInput.Section);
+ Assert.AreEqual(sectionId, waveConditionsInput.Section.SectionId);
+ HydraRingVariableAssert.AreEqual(GetExpectedVariables(waterLevel, a, b).ToArray(), waveConditionsInput.Variables.ToArray());
+ Assert.AreSame(forelandPoints, waveConditionsInput.ForelandsPoints);
+ Assert.AreSame(breakWater, waveConditionsInput.BreakWater);
+ Assert.AreEqual(expectedBeta, waveConditionsInput.Beta);
+ }
+
+ private class WaveConditionsCalculationInputImplementation : WaveConditionsCalculationInput
+ {
+ public WaveConditionsCalculationInputImplementation(int sectionId,
+ long hydraulicBoundaryLocationId,
+ double norm,
+ IEnumerable forelandPoints,
+ HydraRingBreakWater breakWater,
+ double waterLevel,
+ double a,
+ double b)
+ : base(sectionId,
+ hydraulicBoundaryLocationId,
+ norm,
+ forelandPoints,
+ breakWater,
+ waterLevel,
+ a,
+ b) {}
+ }
+
+ private static IEnumerable GetExpectedVariables(double waterLevel, double a, double b)
+ {
+ yield return new HydraRingVariable(113, HydraRingDistributionType.Deterministic, waterLevel, HydraRingDeviationType.Standard, double.NaN, double.NaN, double.NaN);
+ yield return new HydraRingVariable(114, HydraRingDistributionType.Deterministic, 1.0, HydraRingDeviationType.Standard, double.NaN, double.NaN, double.NaN);
+ yield return new HydraRingVariable(115, HydraRingDistributionType.Deterministic, a, HydraRingDeviationType.Standard, double.NaN, double.NaN, double.NaN);
+ yield return new HydraRingVariable(116, HydraRingDistributionType.Deterministic, b, HydraRingDeviationType.Standard, double.NaN, double.NaN, double.NaN);
+ }
+ }
+}
\ No newline at end of file
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Input/WaveConditions/WaveConditionsCosineInputTest.cs
===================================================================
diff -u -rfc25acac78ccc302ea4fcc0414fc5e6adc0fccae -r8797ed1774bf2255a1370fafe122d9150f79e365
--- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Input/WaveConditions/WaveConditionsCosineInputTest.cs (.../WaveConditionsCosineInputTest.cs) (revision fc25acac78ccc302ea4fcc0414fc5e6adc0fccae)
+++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Input/WaveConditions/WaveConditionsCosineInputTest.cs (.../WaveConditionsCosineInputTest.cs) (revision 8797ed1774bf2255a1370fafe122d9150f79e365)
@@ -62,7 +62,7 @@
const int expectedCalculationTypeId = 6;
const int expectedVariableId = 114;
double expectedBeta = StatisticsConverter.NormToBeta(norm);
- Assert.IsInstanceOf(waveConditionsCosineInput);
+ Assert.IsInstanceOf(waveConditionsCosineInput);
Assert.AreEqual(HydraRingFailureMechanismType.QVariant, waveConditionsCosineInput.FailureMechanismType);
Assert.AreEqual(expectedCalculationTypeId, waveConditionsCosineInput.CalculationTypeId);
Assert.AreEqual(expectedVariableId, waveConditionsCosineInput.VariableId);
Fisheye: Tag 8797ed1774bf2255a1370fafe122d9150f79e365 refers to a dead (removed) revision in file `Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Input/WaveConditions/WaveConditionsInputTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Input/WaveConditions/WaveConditionsTrapezoidInputTest.cs
===================================================================
diff -u -rfc25acac78ccc302ea4fcc0414fc5e6adc0fccae -r8797ed1774bf2255a1370fafe122d9150f79e365
--- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Input/WaveConditions/WaveConditionsTrapezoidInputTest.cs (.../WaveConditionsTrapezoidInputTest.cs) (revision fc25acac78ccc302ea4fcc0414fc5e6adc0fccae)
+++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Input/WaveConditions/WaveConditionsTrapezoidInputTest.cs (.../WaveConditionsTrapezoidInputTest.cs) (revision 8797ed1774bf2255a1370fafe122d9150f79e365)
@@ -63,7 +63,7 @@
const int expectedCalculationTypeId = 6;
const int expectedVariableId = 114;
double expectedBeta = StatisticsConverter.NormToBeta(norm);
- Assert.IsInstanceOf(waveConditionsTrapezoidInput);
+ Assert.IsInstanceOf(waveConditionsTrapezoidInput);
Assert.AreEqual(HydraRingFailureMechanismType.QVariant, waveConditionsTrapezoidInput.FailureMechanismType);
Assert.AreEqual(expectedCalculationTypeId, waveConditionsTrapezoidInput.CalculationTypeId);
Assert.AreEqual(expectedVariableId, waveConditionsTrapezoidInput.VariableId);
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj
===================================================================
diff -u -rfc25acac78ccc302ea4fcc0414fc5e6adc0fccae -r8797ed1774bf2255a1370fafe122d9150f79e365
--- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision fc25acac78ccc302ea4fcc0414fc5e6adc0fccae)
+++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision 8797ed1774bf2255a1370fafe122d9150f79e365)
@@ -59,7 +59,7 @@
-
+