Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/HydraRingDatabaseParseHelper.cs =================================================================== diff -u -re73c8b159778b281ecb275512f42da65c0d02e9d -r648d6c8d5c952943c3f428981f97c1cdd8b0bd37 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/HydraRingDatabaseParseHelper.cs (.../HydraRingDatabaseParseHelper.cs) (revision e73c8b159778b281ecb275512f42da65c0d02e9d) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/HydraRingDatabaseParseHelper.cs (.../HydraRingDatabaseParseHelper.cs) (revision 648d6c8d5c952943c3f428981f97c1cdd8b0bd37) @@ -71,7 +71,7 @@ /// The message to use in the exception when reading fails. /// The reader to read a row from. /// A single row from the reader. - /// Thrown when no row could be read from the reader + /// Thrown when no row could be read from the /// . private static Dictionary ReadLineFromReader(string exceptionMessage, HydraRingDatabaseReader reader) { Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/FaultTreeIllustrationPoint.cs =================================================================== diff -u -r288827a5a3e825d8e47cff85d76495e2601483f1 -r648d6c8d5c952943c3f428981f97c1cdd8b0bd37 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/FaultTreeIllustrationPoint.cs (.../FaultTreeIllustrationPoint.cs) (revision 288827a5a3e825d8e47cff85d76495e2601483f1) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/FaultTreeIllustrationPoint.cs (.../FaultTreeIllustrationPoint.cs) (revision 648d6c8d5c952943c3f428981f97c1cdd8b0bd37) @@ -24,7 +24,7 @@ namespace Ringtoets.HydraRing.Calculation.Parsers.IllustrationPoints { /// - /// An illustration points which uses the results of two sub illustration points + /// An illustration point which uses the results of two sub illustration points /// to obtain a result. /// public class FaultTreeIllustrationPoint : IIllustrationPoint @@ -45,9 +45,9 @@ public double Beta { get; set; } = double.NaN; /// - /// The way in which the sub illustartion points are combined to + /// The way in which the sub illustration points are combined to /// obtain a result for the fault tree illustration point. /// - public CombinationType Combine { get; set; } + public CombinationType CombinationType { get; set; } } } \ No newline at end of file Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointQueries.cs =================================================================== diff -u -r288827a5a3e825d8e47cff85d76495e2601483f1 -r648d6c8d5c952943c3f428981f97c1cdd8b0bd37 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointQueries.cs (.../IllustrationPointQueries.cs) (revision 288827a5a3e825d8e47cff85d76495e2601483f1) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointQueries.cs (.../IllustrationPointQueries.cs) (revision 648d6c8d5c952943c3f428981f97c1cdd8b0bd37) @@ -26,12 +26,15 @@ /// public static class IllustrationPointQueries { + private const string firstPeriod = "PeriodId = (SELECT MIN(PeriodId) FROM DesignPointResults)"; + private const string lastIteration = "OuterIterationId = (SELECT MAX(OuterIterationId) FROM DesignPointResults)"; + /// /// Selects all the closing situations. /// public static readonly string ClosingSituations = $"SELECT {IllustrationPointsDatabaseConstants.ClosingSituationId}, " + - "ClosingSituationName " + + $"{IllustrationPointsDatabaseConstants.ClosingSituationName} " + "FROM ClosingSituations;"; /// @@ -44,7 +47,7 @@ $"WindDirections.WindDirectionId = GoverningWind.WindDirectionId as {IllustrationPointsDatabaseConstants.IsGoverning} " + "FROM WindDirections " + "JOIN GoverningWind " + - "WHERE OuterIterationId = (SELECT MAX(OuterIterationID) FROM GoverningWind);"; + $"WHERE {lastIteration};"; /// /// Selects all the sub mechanisms. @@ -74,8 +77,8 @@ "FROM DesignAlpha " + "JOIN Stochasts USING(StochastId) " + "WHERE LevelTypeId = 4 " + - "AND OuterIterationId = (SELECT MAX(OuterIterationId) FROM DesignAlpha) " + - "AND PeriodId = (SELECT MIN(PeriodId) FROM DesignAlpha);"; + $"AND {lastIteration} " + + $"AND {firstPeriod};"; /// /// Selects the beta values for a general result. @@ -84,8 +87,8 @@ $"SELECT {IllustrationPointsDatabaseConstants.BetaValue} " + "FROM DesignBeta " + "WHERE LevelTypeId = 4 " + - "AND OuterIterationId = (SELECT MAX(OuterIterationId) FROM DesignAlpha) " + - "AND PeriodId = (SELECT MIN(PeriodId) FROM DesignAlpha);"; + $"AND {lastIteration} " + + $"AND {firstPeriod};"; /// /// Selects the alpha values for each fault tree illustration point. @@ -102,8 +105,8 @@ "JOIN DesignAlpha USING(FaultTreeId) " + "JOIN Stochasts USING(StochastId) " + "WHERE DesignAlpha.LevelTypeId = 5 " + - "AND PeriodId = (SELECT MIN(PeriodId) FROM DesignAlpha) " + - "AND OuterIterationId = (SELECT MAX(OuterIterationId) FROM DesignAlpha);"; + $"AND {lastIteration} " + + $"AND {firstPeriod};"; /// /// Selects the beta values for each fault tree illustration point. @@ -117,8 +120,8 @@ "FROM FaultTrees " + "JOIN DesignBeta USING(FaultTreeId) " + "WHERE DesignBeta.LevelTypeId = 5 " + - "AND PeriodId = (SELECT MIN(PeriodId) FROM DesignBeta) " + - "AND OuterIterationId = (SELECT MAX(OuterIterationId) FROM DesignBeta);"; + $"AND {lastIteration} " + + $"AND {firstPeriod};"; /// /// Selects the alpha values for each sub mechanism illustration point. @@ -132,12 +135,12 @@ $"{IllustrationPointsDatabaseConstants.AlphaValue}," + $"{IllustrationPointsDatabaseConstants.Duration}, " + $"{IllustrationPointsDatabaseConstants.Realization} " + - $"FROM SubMechanisms " + + "FROM SubMechanisms " + "JOIN DesignAlpha USING(SubMechanismId) " + "JOIN Stochasts USING(StochastId) " + "WHERE DesignAlpha.LevelTypeId = 7 " + - "AND PeriodId = (SELECT MIN(PeriodId) FROM DesignAlpha) " + - "AND OuterIterationId = (SELECT MAX(OuterIterationId) FROM DesignAlpha);"; + $"AND {lastIteration} " + + $"AND {firstPeriod};"; /// /// Selects the beta values for each sub mechanism illustration point. @@ -151,8 +154,8 @@ "FROM SubMechanisms " + "JOIN DesignBeta USING(SubMechanismId) " + "WHERE DesignBeta.LevelTypeId = 7 " + - "AND PeriodId = (SELECT MIN(PeriodId) FROM DesignBeta) " + - "AND OuterIterationId = (SELECT MAX(OuterIterationId) FROM DesignBeta);"; + $"AND {lastIteration} " + + $"AND {firstPeriod};"; /// /// Selects the output variables for each sub mechanism illustration point. @@ -167,8 +170,8 @@ "FROM SubMechanisms " + "JOIN DesignPointResults USING(SubMechanismId) " + "JOIN OutputVariables USING(OutputVariableId) " + - "WHERE PeriodId = (SELECT MIN(PeriodId) FROM DesignPointResults) " + - "AND OuterIterationId = (SELECT MAX(OuterIterationId) FROM DesignPointResults);"; + $"WHERE {lastIteration} " + + $"AND {firstPeriod};"; /// /// Selects all the illustration points from the fault tree. Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs =================================================================== diff -u -r288827a5a3e825d8e47cff85d76495e2601483f1 -r648d6c8d5c952943c3f428981f97c1cdd8b0bd37 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (.../IllustrationPointsParser.cs) (revision 288827a5a3e825d8e47cff85d76495e2601483f1) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (.../IllustrationPointsParser.cs) (revision 648d6c8d5c952943c3f428981f97c1cdd8b0bd37) @@ -34,6 +34,11 @@ /// public class IllustrationPointsParser : IHydraRingFileParser { + /// + /// The result of parsing the illustration points in the Hydra-Ring database. + /// + public readonly GeneralResult Output = new GeneralResult(); + private readonly Dictionary> faultTreeStochasts = new Dictionary>(); private readonly Dictionary faultTreeBetaValues = new Dictionary(); @@ -46,11 +51,6 @@ private IDictionary subMechanisms; private IDictionary faultTrees; - /// - /// The result of parsing the illustration points in the Hydra-Ring database. - /// - public readonly GeneralResult Output = new GeneralResult(); - public void Parse(string workingDirectory, int sectionId) { string query = string.Concat( @@ -324,7 +324,7 @@ { Name = faultTrees[faultTreeId], Beta = faultTreeBetaValues[dataKey], - Combine = combinationType + CombinationType = combinationType }; if (faultTreeStochasts.ContainsKey(dataKey)) { @@ -360,7 +360,7 @@ return new IllustrationPointTreeNode(illustrationPoint); } - private void AddRange(ICollection collection, IEnumerable itemsToAdd) + private static void AddRange(ICollection collection, IEnumerable itemsToAdd) { foreach (T item in itemsToAdd) { @@ -370,39 +370,36 @@ private void ParseGeneralBetaValue(HydraRingDatabaseReader reader) { - IEnumerable> betaValues = GetIterator(reader).ToArray(); - if (betaValues.Count() != 1) + Dictionary[] betaValues = GetIterator(reader).ToArray(); + if (betaValues.Length != 1) { throw new HydraRingFileParserException(Resources.IllustrationPointsParser_Parse_Multiple_values_for_beta_of_illustration_point_found); } - Output.Beta = Convert.ToDouble(betaValues.First()[IllustrationPointsDatabaseConstants.BetaValue]); + Output.Beta = Convert.ToDouble(betaValues[0][IllustrationPointsDatabaseConstants.BetaValue]); } private void ParseGeneralAlphaValues(HydraRingDatabaseReader reader) { - IEnumerable> alphaValues = GetIterator(reader).ToArray(); - Output.Stochasts = alphaValues.Select(a => new Stochast + Output.Stochasts = GetIterator(reader).Select(a => new Stochast { Name = Convert.ToString(a[IllustrationPointsDatabaseConstants.StochastName]), Duration = Convert.ToDouble(a[IllustrationPointsDatabaseConstants.Duration]), Alpha = Convert.ToDouble(a[IllustrationPointsDatabaseConstants.AlphaValue]) - }); + }).ToArray(); } private void ParseClosingSituations(HydraRingDatabaseReader reader) { - IEnumerable> readClosingSituations = GetIterator(reader).ToArray(); - closingSituations = readClosingSituations.ToDictionary( + closingSituations = GetIterator(reader).ToDictionary( r => Convert.ToInt32(r[IllustrationPointsDatabaseConstants.ClosingSituationId]), r => Convert.ToString(r[IllustrationPointsDatabaseConstants.ClosingSituationName])); } private void ParseWindDirections(HydraRingDatabaseReader reader) { - IEnumerable> readWindDirections = GetIterator(reader).ToArray(); windDirections = new Dictionary(); - foreach (Dictionary readWindDirection in readWindDirections) + foreach (Dictionary readWindDirection in GetIterator(reader)) { int key = Convert.ToInt32(readWindDirection[IllustrationPointsDatabaseConstants.WindDirectionId]); string name = Convert.ToString(readWindDirection[IllustrationPointsDatabaseConstants.WindDirectionName]); @@ -425,16 +422,14 @@ private void ParseSubMechanisms(HydraRingDatabaseReader reader) { - IEnumerable> readSubMechanisms = GetIterator(reader).ToArray(); - subMechanisms = readSubMechanisms.ToDictionary( + subMechanisms = GetIterator(reader).ToDictionary( r => Convert.ToInt32(r[IllustrationPointsDatabaseConstants.SubMechanismId]), r => Convert.ToString(r[IllustrationPointsDatabaseConstants.SubMechanismName])); } private void ParseFaultTrees(HydraRingDatabaseReader reader) { - IEnumerable> readFaultTrees = GetIterator(reader).ToArray(); - faultTrees = readFaultTrees.ToDictionary( + faultTrees = GetIterator(reader).ToDictionary( r => Convert.ToInt32(r[IllustrationPointsDatabaseConstants.FaultTreeId]), r => Convert.ToString(r[IllustrationPointsDatabaseConstants.FaultTreeName])); } Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/IllustrationPoints/FaultTreeIllustrationPointTest.cs =================================================================== diff -u -r6d67c42595915b7385a6cf2f13885abc9ed1fad0 -r648d6c8d5c952943c3f428981f97c1cdd8b0bd37 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/IllustrationPoints/FaultTreeIllustrationPointTest.cs (.../FaultTreeIllustrationPointTest.cs) (revision 6d67c42595915b7385a6cf2f13885abc9ed1fad0) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/IllustrationPoints/FaultTreeIllustrationPointTest.cs (.../FaultTreeIllustrationPointTest.cs) (revision 648d6c8d5c952943c3f428981f97c1cdd8b0bd37) @@ -37,7 +37,7 @@ Assert.IsInstanceOf(illustrationPoint); Assert.IsEmpty(illustrationPoint.Stochasts); Assert.IsNaN(illustrationPoint.Beta); - Assert.AreEqual(CombinationType.Or, illustrationPoint.Combine); + Assert.AreEqual(CombinationType.Or, illustrationPoint.CombinationType); } } } \ No newline at end of file Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/IllustrationPoints/IllustrationPointResultTest.cs =================================================================== diff -u -r6d67c42595915b7385a6cf2f13885abc9ed1fad0 -r648d6c8d5c952943c3f428981f97c1cdd8b0bd37 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/IllustrationPoints/IllustrationPointResultTest.cs (.../IllustrationPointResultTest.cs) (revision 6d67c42595915b7385a6cf2f13885abc9ed1fad0) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/IllustrationPoints/IllustrationPointResultTest.cs (.../IllustrationPointResultTest.cs) (revision 648d6c8d5c952943c3f428981f97c1cdd8b0bd37) @@ -27,7 +27,6 @@ [TestFixture] public class IllustrationPointResultTest { - [Test] public void Constructor_Always_ReturnsNewInstance() {