Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismSectionProbabilityAssessmentRow.cs =================================================================== diff -u -r7d3513bd9fed2d5a0381255640a5c3f31a0a6175 -r340fb4625cbca3ad4de3afed18923fc2c2d8af16 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismSectionProbabilityAssessmentRow.cs (.../FailureMechanismSectionProbabilityAssessmentRow.cs) (revision 7d3513bd9fed2d5a0381255640a5c3f31a0a6175) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismSectionProbabilityAssessmentRow.cs (.../FailureMechanismSectionProbabilityAssessmentRow.cs) (revision 340fb4625cbca3ad4de3afed18923fc2c2d8af16) @@ -38,11 +38,16 @@ /// Creates a new instance of . /// /// The failure mechanism section to use. + /// The start of the section from the beginning + /// of the reference line in meters. + /// The end of the section from the beginning of + /// the reference line in meters. /// The probability assessment input to use. /// Thrown when any input parameter is null. public FailureMechanismSectionProbabilityAssessmentRow(FailureMechanismSection section, + double sectionStart, double sectionEnd, ProbabilityAssessmentInput probabilityAssessmentInput) - : base(section, 0, 0) + : base(section, sectionStart, sectionEnd) { if (probabilityAssessmentInput == null) { Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismSectionsProbabilityAssessmentView.cs =================================================================== diff -u -r303f338bc9e42d1d7621666fdf83b93a11f28b64 -r340fb4625cbca3ad4de3afed18923fc2c2d8af16 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismSectionsProbabilityAssessmentView.cs (.../FailureMechanismSectionsProbabilityAssessmentView.cs) (revision 303f338bc9e42d1d7621666fdf83b93a11f28b64) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismSectionsProbabilityAssessmentView.cs (.../FailureMechanismSectionsProbabilityAssessmentView.cs) (revision 340fb4625cbca3ad4de3afed18923fc2c2d8af16) @@ -73,9 +73,18 @@ { currentA = probabilityAssessmentInput.A; - failureMechanismSectionsDataGridViewControl.SetDataSource( - sections.Select(section => new FailureMechanismSectionProbabilityAssessmentRow(section, probabilityAssessmentInput)) - .ToArray()); + var rows = new List(); + double startDistance = 0; + foreach (FailureMechanismSection section in sections) + { + double endDistance = startDistance + section.Length; + + rows.Add(new FailureMechanismSectionProbabilityAssessmentRow(section, startDistance, endDistance, probabilityAssessmentInput)); + + startDistance = endDistance; + } + + failureMechanismSectionsDataGridViewControl.SetDataSource(rows); } protected override void Dispose(bool disposing) Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismSectionProbabilityAssessmentRowTest.cs =================================================================== diff -u -rc7765a155d2a99d3805285129b8253dd7e7516c5 -r340fb4625cbca3ad4de3afed18923fc2c2d8af16 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismSectionProbabilityAssessmentRowTest.cs (.../FailureMechanismSectionProbabilityAssessmentRowTest.cs) (revision c7765a155d2a99d3805285129b8253dd7e7516c5) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismSectionProbabilityAssessmentRowTest.cs (.../FailureMechanismSectionProbabilityAssessmentRowTest.cs) (revision 340fb4625cbca3ad4de3afed18923fc2c2d8af16) @@ -40,7 +40,7 @@ FailureMechanismSection section = GetTestFailureMechanismSection(); // Call - TestDelegate test = () => new FailureMechanismSectionProbabilityAssessmentRow(section, null); + TestDelegate test = () => new FailureMechanismSectionProbabilityAssessmentRow(section, double.NaN, double.NaN, null); // Assert string paramName = Assert.Throws(test).ParamName; @@ -53,15 +53,21 @@ // Setup var random = new Random(39); FailureMechanismSection section = GetTestFailureMechanismSection(); + double sectionStart = random.NextDouble(); + double sectionEnd = random.NextDouble(); var probabilityAssessmentInput = new TestProbabilityAssessmentInput(random.NextDouble(), random.NextDouble()); // Call - var sectionRow = new FailureMechanismSectionProbabilityAssessmentRow(section, probabilityAssessmentInput); + var sectionRow = new FailureMechanismSectionProbabilityAssessmentRow(section, sectionStart, sectionEnd, probabilityAssessmentInput); // Assert Assert.IsInstanceOf(sectionRow); Assert.AreEqual(section.Name, sectionRow.Name); + + Assert.AreEqual(sectionStart, sectionRow.SectionStart, sectionRow.SectionStart.GetAccuracy()); + Assert.AreEqual(sectionEnd, sectionRow.SectionEnd, sectionRow.SectionEnd.GetAccuracy()); + Assert.AreEqual(section.Length, sectionRow.Length, sectionRow.Length.GetAccuracy()); Assert.AreEqual(2, sectionRow.N.NumberOfDecimalPlaces); @@ -75,7 +81,7 @@ var random = new Random(39); FailureMechanismSection section = GetTestFailureMechanismSection(); var probabilityAssessmentInput = new TestProbabilityAssessmentInput(random.NextDouble(), random.NextDouble()); - var sectionRow = new FailureMechanismSectionProbabilityAssessmentRow(section, probabilityAssessmentInput); + var sectionRow = new FailureMechanismSectionProbabilityAssessmentRow(section, double.NaN, double.NaN, probabilityAssessmentInput); // Precondition AssertLengthEffect(probabilityAssessmentInput, section, sectionRow); Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismSectionsProbabilityAssessmentViewTest.cs =================================================================== diff -u -rbd4c3f207fb9181e32fa15d5faaf643366d6326a -r340fb4625cbca3ad4de3afed18923fc2c2d8af16 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismSectionsProbabilityAssessmentViewTest.cs (.../FailureMechanismSectionsProbabilityAssessmentViewTest.cs) (revision bd4c3f207fb9181e32fa15d5faaf643366d6326a) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismSectionsProbabilityAssessmentViewTest.cs (.../FailureMechanismSectionsProbabilityAssessmentViewTest.cs) (revision 340fb4625cbca3ad4de3afed18923fc2c2d8af16) @@ -309,18 +309,28 @@ { Assert.AreEqual(sections.Length, sectionsDataGridViewControl.Rows.Count); + double sectionStart = 0; for (var i = 0; i < sectionsDataGridViewControl.Rows.Count; i++) { FailureMechanismSection section = sections[i]; DataGridViewCellCollection rowCells = sectionsDataGridViewControl.Rows[i].Cells; Assert.AreEqual(section.Name, rowCells[nameColumnIndex].Value); + + var sectionStartValue = (RoundedDouble)rowCells[sectionStartColumnIndex].Value; + Assert.AreEqual(sectionStart, sectionStartValue, sectionStartValue.GetAccuracy()); + double sectionEnd = sectionStart + section.Length; + var sectionEndValue = (RoundedDouble)rowCells[sectionEndColumnIndex].Value; + Assert.AreEqual(sectionEnd, sectionEndValue, sectionEndValue.GetAccuracy()); + var sectionLength = (RoundedDouble) rowCells[lengthColumnIndex].Value; Assert.AreEqual(section.Length, sectionLength, sectionLength.GetAccuracy()); var lengthEffect = (RoundedDouble) rowCells[lengthEffectColumnIndex].Value; Assert.AreEqual(probabilityAssessmentInput.GetN(section.Length), lengthEffect, lengthEffect.GetAccuracy()); + + sectionStart = sectionEnd; } }