Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/OvertoppingCalculator.cs
===================================================================
diff -u -r84db6d79354723db5626dbb9ff7361d2a70d66d1 -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/OvertoppingCalculator.cs (.../OvertoppingCalculator.cs) (revision 84db6d79354723db5626dbb9ff7361d2a70d66d1)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/OvertoppingCalculator.cs (.../OvertoppingCalculator.cs) (revision b253fd5ebc5d5800f5757be8b04820cb4ca05724)
@@ -71,9 +71,9 @@
protected override void SetOutputs()
{
- if (exceedanceProbabilityCalculationParser.Output != null)
+ if (exceedanceProbabilityCalculationParser.Output.HasValue)
{
- ExceedanceProbabilityBeta = exceedanceProbabilityCalculationParser.Output.Beta;
+ ExceedanceProbabilityBeta = exceedanceProbabilityCalculationParser.Output.Value;
}
if (waveHeightParser.Output != null)
{
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/StructuresClosureCalculator.cs
===================================================================
diff -u -r84db6d79354723db5626dbb9ff7361d2a70d66d1 -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/StructuresClosureCalculator.cs (.../StructuresClosureCalculator.cs) (revision 84db6d79354723db5626dbb9ff7361d2a70d66d1)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/StructuresClosureCalculator.cs (.../StructuresClosureCalculator.cs) (revision b253fd5ebc5d5800f5757be8b04820cb4ca05724)
@@ -61,9 +61,9 @@
protected override void SetOutputs()
{
- if (exceedanceProbabilityCalculationParser.Output != null)
+ if (exceedanceProbabilityCalculationParser.Output.HasValue)
{
- ExceedanceProbabilityBeta = exceedanceProbabilityCalculationParser.Output.Beta;
+ ExceedanceProbabilityBeta = exceedanceProbabilityCalculationParser.Output.Value;
}
}
}
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/StructuresOvertoppingCalculator.cs
===================================================================
diff -u -r84db6d79354723db5626dbb9ff7361d2a70d66d1 -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/StructuresOvertoppingCalculator.cs (.../StructuresOvertoppingCalculator.cs) (revision 84db6d79354723db5626dbb9ff7361d2a70d66d1)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/StructuresOvertoppingCalculator.cs (.../StructuresOvertoppingCalculator.cs) (revision b253fd5ebc5d5800f5757be8b04820cb4ca05724)
@@ -62,9 +62,9 @@
protected override void SetOutputs()
{
- if (exceedanceProbabilityCalculationParser.Output != null)
+ if (exceedanceProbabilityCalculationParser.Output.HasValue)
{
- ExceedanceProbabilityBeta = exceedanceProbabilityCalculationParser.Output.Beta;
+ ExceedanceProbabilityBeta = exceedanceProbabilityCalculationParser.Output.Value;
}
}
}
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/StructuresStabilityPointCalculator.cs
===================================================================
diff -u -r84db6d79354723db5626dbb9ff7361d2a70d66d1 -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/StructuresStabilityPointCalculator.cs (.../StructuresStabilityPointCalculator.cs) (revision 84db6d79354723db5626dbb9ff7361d2a70d66d1)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/StructuresStabilityPointCalculator.cs (.../StructuresStabilityPointCalculator.cs) (revision b253fd5ebc5d5800f5757be8b04820cb4ca05724)
@@ -56,9 +56,9 @@
protected override void SetOutputs()
{
- if (exceedanceProbabilityCalculationParser.Output != null)
+ if (exceedanceProbabilityCalculationParser.Output.HasValue)
{
- ExceedanceProbabilityBeta = exceedanceProbabilityCalculationParser.Output.Beta;
+ ExceedanceProbabilityBeta = exceedanceProbabilityCalculationParser.Output.Value;
}
}
Fisheye: Tag b253fd5ebc5d5800f5757be8b04820cb4ca05724 refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/ExceedanceProbabilityCalculationAlphaOutput.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag b253fd5ebc5d5800f5757be8b04820cb4ca05724 refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/ExceedanceProbabilityCalculationOutput.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag b253fd5ebc5d5800f5757be8b04820cb4ca05724 refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/ExceedanceProbabilityCalculationOutputBase.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/ConvergenceParser.cs
===================================================================
diff -u -rcaa069a8d2f118af9b92dc6db8c5c5bdbdc358fd -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/ConvergenceParser.cs (.../ConvergenceParser.cs) (revision caa069a8d2f118af9b92dc6db8c5c5bdbdc358fd)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/ConvergenceParser.cs (.../ConvergenceParser.cs) (revision b253fd5ebc5d5800f5757be8b04820cb4ca05724)
@@ -55,7 +55,7 @@
HydraRingDatabaseParseHelper.Parse(workingDirectory,
getLastResultQuery,
sectionId,
- Resources.ParseFile_No_convergence_found_in_output_file,
+ Resources.Parse_No_convergence_found_in_output_file,
ReadResult);
}
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/ExceedanceProbabilityCalculationParser.cs
===================================================================
diff -u -rae74507edbfc4fe632ba5f964a147aff630dfe6e -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/ExceedanceProbabilityCalculationParser.cs (.../ExceedanceProbabilityCalculationParser.cs) (revision ae74507edbfc4fe632ba5f964a147aff630dfe6e)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/ExceedanceProbabilityCalculationParser.cs (.../ExceedanceProbabilityCalculationParser.cs) (revision b253fd5ebc5d5800f5757be8b04820cb4ca05724)
@@ -20,13 +20,8 @@
// All rights reserved.
using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Data.SQLite;
-using System.IO;
-using Ringtoets.HydraRing.Calculation.Data.Output;
-using Ringtoets.HydraRing.Calculation.Exceptions;
-using Ringtoets.HydraRing.IO;
+using Ringtoets.HydraRing.Calculation.Properties;
+using Ringtoets.HydraRing.Calculation.Readers;
namespace Ringtoets.HydraRing.Calculation.Parsers
{
@@ -35,169 +30,43 @@
///
public class ExceedanceProbabilityCalculationParser : IHydraRingFileParser
{
- private const string betaResultQuery = "SELECT BetaId, RingCombinMethod, PresentationSectionId, MainMechanismId, MainMechanismCombinMethod, MechanismId, LayerId, AlternativeId, Beta " +
- "FROM BetaResults " +
- "WHERE SectionId = @SectionId " +
- "ORDER BY BetaId DESC LIMIT 0,1;";
+ private const string sectionIdParameterName = "@sectionId";
+ private const string betaColumnName = "BetaValue";
- private const string alphaResultsQuery = "SELECT RingCombinMethod, PresentationSectionId, MainMechanismId, MainMechanismCombinMethod, MechanismId, LayerId, AlternativeId, VariableId, LoadVariableId, Alpha " +
- "FROM AlphaResults " +
- "WHERE BetaId = @BetaId " +
- "ORDER BY BetaId, VariableId, LoadVariableId;";
+ private readonly string query = $"SELECT {betaColumnName} " +
+ "FROM DesignBeta " +
+ $"WHERE SectionId = {sectionIdParameterName} AND LevelType=4 " +
+ "ORDER BY OuterIterationId DESC " +
+ "LIMIT 1;";
///
- /// Gets the output of a successful parse of the output file.
+ /// Gets the value of the exceedence probability calculation.
///
- /// A corresponding to the section id if executed
- /// successfully; or null otherwise.
- public ExceedanceProbabilityCalculationOutput Output { get; private set; }
+ public double? Output { get; private set; }
public void Parse(string workingDirectory, int sectionId)
{
- try
+ if (workingDirectory == null)
{
- Output = DoParse(Path.Combine(workingDirectory, HydraRingFileConstants.WorkingDatabaseFileName), sectionId);
+ throw new ArgumentNullException(nameof(workingDirectory));
}
- catch
- {
- throw new HydraRingFileParserException();
- }
- }
- private static ExceedanceProbabilityCalculationOutput DoParse(string outputFilePath, int sectionId)
- {
- using (var sqLiteConnection = CreateConnection(outputFilePath))
- {
- sqLiteConnection.Open();
-
- int betaId;
- var exceedanceProbabilityCalculationOutput = ReadExceedanceProbabilityCalculationOutput(sectionId, sqLiteConnection, out betaId);
-
- foreach (var alpha in ReadExceedanceProbabilityCalculationAlphaOutput(sectionId, betaId, sqLiteConnection))
- {
- exceedanceProbabilityCalculationOutput.Alphas.Add(alpha);
- }
-
- return exceedanceProbabilityCalculationOutput;
- }
+ HydraRingDatabaseParseHelper.Parse(workingDirectory,
+ query,
+ sectionId,
+ Resources.ExceedanceProbabilityCalculationParser_Parse_No_beta_found_in_output_file,
+ ReadResult);
}
- private static SQLiteDataReader CreateDataReader(SQLiteConnection connection, string queryString, params SQLiteParameter[] parameters)
+ ///
+ /// Reads the result of the .
+ ///
+ /// The reader to get the result from.
+ /// Thrown when the the result
+ /// cannot be converted to the output format.
+ private void ReadResult(HydraRingDatabaseReader reader)
{
- using (var query = new SQLiteCommand(connection)
- {
- CommandText = queryString
- })
- {
- query.Parameters.AddRange(parameters);
- return query.ExecuteReader();
- }
+ Output = Convert.ToDouble(reader.ReadColumn(betaColumnName));
}
-
- private static SQLiteConnection CreateConnection(string databaseFile)
- {
- var connectionStringBuilder = new SQLiteConnectionStringBuilder
- {
- FailIfMissing = true,
- DataSource = databaseFile,
- ReadOnly = true
- }.ConnectionString;
-
- return new SQLiteConnection(connectionStringBuilder);
- }
-
- #region Read AlphaResults
-
- private static IList ReadExceedanceProbabilityCalculationAlphaOutput(int sectionId, int betaId, SQLiteConnection sqLiteConnection)
- {
- var sectionIdParameter = new SQLiteParameter
- {
- DbType = DbType.String,
- ParameterName = "@sectionId",
- Value = sectionId
- };
- var betaIdParameter = new SQLiteParameter
- {
- DbType = DbType.String,
- ParameterName = "@BetaId",
- Value = betaId
- };
- using (var sqLiteDataReader = CreateDataReader(sqLiteConnection, alphaResultsQuery, sectionIdParameter, betaIdParameter))
- {
- return ReadAlphaResults(sectionId, sqLiteDataReader);
- }
- }
-
- private static IList ReadAlphaResults(int sectionId, SQLiteDataReader sqLiteDataReader)
- {
- var alphaResults = new List();
- while (sqLiteDataReader.Read())
- {
- alphaResults.Add(ReadExceedanceProbabilityCalculationAlphaOutput(sectionId, sqLiteDataReader));
- }
- return alphaResults;
- }
-
- private static ExceedanceProbabilityCalculationAlphaOutput ReadExceedanceProbabilityCalculationAlphaOutput(int sectionId, SQLiteDataReader sqLiteDataReader)
- {
- var ringCombinMethod = Convert.ToInt32(sqLiteDataReader["RingCombinMethod"]);
- var presentationSectionId = Convert.ToInt32(sqLiteDataReader["PresentationSectionId"]);
- var mainMechanismId = Convert.ToInt32(sqLiteDataReader["MainMechanismId"]);
- var mainMechanismCombinMethod = Convert.ToInt32(sqLiteDataReader["MainMechanismCombinMethod"]);
- var mechanismId = Convert.ToInt32(sqLiteDataReader["MechanismId"]);
- var layerId = Convert.ToInt32(sqLiteDataReader["LayerId"]);
- var alternativeId = Convert.ToInt32(sqLiteDataReader["AlternativeId"]);
- var variableId = Convert.ToInt32(sqLiteDataReader["VariableId"]);
- var loadVariableId = Convert.ToInt32(sqLiteDataReader["LoadVariableId"]);
- var alpha = Convert.ToDouble(sqLiteDataReader["Alpha"]);
- return new ExceedanceProbabilityCalculationAlphaOutput(
- ringCombinMethod, presentationSectionId, mainMechanismId, mainMechanismCombinMethod,
- mechanismId, sectionId, layerId, alternativeId, variableId, loadVariableId, alpha);
- }
-
- #endregion
-
- #region Read BetaResults
-
- private static ExceedanceProbabilityCalculationOutput ReadExceedanceProbabilityCalculationOutput(int sectionId, SQLiteConnection sqLiteConnection, out int betaId)
- {
- var sectionIdParameter = new SQLiteParameter
- {
- DbType = DbType.String,
- ParameterName = "@sectionId",
- Value = sectionId
- };
- using (var sqLiteDataReader = CreateDataReader(sqLiteConnection, betaResultQuery, sectionIdParameter))
- {
- if (!sqLiteDataReader.Read())
- {
- throw new HydraRingFileParserException();
- }
- betaId = ReadBetaId(sqLiteDataReader);
- return ReadExceedanceProbabilityCalculationOutput(sectionId, sqLiteDataReader);
- }
- }
-
- private static int ReadBetaId(SQLiteDataReader sqLiteDataReader)
- {
- return Convert.ToInt32(sqLiteDataReader["BetaId"]);
- }
-
- private static ExceedanceProbabilityCalculationOutput ReadExceedanceProbabilityCalculationOutput(int sectionId, SQLiteDataReader sqLiteDataReader)
- {
- var ringCombinMethod = Convert.ToInt32(sqLiteDataReader["RingCombinMethod"]);
- var presentationSectionId = Convert.ToInt32(sqLiteDataReader["PresentationSectionId"]);
- var mainMechanismId = Convert.ToInt32(sqLiteDataReader["MainMechanismId"]);
- var mainMechanismCombinMethod = Convert.ToInt32(sqLiteDataReader["MainMechanismCombinMethod"]);
- var mechanismId = Convert.ToInt32(sqLiteDataReader["MechanismId"]);
- var layerId = Convert.ToInt32(sqLiteDataReader["LayerId"]);
- var alternativeId = Convert.ToInt32(sqLiteDataReader["AlternativeId"]);
- var beta = Convert.ToDouble(sqLiteDataReader["Beta"]);
- return new ExceedanceProbabilityCalculationOutput(
- ringCombinMethod, presentationSectionId, mainMechanismId, mainMechanismCombinMethod,
- mechanismId, sectionId, layerId, alternativeId, beta);
- }
-
- #endregion
}
}
\ No newline at end of file
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.Designer.cs
===================================================================
diff -u -r4bf03fe0c441a3f3d439bc7ffe09350227435178 -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 4bf03fe0c441a3f3d439bc7ffe09350227435178)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision b253fd5ebc5d5800f5757be8b04820cb4ca05724)
@@ -92,6 +92,15 @@
}
///
+ /// Looks up a localized string similar to Er is geen resultaat voor de betrouwbaarheidsindex van de faalkans gevonden in de Hydra-Ring uitvoerdatabase..
+ ///
+ internal static string ExceedanceProbabilityCalculationParser_Parse_No_beta_found_in_output_file {
+ get {
+ return ResourceManager.GetString("ExceedanceProbabilityCalculationParser_Parse_No_beta_found_in_output_file", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to Stap {0} van {1} | {2}.
///
internal static string HydraRingActivityBase_UpdateProgressText_Step_0_of_TotalSteps_1_CurrentStepName_2 {
@@ -129,20 +138,20 @@
}
///
- /// Looks up a localized string similar to Er kon geen resultaat gelezen worden uit de Hydra-Ring uitvoerdatabase..
+ /// Looks up a localized string similar to Er is geen resultaat voor convergentie gevonden in de Hydra-Ring uitvoerdatabase..
///
- internal static string ParseFile_Cannot_read_result_in_output_file {
+ internal static string Parse_No_convergence_found_in_output_file {
get {
- return ResourceManager.GetString("ParseFile_Cannot_read_result_in_output_file", resourceCulture);
+ return ResourceManager.GetString("Parse_No_convergence_found_in_output_file", resourceCulture);
}
}
///
- /// Looks up a localized string similar to Er is geen resultaat voor convergentie gevonden in de Hydra-Ring uitvoerdatabase..
+ /// Looks up a localized string similar to Er kon geen resultaat gelezen worden uit de Hydra-Ring uitvoerdatabase..
///
- internal static string ParseFile_No_convergence_found_in_output_file {
+ internal static string ParseFile_Cannot_read_result_in_output_file {
get {
- return ResourceManager.GetString("ParseFile_No_convergence_found_in_output_file", resourceCulture);
+ return ResourceManager.GetString("ParseFile_Cannot_read_result_in_output_file", resourceCulture);
}
}
}
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.resx
===================================================================
diff -u -r4bf03fe0c441a3f3d439bc7ffe09350227435178 -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.resx (.../Resources.resx) (revision 4bf03fe0c441a3f3d439bc7ffe09350227435178)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.resx (.../Resources.resx) (revision b253fd5ebc5d5800f5757be8b04820cb4ca05724)
@@ -129,7 +129,7 @@
Er kon geen resultaat gelezen worden uit de Hydra-Ring uitvoerdatabase.
-
+
Er is geen resultaat voor convergentie gevonden in de Hydra-Ring uitvoerdatabase.
@@ -138,4 +138,7 @@
Er zijn geen berekende hydraulische randvoorwaarden voor duinen gevonden in de Hydra-Ring uitvoerdatabase.
+
+ Er is geen resultaat voor de betrouwbaarheidsindex van de faalkans gevonden in de Hydra-Ring uitvoerdatabase.
+
\ No newline at end of file
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj
===================================================================
diff -u -rc235d644419c9f398fd806f7dce2592f0974ac97 -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision c235d644419c9f398fd806f7dce2592f0974ac97)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision b253fd5ebc5d5800f5757be8b04820cb4ca05724)
@@ -93,9 +93,6 @@
-
-
-
Fisheye: Tag b253fd5ebc5d5800f5757be8b04820cb4ca05724 refers to a dead (removed) revision in file `Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Output/ExceedanceProbabilityCalculationAlphaOutputTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag b253fd5ebc5d5800f5757be8b04820cb4ca05724 refers to a dead (removed) revision in file `Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Output/ExceedanceProbabilityCalculationOutputBaseTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag b253fd5ebc5d5800f5757be8b04820cb4ca05724 refers to a dead (removed) revision in file `Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Data/Output/ExceedanceProbabilityCalculationOutputTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/ExceedanceProbabilityCalculationParserTest.cs
===================================================================
diff -u -rae74507edbfc4fe632ba5f964a147aff630dfe6e -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
--- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/ExceedanceProbabilityCalculationParserTest.cs (.../ExceedanceProbabilityCalculationParserTest.cs) (revision ae74507edbfc4fe632ba5f964a147aff630dfe6e)
+++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/ExceedanceProbabilityCalculationParserTest.cs (.../ExceedanceProbabilityCalculationParserTest.cs) (revision b253fd5ebc5d5800f5757be8b04820cb4ca05724)
@@ -19,22 +19,28 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
-using System.Collections.Generic;
+using System;
+using System.Data.SQLite;
using System.IO;
using Core.Common.TestUtil;
using NUnit.Framework;
-using Ringtoets.HydraRing.Calculation.Data.Output;
using Ringtoets.HydraRing.Calculation.Exceptions;
using Ringtoets.HydraRing.Calculation.Parsers;
-using Ringtoets.HydraRing.IO;
namespace Ringtoets.HydraRing.Calculation.Test.Parsers
{
[TestFixture]
public class ExceedanceProbabilityCalculationParserTest
{
- private readonly string testDataPath = Path.Combine(TestHelper.GetTestDataPath(TestDataPath.Ringtoets.HydraRing.Calculation, "Parsers"), "ExceedanceProbabilityCalculationParser");
+ private const string emptyWorkingDirectory = "EmptyWorkingDirectory";
+ private const string invalidFileInDirectory = "InvalidFile";
+ private const string emptyFileInDirectory = "EmptyDatabase";
+ private const string validFile = "ValidFile";
+ private const string betaNull = "BetaNull";
+ private readonly string testDirectory = Path.Combine(TestHelper.GetTestDataPath(TestDataPath.Ringtoets.HydraRing.Calculation, "Parsers"),
+ nameof(ExceedanceProbabilityCalculationParser));
+
[Test]
public void DefaultConstructor_SetDefaultValues()
{
@@ -47,129 +53,110 @@
}
[Test]
- public void Parse_NotExistingOutputFile_ThrowsHydraRingFileParserException()
+ public void Parse_WorkingDirectoryNull_ThrowsArgumentNullException()
{
// Setup
- var exceedanceProbabilityCalculationExceptionParser = new ExceedanceProbabilityCalculationParser();
+ var parser = new ExceedanceProbabilityCalculationParser();
// Call
- TestDelegate test = () => exceedanceProbabilityCalculationExceptionParser.Parse(testDataPath, 1);
+ TestDelegate test = () => parser.Parse(null, 1);
// Assert
- Assert.Throws(test);
- Assert.IsNull(exceedanceProbabilityCalculationExceptionParser.Output);
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("workingDirectory", exception.ParamName);
}
[Test]
- public void Parse_EmptyOutputFile_ThrowsHydraRingFileParserException()
+ public void Parse_WithWorkingDirectoryWithoutExpectedFile_ThrowsHydraRingFileParserException()
{
// Setup
- var exceedanceProbabilityCalculationExceptionParser = new ExceedanceProbabilityCalculationParser();
- var workingDirectory = Path.Combine(testDataPath, "empty");
+ string path = Path.Combine(testDirectory, emptyWorkingDirectory);
+ var parser = new ExceedanceProbabilityCalculationParser();
// Call
- TestDelegate test = () => exceedanceProbabilityCalculationExceptionParser.Parse(workingDirectory, 1);
+ TestDelegate test = () => parser.Parse(path, 1);
// Assert
- Assert.Throws(test);
- Assert.IsNull(exceedanceProbabilityCalculationExceptionParser.Output);
- Assert.IsTrue(TestHelper.CanOpenFileForWrite(Path.Combine(workingDirectory, HydraRingFileConstants.WorkingDatabaseFileName)));
+ var exception = Assert.Throws(test);
+ Assert.IsInstanceOf(exception.InnerException);
}
[Test]
- public void Parse_FileWithoutTableAlphaResults_ThrowsHydraRingFileParserException()
+ public void Parse_WithWorkingDirectoryWithInvalidOutputFile_ThrowsHydraRingFileParserException()
{
// Setup
- var exceedanceProbabilityCalculationExceptionParser = new ExceedanceProbabilityCalculationParser();
- var workingDirectory = Path.Combine(testDataPath, "withoutAlphaResults");
+ string path = Path.Combine(testDirectory, invalidFileInDirectory);
+ var parser = new ExceedanceProbabilityCalculationParser();
// Call
- TestDelegate test = () => exceedanceProbabilityCalculationExceptionParser.Parse(workingDirectory, 1);
+ TestDelegate test = () => parser.Parse(path, 1);
// Assert
- Assert.Throws(test);
- Assert.IsNull(exceedanceProbabilityCalculationExceptionParser.Output);
- Assert.IsTrue(TestHelper.CanOpenFileForWrite(Path.Combine(workingDirectory, HydraRingFileConstants.WorkingDatabaseFileName)));
+ var exception = Assert.Throws(test);
+ Assert.IsInstanceOf(exception.InnerException);
+ Assert.AreEqual("Er kon geen resultaat gelezen worden uit de Hydra-Ring uitvoerdatabase.", exception.Message);
}
[Test]
- public void Parse_ExampleHydraRingOutputFileNotContainingSectionId_ThrowsHydraRingFileParserException()
+ public void Parse_WithWorkingDirectoryWithEmptyFile_ThrowsHydraRingFileParserException()
{
// Setup
- var sectionId = 1;
- var exceedanceProbabilityCalculationExceptionParser = new ExceedanceProbabilityCalculationParser();
- var workingDirectory = Path.Combine(testDataPath, "complete");
+ string path = Path.Combine(testDirectory, emptyFileInDirectory);
+ var parser = new ExceedanceProbabilityCalculationParser();
// Call
- TestDelegate test = () => exceedanceProbabilityCalculationExceptionParser.Parse(workingDirectory, sectionId);
+ TestDelegate test = () => parser.Parse(path, 1);
// Assert
- Assert.Throws(test);
- Assert.IsNull(exceedanceProbabilityCalculationExceptionParser.Output);
- Assert.IsTrue(TestHelper.CanOpenFileForWrite(Path.Combine(workingDirectory, HydraRingFileConstants.WorkingDatabaseFileName)));
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("Er is geen resultaat voor de betrouwbaarheidsindex van de faalkans gevonden in de Hydra-Ring uitvoerdatabase.", exception.Message);
+ Assert.IsInstanceOf(exception.InnerException);
}
[Test]
- public void Parse_ExampleCompleteOutputFile_ExpectedExceedanceProbabilityCalculationOutputSet()
+ public void Parse_WithBetaResultOnOtherSection_ThrowsHydraRingFileParserException()
{
// Setup
- var ringCombinMethod = 0;
- var presentationSectionId = 1;
- var mainMechanismId = 101;
- var mainMechanismCombinMethod = 0;
- var mechanismId = 101;
- var sectionId = 35;
- var layerId = 1;
- var alternativeId = 1;
- var beta = 2.74030893482198;
- var alphaValues = new List
- {
- new ExceedanceProbabilityCalculationAlphaOutput(0, 1, 101, 0, 101, 35, 1, 1, 0, 1, -0.414848705277957),
- new ExceedanceProbabilityCalculationAlphaOutput(0, 1, 101, 0, 101, 35, 1, 1, 0, 23, -0.499651535355214),
- new ExceedanceProbabilityCalculationAlphaOutput(0, 1, 101, 0, 101, 35, 1, 1, 0, 51, -0.580660162401853),
- new ExceedanceProbabilityCalculationAlphaOutput(0, 1, 101, 0, 101, 35, 1, 1, 1, 0, 0.463049288940854),
- new ExceedanceProbabilityCalculationAlphaOutput(0, 1, 101, 0, 101, 35, 1, 1, 10, 0, 0.0434055709671213),
- new ExceedanceProbabilityCalculationAlphaOutput(0, 1, 101, 0, 101, 35, 1, 1, 11, 0, 0.150241106274945),
- new ExceedanceProbabilityCalculationAlphaOutput(0, 1, 101, 0, 101, 35, 1, 1, 17, 0, 0.0470275786268176)
- };
+ string path = Path.Combine(testDirectory, validFile);
+ var parser = new ExceedanceProbabilityCalculationParser();
- var exceedanceProbabilityCalculationExceptionParser = new ExceedanceProbabilityCalculationParser();
- var workingDirectory = Path.Combine(testDataPath, "complete");
+ // Call
+ TestDelegate test = () => parser.Parse(path, 0);
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("Er is geen resultaat voor de betrouwbaarheidsindex van de faalkans gevonden in de Hydra-Ring uitvoerdatabase.", exception.Message);
+ Assert.IsInstanceOf(exception.InnerException);
+ }
+
+ [Test]
+ public void Parse_ValidFileWithBetaResult_OutputSet()
+ {
+ // Setup
+ string path = Path.Combine(testDirectory, validFile);
+ var parser = new ExceedanceProbabilityCalculationParser();
+
// Call
- exceedanceProbabilityCalculationExceptionParser.Parse(workingDirectory, sectionId);
+ parser.Parse(path, 1);
// Assert
- ExceedanceProbabilityCalculationOutput exceedanceProbabilityCalculationOutput = exceedanceProbabilityCalculationExceptionParser.Output;
- Assert.IsNotNull(exceedanceProbabilityCalculationOutput);
- Assert.AreEqual(ringCombinMethod, exceedanceProbabilityCalculationOutput.RingCombinMethod);
- Assert.AreEqual(presentationSectionId, exceedanceProbabilityCalculationOutput.PresentationSectionId);
- Assert.AreEqual(mainMechanismId, exceedanceProbabilityCalculationOutput.MainMechanismId);
- Assert.AreEqual(mainMechanismCombinMethod, exceedanceProbabilityCalculationOutput.MainMechanismCombinMethod);
- Assert.AreEqual(mechanismId, exceedanceProbabilityCalculationOutput.MechanismId);
- Assert.AreEqual(layerId, exceedanceProbabilityCalculationOutput.LayerId);
- Assert.AreEqual(alternativeId, exceedanceProbabilityCalculationOutput.AlternativeId);
- Assert.AreEqual(beta, exceedanceProbabilityCalculationOutput.Beta);
+ Assert.AreEqual(3.42848, parser.Output.Value);
+ }
- Assert.AreEqual(alphaValues.Count, exceedanceProbabilityCalculationOutput.Alphas.Count);
- for (var i = 0; i < alphaValues.Count; i++)
- {
- var expectedAlpha = alphaValues[i];
- var actualAlpha = exceedanceProbabilityCalculationOutput.Alphas[i];
+ [Test]
+ public void Parse_BetaNull_ThrowHydraRingFileParserException()
+ {
+ // Setup
+ string path = Path.Combine(testDirectory, betaNull);
+ var parser = new ExceedanceProbabilityCalculationParser();
- Assert.AreEqual(expectedAlpha.RingCombinMethod, actualAlpha.RingCombinMethod);
- Assert.AreEqual(expectedAlpha.PresentationSectionId, actualAlpha.PresentationSectionId);
- Assert.AreEqual(expectedAlpha.MainMechanismId, actualAlpha.MainMechanismId);
- Assert.AreEqual(expectedAlpha.MainMechanismCombinMethod, actualAlpha.MainMechanismCombinMethod);
- Assert.AreEqual(expectedAlpha.MechanismId, actualAlpha.MechanismId);
- Assert.AreEqual(expectedAlpha.LayerId, actualAlpha.LayerId);
- Assert.AreEqual(expectedAlpha.AlternativeId, actualAlpha.AlternativeId);
- Assert.AreEqual(expectedAlpha.VariableId, actualAlpha.VariableId);
- Assert.AreEqual(expectedAlpha.LoadVariableId, actualAlpha.LoadVariableId);
- Assert.AreEqual(expectedAlpha.Alpha, actualAlpha.Alpha);
- }
+ // Call
+ TestDelegate test = () => parser.Parse(path, 1);
- Assert.IsTrue(TestHelper.CanOpenFileForWrite(Path.Combine(workingDirectory, HydraRingFileConstants.WorkingDatabaseFileName)));
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("Er is geen resultaat voor de betrouwbaarheidsindex van de faalkans gevonden in de Hydra-Ring uitvoerdatabase.", exception.Message);
+ Assert.IsInstanceOf(exception.InnerException);
}
}
}
\ No newline at end of file
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj
===================================================================
diff -u -rc235d644419c9f398fd806f7dce2592f0974ac97 -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
--- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision c235d644419c9f398fd806f7dce2592f0974ac97)
+++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision b253fd5ebc5d5800f5757be8b04820cb4ca05724)
@@ -93,9 +93,6 @@
-
-
-
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/ExceedanceProbabilityCalculationParser/BetaNull/output.sqlite
===================================================================
diff -u
Binary files differ
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/ExceedanceProbabilityCalculationParser/EmptyDatabase/output.sqlite
===================================================================
diff -u
Binary files differ
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/ExceedanceProbabilityCalculationParser/InvalidFile/output.sqlite
===================================================================
diff -u
Binary files differ
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/ExceedanceProbabilityCalculationParser/ValidFile/output.sqlite
===================================================================
diff -u
Binary files differ
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/ExceedanceProbabilityCalculationParser/complete/temp.sqlite
===================================================================
diff -u -r16d6d5ad38a45e4e0e8b3a9b41b3383d31595a36 -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
Binary files differ
Fisheye: Tag b253fd5ebc5d5800f5757be8b04820cb4ca05724 refers to a dead (removed) revision in file `Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/ExceedanceProbabilityCalculationParser/empty/temp.sqlite'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/ExceedanceProbabilityCalculationParser/withoutAlphaResults/temp.sqlite
===================================================================
diff -u -r16d6d5ad38a45e4e0e8b3a9b41b3383d31595a36 -rb253fd5ebc5d5800f5757be8b04820cb4ca05724
Binary files differ