Index: Riskeer/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/DunesBoundaryConditionsCalculationParser.cs =================================================================== diff -u -r9e9976818f1b446948c3bf815cafe2e023f98ac1 -reef5525a50c2d712a13270b98992672b32889891 --- Riskeer/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/DunesBoundaryConditionsCalculationParser.cs (.../DunesBoundaryConditionsCalculationParser.cs) (revision 9e9976818f1b446948c3bf815cafe2e023f98ac1) +++ Riskeer/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/DunesBoundaryConditionsCalculationParser.cs (.../DunesBoundaryConditionsCalculationParser.cs) (revision eef5525a50c2d712a13270b98992672b32889891) @@ -35,11 +35,17 @@ private const string waveHeightColumnName = "WaveHeight"; private const string wavePeriodColumnName = "WavePeriod"; private const string waterLevelColumnName = "WaterLevel"; + private const string meanTidalAmplitudeColumnName = "MeanTidalAmplitude"; + private const string waveDirectionalSpreadColumnName = "WaveDirectionalSpread"; + private const string tideSurgePhaseDifferenceColumnName = "TideSurgePhaseDifference"; private readonly string query = "SELECT " + $"max(case when OutputVariableId is 3 then d.Value end) {waveHeightColumnName}, " + $"max(case when OutputVariableId is 5 then d.Value end) {wavePeriodColumnName}, " + - $"max(case when OutputVariableId is 23 then d.Value end) {waterLevelColumnName} " + + $"max(case when OutputVariableId is 23 then d.Value end) {waterLevelColumnName}, " + + $"max(case when OutputVariableId is 10 then d.Value end) {meanTidalAmplitudeColumnName}, " + + $"max(case when OutputVariableId is 11 then d.Value end) {waveDirectionalSpreadColumnName}, " + + $"max(case when OutputVariableId is 12 then d.Value end) {tideSurgePhaseDifferenceColumnName} " + "FROM DesignPointResults as d " + $"WHERE SectionId = {HydraRingDatabaseConstants.SectionIdParameterName} " + "GROUP BY OuterIterationId " + @@ -75,10 +81,12 @@ double waveHeight = Convert.ToDouble(result[waveHeightColumnName]); double wavePeriod = Convert.ToDouble(result[wavePeriodColumnName]); double waterLevel = Convert.ToDouble(result[waterLevelColumnName]); + double meanTidalAmplitude = Convert.ToDouble(result[meanTidalAmplitudeColumnName]); + double waveDirectionalSpread = Convert.ToDouble(result[waveDirectionalSpreadColumnName]); + double tideSurgePhaseDifference = Convert.ToDouble(result[tideSurgePhaseDifferenceColumnName]); - Output = new DunesBoundaryConditionsCalculationOutput(waterLevel, - waveHeight, - wavePeriod); + Output = new DunesBoundaryConditionsCalculationOutput( + waterLevel, waveHeight, wavePeriod, meanTidalAmplitude, waveDirectionalSpread, tideSurgePhaseDifference); } catch (InvalidCastException e) { Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/Parsers/DunesBoundaryConditionsCalculationParserTest.cs =================================================================== diff -u -r9e9976818f1b446948c3bf815cafe2e023f98ac1 -reef5525a50c2d712a13270b98992672b32889891 --- Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/Parsers/DunesBoundaryConditionsCalculationParserTest.cs (.../DunesBoundaryConditionsCalculationParserTest.cs) (revision 9e9976818f1b446948c3bf815cafe2e023f98ac1) +++ Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/Parsers/DunesBoundaryConditionsCalculationParserTest.cs (.../DunesBoundaryConditionsCalculationParserTest.cs) (revision eef5525a50c2d712a13270b98992672b32889891) @@ -71,10 +71,10 @@ var parser = new DunesBoundaryConditionsCalculationParser(); // Call - TestDelegate test = () => parser.Parse(path, 1); + void Call() => parser.Parse(path, 1); // Assert - var exception = Assert.Throws(test); + var exception = Assert.Throws(Call); Assert.IsInstanceOf(exception.InnerException); } @@ -86,10 +86,10 @@ var parser = new DunesBoundaryConditionsCalculationParser(); // Call - TestDelegate test = () => parser.Parse(path, 1); + void Call() => parser.Parse(path, 1); // Assert - var exception = Assert.Throws(test); + var exception = Assert.Throws(Call); Assert.AreEqual("Er kon geen resultaat gelezen worden uit de Hydra-Ring uitvoerdatabase.", exception.Message); Assert.IsInstanceOf(exception.InnerException); } @@ -102,10 +102,10 @@ var parser = new DunesBoundaryConditionsCalculationParser(); // Call - TestDelegate test = () => parser.Parse(path, 1); + void Call() => parser.Parse(path, 1); // Assert - var exception = Assert.Throws(test); + var exception = Assert.Throws(Call); Assert.AreEqual("Er zijn geen berekende hydraulische belastingen voor duinen gevonden in de Hydra-Ring uitvoerdatabase.", exception.Message); } @@ -119,10 +119,10 @@ using (new DirectoryPermissionsRevoker(testDirectory, FileSystemRights.ReadData)) { // Call - TestDelegate call = () => parser.Parse(workingDirectory, 1); + void Call() => parser.Parse(workingDirectory, 1); // Assert - var exception = Assert.Throws(call); + var exception = Assert.Throws(Call); const string expectedMessage = "Er kon geen resultaat gelezen worden uit de Hydra-Ring uitvoerdatabase."; Assert.AreEqual(expectedMessage, exception.Message); Assert.IsInstanceOf(exception.InnerException); @@ -133,6 +133,9 @@ [TestCase("ValidFileNoWaveHeight")] [TestCase("ValidFileNoWavePeriod")] [TestCase("ValidFileNoWaterLevel")] + [TestCase("ValidFileNoMeanTidalAmplitude")] + [TestCase("ValidFileNoWaveDirectionalSpread")] + [TestCase("ValidFileNoTideSurgePhaseDifference")] [TestCase("ResultsOnAllButLastIteration")] public void Parse_NotAllColumnsHaveResults_ThrowsHydraRingFileParserException(string subFolder) { @@ -141,10 +144,10 @@ var parser = new DunesBoundaryConditionsCalculationParser(); // Call - TestDelegate test = () => parser.Parse(path, 1); + void Call() => parser.Parse(path, 1); // Assert - var exception = Assert.Throws(test); + var exception = Assert.Throws(Call); Assert.AreEqual("Er zijn geen berekende hydraulische belastingen voor duinen gevonden in de Hydra-Ring uitvoerdatabase.", exception.Message); Assert.IsInstanceOf(exception.InnerException); } @@ -157,10 +160,10 @@ var parser = new DunesBoundaryConditionsCalculationParser(); // Call - TestDelegate test = () => parser.Parse(path, 1); + void Call() => parser.Parse(path, 1); // Assert - var exception = Assert.Throws(test); + var exception = Assert.Throws(Call); Assert.AreEqual("Er zijn geen berekende hydraulische belastingen voor duinen gevonden in de Hydra-Ring uitvoerdatabase.", exception.Message); } @@ -175,9 +178,12 @@ parser.Parse(path, 1); // Assert - Assert.AreEqual(4.29026, parser.Output.WaterLevel); - Assert.AreEqual(10.1528, parser.Output.WaveHeight); - Assert.AreEqual(19.1762, parser.Output.WavePeriod); + Assert.AreEqual(3.54909, parser.Output.WaterLevel); + Assert.AreEqual(8.45214, parser.Output.WaveHeight); + Assert.AreEqual(15.955, parser.Output.WavePeriod); + Assert.AreEqual(1.0253, parser.Output.MeanTidalAmplitude); + Assert.AreEqual(6.0, parser.Output.WaveDirectionalSpread); + Assert.AreEqual(3.5, parser.Output.TideSurgePhaseDifference); } } } \ No newline at end of file Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/test-data/Parsers/DunesBoundaryConditionsCalculationParser/EmptyDatabase/1-output.sqlite =================================================================== diff -u -r2e55afd890468db1b25c734216956ab5c2126e58 -reef5525a50c2d712a13270b98992672b32889891 Binary files differ Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/test-data/Parsers/DunesBoundaryConditionsCalculationParser/OtherSection/1-output.sqlite =================================================================== diff -u -r2e55afd890468db1b25c734216956ab5c2126e58 -reef5525a50c2d712a13270b98992672b32889891 Binary files differ Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/test-data/Parsers/DunesBoundaryConditionsCalculationParser/ResultsOnAllButLastIteration/1-output.sqlite =================================================================== diff -u -r2e55afd890468db1b25c734216956ab5c2126e58 -reef5525a50c2d712a13270b98992672b32889891 Binary files differ Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/test-data/Parsers/DunesBoundaryConditionsCalculationParser/ValidFile/1-output.sqlite =================================================================== diff -u -r2e55afd890468db1b25c734216956ab5c2126e58 -reef5525a50c2d712a13270b98992672b32889891 Binary files differ Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/test-data/Parsers/DunesBoundaryConditionsCalculationParser/ValidFileNoMeanTidalAmplitude/1-output.sqlite =================================================================== diff -u Binary files differ Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/test-data/Parsers/DunesBoundaryConditionsCalculationParser/ValidFileNoTideSurgePhaseDifference/1-output.sqlite =================================================================== diff -u Binary files differ Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/test-data/Parsers/DunesBoundaryConditionsCalculationParser/ValidFileNoWaterLevel/1-output.sqlite =================================================================== diff -u -r2e55afd890468db1b25c734216956ab5c2126e58 -reef5525a50c2d712a13270b98992672b32889891 Binary files differ Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/test-data/Parsers/DunesBoundaryConditionsCalculationParser/ValidFileNoWaveDirectionalSpread/1-output.sqlite =================================================================== diff -u Binary files differ Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/test-data/Parsers/DunesBoundaryConditionsCalculationParser/ValidFileNoWaveHeight/1-output.sqlite =================================================================== diff -u -r2e55afd890468db1b25c734216956ab5c2126e58 -reef5525a50c2d712a13270b98992672b32889891 Binary files differ Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/test-data/Parsers/DunesBoundaryConditionsCalculationParser/ValidFileNoWavePeriod/1-output.sqlite =================================================================== diff -u -r2e55afd890468db1b25c734216956ab5c2126e58 -reef5525a50c2d712a13270b98992672b32889891 Binary files differ