Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/TargetProbabilityCalculationParser.cs =================================================================== diff -u -r3d9b418d483c122040e11a7e074d666c64e9d7b5 -r4430e1e5a3bd4f8e6be06c7a48670deb22f60960 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/TargetProbabilityCalculationParser.cs (.../TargetProbabilityCalculationParser.cs) (revision 3d9b418d483c122040e11a7e074d666c64e9d7b5) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/TargetProbabilityCalculationParser.cs (.../TargetProbabilityCalculationParser.cs) (revision 4430e1e5a3bd4f8e6be06c7a48670deb22f60960) @@ -52,9 +52,9 @@ foreach (var resultLine in lines.Skip(3)) // Skip the header lines { - var results = resultLine.Split((char[]) null, StringSplitOptions.RemoveEmptyEntries); + var results = resultLine.Split((char[])null, StringSplitOptions.RemoveEmptyEntries); - if (results.ElementAt(0) == sectionId.ToString()) + if (results.Any() && results.ElementAt(0) == sectionId.ToString()) { Output = new TargetProbabilityCalculationOutput(GetDoubleValueFromElement(results.ElementAt(results.Length - 2)), GetDoubleValueFromElement(results.ElementAt(results.Length - 1))); } Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/TargetProbabilityCalculationParserTest.cs =================================================================== diff -u -rdf02e9274a94d8763da204833a4d93f984e242c6 -r4430e1e5a3bd4f8e6be06c7a48670deb22f60960 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/TargetProbabilityCalculationParserTest.cs (.../TargetProbabilityCalculationParserTest.cs) (revision df02e9274a94d8763da204833a4d93f984e242c6) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/TargetProbabilityCalculationParserTest.cs (.../TargetProbabilityCalculationParserTest.cs) (revision 4430e1e5a3bd4f8e6be06c7a48670deb22f60960) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.IO; using Core.Common.TestUtil; using NUnit.Framework; @@ -108,6 +109,27 @@ } [Test] + public void Parse_ExampleHydraRingOutputFileContainingExtraWhiteLine_ReturnsExpectedTargetProbabilityCalculationResult() + { + // Setup + var targetProbabilityCalculationParser = new TargetProbabilityCalculationParser(); + Console.WriteLine(workingDirectory); + using (var copyHelper = new TestDataCopyHelper(testDataPath, workingDirectory)) + { + copyHelper.CopyToTemporaryOutput("exampleOutputTableWithWhiteLine.txt", HydraRingFileName.DesignTablesFileName); + + // Call + targetProbabilityCalculationParser.Parse(workingDirectory, 1); + } + + // Assert + var targetProbabilityCalculationOutput = targetProbabilityCalculationParser.Output; + Assert.IsNotNull(targetProbabilityCalculationOutput); + Assert.AreEqual(1.1, targetProbabilityCalculationOutput.Result); + Assert.AreEqual(11.11, targetProbabilityCalculationOutput.ActualTargetProbability); + } + + [Test] public void Parse_ExampleHydraRingOutputFileNotContainingSectionId_OutputNull() { // Setup Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/TargetProbabilityCalculationParser/exampleOutputTableWithWhiteLine.txt =================================================================== diff -u --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/TargetProbabilityCalculationParser/exampleOutputTableWithWhiteLine.txt (revision 0) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/TargetProbabilityCalculationParser/exampleOutputTableWithWhiteLine.txt (revision 4430e1e5a3bd4f8e6be06c7a48670deb22f60960) @@ -0,0 +1,4 @@ +Testing region: +------------------------------------------------------------------------------------------------------------------------ + SectionID Mechanism Layer Alternative XCoordinate YCoordinate Result Reliability + 1 1 1 1 0 0 1.1 11.11 Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationRow.cs =================================================================== diff -u -r4af0bffb50faa15fa8accb67e35b80af45dc1213 -r4430e1e5a3bd4f8e6be06c7a48670deb22f60960 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationRow.cs (.../PipingCalculationRow.cs) (revision 4af0bffb50faa15fa8accb67e35b80af45dc1213) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationRow.cs (.../PipingCalculationRow.cs) (revision 4430e1e5a3bd4f8e6be06c7a48670deb22f60960) @@ -62,38 +62,6 @@ } /// - /// Gets or sets the is relevant. - /// - public bool IsRelevant - { - get - { - return pipingCalculation.IsRelevant; - } - set - { - pipingCalculation.IsRelevant = value; - pipingCalculation.NotifyObservers(); - } - } - - /// - /// Gets or sets the contribution of the . - /// - public RoundedDouble Contribution - { - get - { - return new RoundedDouble(0, pipingCalculation.Contribution * 100); - } - set - { - pipingCalculation.Contribution = (RoundedDouble)(value / 100); - pipingCalculation.NotifyObservers(); - } - } - - /// /// Gets or sets the name of the . /// public string Name Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs =================================================================== diff -u -r4af0bffb50faa15fa8accb67e35b80af45dc1213 -r4430e1e5a3bd4f8e6be06c7a48670deb22f60960 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 4af0bffb50faa15fa8accb67e35b80af45dc1213) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 4430e1e5a3bd4f8e6be06c7a48670deb22f60960) @@ -47,9 +47,9 @@ /// public partial class PipingCalculationsView : UserControl, IView { - private const int stochasticSoilModelColumnIndex = 3; - private const int stochasticSoilProfileColumnIndex = 4; - private const int hydraulicBoundaryLocationColumnIndex = 6; + private const int stochasticSoilModelColumnIndex = 1; + private const int stochasticSoilProfileColumnIndex = 2; + private const int hydraulicBoundaryLocationColumnIndex = 4; private readonly Observer assessmentSectionObserver; private readonly RecursiveObserver pipingInputObserver; private readonly RecursiveObserver pipingCalculationGroupObserver; @@ -181,15 +181,7 @@ { dataGridViewControl.AddCellClickHandler(DataGridViewOnCellClick); - dataGridViewControl.AddCheckBoxColumn( - TypeUtils.GetMemberName(row => row.IsRelevant), - Resources.PipingCalculationsView_InitializeDataGridView_In_final_rating - ); dataGridViewControl.AddTextBoxColumn( - TypeUtils.GetMemberName(row => row.Contribution), - Resources.PipingCalculationsView_InitializeDataGridView_Contribution - ); - dataGridViewControl.AddTextBoxColumn( TypeUtils.GetMemberName(row => row.Name), Resources.PipingCalculation_Name_DisplayName ); Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationRowTest.cs =================================================================== diff -u -r619da07034480d4ba9e59fe0bea2dd06d83963e0 -r4430e1e5a3bd4f8e6be06c7a48670deb22f60960 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationRowTest.cs (.../PipingCalculationRowTest.cs) (revision 619da07034480d4ba9e59fe0bea2dd06d83963e0) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationRowTest.cs (.../PipingCalculationRowTest.cs) (revision 4430e1e5a3bd4f8e6be06c7a48670deb22f60960) @@ -64,8 +64,6 @@ // Assert Assert.AreSame(calculation, row.PipingCalculation); Assert.AreEqual(calculation.Name, row.Name); - Assert.AreEqual(calculation.IsRelevant, row.IsRelevant); - Assert.AreEqual(new RoundedDouble(1, calculation.Contribution), new RoundedDouble(1, row.Contribution / 100)); Assert.AreEqual(calculation.InputParameters.StochasticSoilModel, row.StochasticSoilModel.WrappedObject); Assert.AreEqual(calculation.InputParameters.StochasticSoilProfile, row.StochasticSoilProfile.WrappedObject); Assert.AreEqual(calculation.InputParameters.StochasticSoilProfile.Probability.ToString(CultureInfo.CurrentCulture), row.StochasticSoilProfileProbability); @@ -77,55 +75,6 @@ } [Test] - [TestCase(false)] - [TestCase(true)] - public void IsRelevant_AlwaysOnChange_NotifyObserversAndCalculationPropertyChanged(bool newValue) - { - // Setup - var mocks = new MockRepository(); - var observer = mocks.StrictMock(); - observer.Expect(o => o.UpdateObserver()); - mocks.ReplayAll(); - - var calculation = PipingCalculationFactory.CreateCalculationWithValidInput(); - calculation.Attach(observer); - - var row = new PipingCalculationRow(calculation); - - // Call - row.IsRelevant = newValue; - - // Assert - Assert.AreEqual(newValue, calculation.IsRelevant); - - mocks.VerifyAll(); - } - - [Test] - public void Contribution_AlwaysOnChange_NotifyObserverAndCalculationPropertyChanged() - { - // Setup - var newValue = new Random().Next(0, 100); - - var calculation = PipingCalculationFactory.CreateCalculationWithValidInput(); - var row = new PipingCalculationRow(calculation); - - int counter = 0; - using (new Observer(() => counter++) - { - Observable = calculation - }) - { - // Call - row.Contribution = (RoundedDouble) newValue; - - // Assert - Assert.AreEqual(1, counter); - Assert.AreEqual(new RoundedDouble(2, newValue), calculation.Contribution * 100); - } - } - - [Test] public void Name_AlwaysOnChange_NotifyObserverAndCalculationPropertyChanged() { // Setup Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs =================================================================== diff -u -r619da07034480d4ba9e59fe0bea2dd06d83963e0 -r4430e1e5a3bd4f8e6be06c7a48670deb22f60960 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs (.../PipingCalculationsViewTest.cs) (revision 619da07034480d4ba9e59fe0bea2dd06d83963e0) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs (.../PipingCalculationsViewTest.cs) (revision 4430e1e5a3bd4f8e6be06c7a48670deb22f60960) @@ -19,7 +19,6 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System; using System.Collections.Generic; using System.Globalization; using System.Linq; @@ -93,7 +92,7 @@ // Assert Assert.IsFalse(dataGridView.AutoGenerateColumns); - Assert.AreEqual(11, dataGridView.ColumnCount); + Assert.AreEqual(9, dataGridView.ColumnCount); foreach (var column in dataGridView.Columns.OfType()) { @@ -277,25 +276,23 @@ Assert.AreEqual(2, rows.Count); var cells = rows[0].Cells; - Assert.AreEqual(11, cells.Count); - Assert.IsTrue((bool) cells[isRelevantColumnIndex].FormattedValue); - Assert.AreEqual(100.ToString(CultureInfo.CurrentCulture), cells[contributionColumnIndex].FormattedValue); + Assert.AreEqual(9, cells.Count); Assert.AreEqual("Calculation 1", cells[nameColumnIndex].FormattedValue); Assert.AreEqual("Model A", cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual("", cells[stochasticSoilProfilesColumnIndex].FormattedValue); + Assert.AreEqual("0", cells[stochasticSoilProfilesProbabilityColumnIndex].FormattedValue); Assert.AreEqual("Location 1", cells[hydraulicBoundaryLocationsColumnIndex].FormattedValue); Assert.AreEqual(1.111.ToString(CultureInfo.CurrentCulture), cells[dampingFactorExitMeanColumnIndex].FormattedValue); Assert.AreEqual(2.222.ToString(CultureInfo.CurrentCulture), cells[phreaticLevelExitMeanColumnIndex].FormattedValue); Assert.AreEqual(3.33.ToString(CultureInfo.CurrentCulture), cells[entryPointLColumnIndex].FormattedValue); Assert.AreEqual(4.44.ToString(CultureInfo.CurrentCulture), cells[exitPointLColumnIndex].FormattedValue); cells = rows[1].Cells; - Assert.AreEqual(11, cells.Count); - Assert.IsTrue((bool) cells[isRelevantColumnIndex].FormattedValue); - Assert.AreEqual(100.ToString(CultureInfo.CurrentCulture), cells[contributionColumnIndex].FormattedValue); + Assert.AreEqual(9, cells.Count); Assert.AreEqual("Calculation 2", cells[nameColumnIndex].FormattedValue); Assert.AreEqual("Model E", cells[stochasticSoilModelsColumnIndex].FormattedValue); Assert.AreEqual("Profile 5", cells[stochasticSoilProfilesColumnIndex].FormattedValue); + Assert.AreEqual("30", cells[stochasticSoilProfilesProbabilityColumnIndex].FormattedValue); Assert.AreEqual("Location 2", cells[hydraulicBoundaryLocationsColumnIndex].FormattedValue); Assert.AreEqual(5.556.ToString(CultureInfo.CurrentCulture), cells[dampingFactorExitMeanColumnIndex].FormattedValue); Assert.AreEqual(6.667.ToString(CultureInfo.CurrentCulture), cells[phreaticLevelExitMeanColumnIndex].FormattedValue); @@ -407,12 +404,10 @@ } [Test] - [TestCase("test", contributionColumnIndex)] [TestCase("test", dampingFactorExitMeanColumnIndex)] [TestCase("test", phreaticLevelExitMeanColumnIndex)] [TestCase("test", entryPointLColumnIndex)] [TestCase("test", exitPointLColumnIndex)] - [TestCase(";/[].,~!@#$%^&*()_-+={}|?", contributionColumnIndex)] [TestCase(";/[].,~!@#$%^&*()_-+={}|?", dampingFactorExitMeanColumnIndex)] [TestCase(";/[].,~!@#$%^&*()_-+={}|?", phreaticLevelExitMeanColumnIndex)] [TestCase(";/[].,~!@#$%^&*()_-+={}|?", entryPointLColumnIndex)] @@ -432,10 +427,6 @@ } [Test] - [TestCase(1, contributionColumnIndex)] - [TestCase(1e-6, contributionColumnIndex)] - [TestCase(1e+6, contributionColumnIndex)] - [TestCase(14.3, contributionColumnIndex)] [TestCase(1, dampingFactorExitMeanColumnIndex)] [TestCase(1e-2, dampingFactorExitMeanColumnIndex)] [TestCase(1e+6, dampingFactorExitMeanColumnIndex)] @@ -816,8 +807,6 @@ Assert.IsFalse(button.Enabled); } - [TestCase(isRelevantColumnIndex, true, true, false)] - [TestCase(contributionColumnIndex, 30.0, true, false)] [TestCase(nameColumnIndex, "New name", true, false)] [TestCase(stochasticSoilProfilesColumnIndex, null, false, true)] [TestCase(hydraulicBoundaryLocationsColumnIndex, null, false, true)] @@ -924,17 +913,15 @@ mocks.VerifyAll(); // No observer notified } - private const int isRelevantColumnIndex = 0; - private const int contributionColumnIndex = 1; - private const int nameColumnIndex = 2; - private const int stochasticSoilModelsColumnIndex = 3; - private const int stochasticSoilProfilesColumnIndex = 4; - private const int stochasticSoilProfilesProbabilityColumnIndex = 5; - private const int hydraulicBoundaryLocationsColumnIndex = 6; - private const int dampingFactorExitMeanColumnIndex = 7; - private const int phreaticLevelExitMeanColumnIndex = 8; - private const int entryPointLColumnIndex = 9; - private const int exitPointLColumnIndex = 10; + private const int nameColumnIndex = 0; + private const int stochasticSoilModelsColumnIndex = 1; + private const int stochasticSoilProfilesColumnIndex = 2; + private const int stochasticSoilProfilesProbabilityColumnIndex = 3; + private const int hydraulicBoundaryLocationsColumnIndex = 4; + private const int dampingFactorExitMeanColumnIndex = 5; + private const int phreaticLevelExitMeanColumnIndex = 6; + private const int entryPointLColumnIndex = 7; + private const int exitPointLColumnIndex = 8; private PipingCalculationsView ShowFullyConfiguredPipingCalculationsView() { Index: Ringtoets/Piping/test/Ringtoets.Piping.Integration.Test/PipingCalculationsViewIntegrationTest.cs =================================================================== diff -u -rbe9428984d28fcbd8f6089f1c1184cd9763c18bf -r4430e1e5a3bd4f8e6be06c7a48670deb22f60960 --- Ringtoets/Piping/test/Ringtoets.Piping.Integration.Test/PipingCalculationsViewIntegrationTest.cs (.../PipingCalculationsViewIntegrationTest.cs) (revision be9428984d28fcbd8f6089f1c1184cd9763c18bf) +++ Ringtoets/Piping/test/Ringtoets.Piping.Integration.Test/PipingCalculationsViewIntegrationTest.cs (.../PipingCalculationsViewIntegrationTest.cs) (revision 4430e1e5a3bd4f8e6be06c7a48670deb22f60960) @@ -130,13 +130,13 @@ } } - private const int nameColumnIndex = 2; - private const int stochasticSoilModelsColumnIndex = 3; - private const int stochasticSoilProfilesColumnIndex = 4; - private const int hydraulicBoundaryLocationsColumnIndex = 6; - private const int dampingFactorExitMeanColumnIndex = 7; - private const int phreaticLevelExitMeanColumnIndex = 8; - private const int entryPointLColumnIndex = 9; - private const int exitPointLColumnIndex = 10; + private const int nameColumnIndex = 0; + private const int stochasticSoilModelsColumnIndex = 1; + private const int stochasticSoilProfilesColumnIndex = 2; + private const int hydraulicBoundaryLocationsColumnIndex = 4; + private const int dampingFactorExitMeanColumnIndex = 5; + private const int phreaticLevelExitMeanColumnIndex = 6; + private const int entryPointLColumnIndex = 7; + private const int exitPointLColumnIndex = 8; } } \ No newline at end of file