Index: Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/ICalculationScenario.cs =================================================================== diff -u -rb3b6c13cf736c134476b3db34281332d01ca86b1 -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/ICalculationScenario.cs (.../ICalculationScenario.cs) (revision b3b6c13cf736c134476b3db34281332d01ca86b1) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/ICalculationScenario.cs (.../ICalculationScenario.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -38,15 +38,8 @@ /// Gets or sets the contribution of the scenario. /// RoundedDouble Contribution { get; set; } - + /// - /// Gets the probability of the scenario. - /// - /// Implementers should throw - /// when the getter is called while the does not return Done. - double Probability { get; } - - /// /// Gets the status of the scenario. /// CalculationScenarioStatus Status { get; } Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationScenario.cs =================================================================== diff -u -r81fa8a9bf3bd503cbd280e88b8f6037a840cff12 -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationScenario.cs (.../PipingCalculationScenario.cs) (revision 81fa8a9bf3bd503cbd280e88b8f6037a840cff12) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationScenario.cs (.../PipingCalculationScenario.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -59,31 +59,18 @@ } } - public double Probability - { - get - { - if (Status != CalculationScenarioStatus.Done) - { - throw new InvalidOperationException("The probability can only be accessed when the status is done."); - } - - return SemiProbabilisticOutput.PipingProbability; - } - } - public CalculationScenarioStatus Status { get { - if (Output == null) - { - return CalculationScenarioStatus.NotCalculated; - } - - return SemiProbabilisticOutput == null || double.IsNaN(SemiProbabilisticOutput.PipingProbability) - ? CalculationScenarioStatus.Failed + return Output == null + ? CalculationScenarioStatus.NotCalculated : CalculationScenarioStatus.Done; + + // +// return SemiProbabilisticOutput == null || double.IsNaN(SemiProbabilisticOutput.PipingProbability) +// ? CalculationScenarioStatus.Failed +// : CalculationScenarioStatus.Done; } } } Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSection2aAssessmentResultExtensions.cs =================================================================== diff -u -rffba5900acc192187346a9ad73acea5e8b9d0bf5 -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSection2aAssessmentResultExtensions.cs (.../PipingFailureMechanismSection2aAssessmentResultExtensions.cs) (revision ffba5900acc192187346a9ad73acea5e8b9d0bf5) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSection2aAssessmentResultExtensions.cs (.../PipingFailureMechanismSection2aAssessmentResultExtensions.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -25,6 +25,7 @@ using System.Linq; using Core.Common.Base.Data; using Core.Common.Base.Geometry; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; namespace Ringtoets.Piping.Data @@ -39,17 +40,34 @@ /// /// The result to get the result for. /// All calculations in the failure mechanism. + /// The failure mechanism the calculations belong to. + /// The assessment section the calculations belong to. public static double GetAssessmentLayerTwoA(this PipingFailureMechanismSectionResult pipingFailureMechanismSectionResult, - IEnumerable calculations) + IEnumerable calculations, + PipingFailureMechanism failurMechanism, + IAssessmentSection assessmentSection) { List calculationScenarios = pipingFailureMechanismSectionResult .GetCalculationScenarios(calculations) .Where(cs => cs.Status == CalculationScenarioStatus.Done) .ToList(); - return calculationScenarios.Any() - ? calculationScenarios.Sum(scenario => scenario.Probability * scenario.Contribution.Value) - : double.NaN; + if (calculationScenarios.Any()) + { + double totalAssessmentLayerTwoA = 0; + foreach (PipingCalculationScenario calculationScenario in calculationScenarios) + { + DerivedPipingOutput derivedOutput = DerivedPipingOutputFactory.Create(calculationScenario.Output, + failurMechanism.PipingProbabilityAssessmentInput, + assessmentSection.FailureMechanismContribution.Norm, + failurMechanism.Contribution); + + totalAssessmentLayerTwoA += derivedOutput.PipingProbability * calculationScenario.Contribution; + } + return totalAssessmentLayerTwoA; + } + + return double.NaN; } /// Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismResultView.cs =================================================================== diff -u -rb6d6acf62adcb4b23c4c5f6724fbd0091585bbb3 -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismResultView.cs (.../PipingFailureMechanismResultView.cs) (revision b6d6acf62adcb4b23c4c5f6724fbd0091585bbb3) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismResultView.cs (.../PipingFailureMechanismResultView.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -23,6 +23,7 @@ using System.Linq; using System.Windows.Forms; using Core.Common.Base; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Forms.Views; @@ -41,6 +42,7 @@ private readonly RecursiveObserver calculationInputObserver; private readonly RecursiveObserver calculationOutputObserver; private readonly RecursiveObserver calculationGroupObserver; + private IAssessmentSection assessmentSection; /// /// Creates a new instance of . @@ -99,7 +101,9 @@ { return null; } - return new PipingFailureMechanismSectionResultRow(sectionResult, FailureMechanism.Calculations.OfType()); + + return new PipingFailureMechanismSectionResultRow(sectionResult, FailureMechanism.Calculations.Cast(), + (PipingFailureMechanism) FailureMechanism, assessmentSection); } protected override void AddDataGridColumns() Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismSectionResultRow.cs =================================================================== diff -u -rad12f4e2c4a765cc6c20e9f17ac051a99644ec44 -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismSectionResultRow.cs (.../PipingFailureMechanismSectionResultRow.cs) (revision ad12f4e2c4a765cc6c20e9f17ac051a99644ec44) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismSectionResultRow.cs (.../PipingFailureMechanismSectionResultRow.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -23,6 +23,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Linq; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Forms.TypeConverters; using Ringtoets.Common.Forms.Views; @@ -38,21 +39,42 @@ { private const double tolerance = 1e-6; private readonly IEnumerable calculations; + private readonly PipingFailureMechanism failureMechanism; + private readonly IAssessmentSection assessmentSection; /// /// Creates a new instance of . /// /// The that is /// the source of this row. - /// + /// All calculations in the failure mechanism. + /// The failure mechanism the section result belongs to. + /// The assessment section the section result belongs to. /// Throw when any parameter is null. - public PipingFailureMechanismSectionResultRow(PipingFailureMechanismSectionResult sectionResult, IEnumerable calculations) : base(sectionResult) + public PipingFailureMechanismSectionResultRow(PipingFailureMechanismSectionResult sectionResult, + IEnumerable calculations, + PipingFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) + : base(sectionResult) { if (calculations == null) { throw new ArgumentNullException(nameof(calculations)); } + + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + this.calculations = calculations; + this.failureMechanism = failureMechanism; + this.assessmentSection = assessmentSection; } /// @@ -94,7 +116,7 @@ return double.NaN; } - return SectionResult.GetAssessmentLayerTwoA(relevantScenarios); + return SectionResult.GetAssessmentLayerTwoA(relevantScenarios, failureMechanism, assessmentSection); } } Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationScenarioTest.cs =================================================================== diff -u -r83088f804cc54ce3ff6e0af073824a157e1bfa42 -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationScenarioTest.cs (.../PipingCalculationScenarioTest.cs) (revision 83088f804cc54ce3ff6e0af073824a157e1bfa42) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationScenarioTest.cs (.../PipingCalculationScenarioTest.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -82,41 +82,6 @@ } [Test] - public void Probability_PipingOutputSet_ReturnsPipingOutputProbability() - { - // Setup - const double expectedProbability = 1.0 / 49862180; - - var scenario = new PipingCalculationScenario(new GeneralPipingInput()) - { - Output = new TestPipingOutput(), - SemiProbabilisticOutput = new TestDerivedPipingOutput(expectedProbability) - }; - - // Call - double probability = scenario.Probability; - - // Assert - Assert.AreEqual(expectedProbability, probability); - } - - [Test] - public void Probability_ScenarioStatusNotDone_ThrowsInvalidOperationException() - { - // Setup - var scenario = new PipingCalculationScenario(new GeneralPipingInput()); - - // Call - TestDelegate call = () => - { - double probability = scenario.Probability; - }; - - // Assert - Assert.Throws(call); - } - - [Test] public void CalculationScenarioStatus_OutputNull_ReturnsStatusNotCalculated() { // Setup @@ -136,7 +101,7 @@ var scenario = new PipingCalculationScenario(new GeneralPipingInput()) { Output = new TestPipingOutput(), - SemiProbabilisticOutput = null +// SemiProbabilisticOutput = null }; // Call @@ -153,7 +118,7 @@ var scenario = new PipingCalculationScenario(new GeneralPipingInput()) { Output = new TestPipingOutput(), - SemiProbabilisticOutput = new TestDerivedPipingOutput(double.NaN) +// SemiProbabilisticOutput = new TestDerivedPipingOutput(double.NaN) }; // Call @@ -172,7 +137,7 @@ var scenario = new PipingCalculationScenario(new GeneralPipingInput()) { Output = new TestPipingOutput(), - SemiProbabilisticOutput = new TestDerivedPipingOutput(expectedProbability) +// SemiProbabilisticOutput = new TestDerivedPipingOutput(expectedProbability) }; // Call Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismSection2aAssessmentResultExtensionsTest.cs =================================================================== diff -u -r00da0d2f72214f140bceff0eaae5f14172c587de -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismSection2aAssessmentResultExtensionsTest.cs (.../PipingFailureMechanismSection2aAssessmentResultExtensionsTest.cs) (revision 00da0d2f72214f140bceff0eaae5f14172c587de) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismSection2aAssessmentResultExtensionsTest.cs (.../PipingFailureMechanismSection2aAssessmentResultExtensionsTest.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -22,6 +22,8 @@ using System.Linq; using Core.Common.Base.Data; using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.TestUtil; @@ -36,6 +38,12 @@ public void GetAssessmentLayerTwoA_MultipleScenarios_ReturnsValueBasedOnRelevantAndDoneScenarios() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); @@ -44,10 +52,10 @@ const double probability1 = 1.0 / 1000000.0; const double probability2 = 1.0 / 2000000.0; - PipingCalculationScenario pipingCalculationScenario1 = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(probability1, section); - PipingCalculationScenario pipingCalculationScenario2 = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(probability2, section); - PipingCalculationScenario pipingCalculationScenario3 = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(0.0, section); - PipingCalculationScenario pipingCalculationScenario4 = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); + PipingCalculationScenario pipingCalculationScenario1 = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(section); + PipingCalculationScenario pipingCalculationScenario2 = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(section); + PipingCalculationScenario pipingCalculationScenario3 = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(section); + PipingCalculationScenario pipingCalculationScenario4 = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); pipingCalculationScenario1.IsRelevant = true; pipingCalculationScenario1.Contribution = (RoundedDouble) contribution1; @@ -68,51 +76,48 @@ }; // Call - double assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(calculations); + double assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(calculations, failureMechanism, assessmentSection); // Assert const double expectedProbability = probability1 * contribution1 + probability2 * contribution2; Assert.AreEqual(expectedProbability, assessmentLayerTwoA, 1e-8); + mocks.VerifyAll(); } [Test] - public void GetAssessmentLayerTwoA_ScenarioInvalidOutput_ReturnsZero() + public void GetAssessmentLayerTwoA_NoScenarios_ReturnsZero() { // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); - PipingCalculationScenario pipingCalculationScenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); - pipingCalculationScenario.Contribution = (RoundedDouble) 1.0; + var failureMechanism = new PipingFailureMechanism(); - // Call - double assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(new[] - { - pipingCalculationScenario - }); - - // Assert - Assert.IsNaN(assessmentLayerTwoA); - } - - [Test] - public void GetAssessmentLayerTwoA_NoScenarios_ReturnsZero() - { - // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); // Call - double assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(Enumerable.Empty()); + double assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(Enumerable.Empty(), + failureMechanism, + assessmentSection); // Assert Assert.IsNaN(assessmentLayerTwoA); + mocks.VerifyAll(); } [Test] public void GetAssessmentLayerTwoA_NoRelevantScenarios_ReturnsZero() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); @@ -126,16 +131,25 @@ }; // Call - double assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(calculationScenarios); + double assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(calculationScenarios, + failureMechanism, + assessmentSection); // Assert Assert.IsNaN(assessmentLayerTwoA); + mocks.VerifyAll(); } [Test] public void GetAssessmentLayerTwoA_ScenarioNotCalculated_ReturnsZero() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); @@ -145,10 +159,11 @@ double assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(new[] { pipingCalculationScenario - }); + }, failureMechanism, assessmentSection); // Assert Assert.IsNaN(assessmentLayerTwoA); + mocks.VerifyAll(); } [Test] @@ -158,10 +173,10 @@ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - PipingCalculationScenario pipingCalculationScenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); + PipingCalculationScenario pipingCalculationScenario = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); pipingCalculationScenario.Contribution = (RoundedDouble) 0.3; - PipingCalculationScenario pipingCalculationScenario2 = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); + PipingCalculationScenario pipingCalculationScenario2 = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); pipingCalculationScenario2.Contribution = (RoundedDouble) 0.5; PipingCalculationScenario pipingCalculationScenario3 = PipingCalculationScenarioFactory.CreateIrrelevantPipingCalculationScenario(section); @@ -200,59 +215,13 @@ } [Test] - public void GetCalculationScenarioStatus_ScenarioInvalidOutput_ReturnsStatusFailed() - { - // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - - PipingCalculationScenario pipingCalculationScenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); - pipingCalculationScenario.Contribution = (RoundedDouble) 1.0; - - // Call - CalculationScenarioStatus status = failureMechanismSectionResult.GetCalculationScenarioStatus(new[] - { - pipingCalculationScenario - }); - - // Assert - Assert.AreEqual(CalculationScenarioStatus.Failed, status); - } - - [Test] - public void GetCalculationScenarioStatus_ScenarioInvalidOutputAndNotCalculated_ReturnsStatusFailed() - { - // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - - PipingCalculationScenario pipingCalculationScenario = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); - pipingCalculationScenario.IsRelevant = true; - - PipingCalculationScenario pipingCalculationScenario2 = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); - pipingCalculationScenario2.Contribution = (RoundedDouble) 1.0; - - var calculationScenarios = new[] - { - pipingCalculationScenario, - pipingCalculationScenario2 - }; - - // Call - CalculationScenarioStatus status = failureMechanismSectionResult.GetCalculationScenarioStatus(calculationScenarios); - - // Assert - Assert.AreEqual(CalculationScenarioStatus.Failed, status); - } - - [Test] public void GetCalculationScenarioStatus_ScenariosCalculated_ReturnsStatusDone() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - PipingCalculationScenario pipingCalculationScenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(0.1, section); + PipingCalculationScenario pipingCalculationScenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(section); pipingCalculationScenario.Contribution = (RoundedDouble) 1.0; // Call Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismSectionResultTest.cs =================================================================== diff -u -rf4049b9b0967513aeadfddb1fe58efa3b3aa1677 -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismSectionResultTest.cs (.../PipingFailureMechanismSectionResultTest.cs) (revision f4049b9b0967513aeadfddb1fe58efa3b3aa1677) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismSectionResultTest.cs (.../PipingFailureMechanismSectionResultTest.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -22,6 +22,8 @@ using System; using Core.Common.TestUtil; using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.TestUtil; @@ -34,6 +36,11 @@ public void Constructor_WithParameters_ExpectedValues() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); // Call @@ -43,7 +50,8 @@ Assert.IsInstanceOf(sectionResult); Assert.AreSame(section, sectionResult.Section); Assert.IsNaN(sectionResult.AssessmentLayerThree); - Assert.IsNaN(sectionResult.GetAssessmentLayerTwoA(new PipingCalculationScenario[0])); + Assert.IsNaN(sectionResult.GetAssessmentLayerTwoA(new PipingCalculationScenario[0], failureMechanism, assessmentSection)); + mocks.VerifyAll(); } [Test] Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil.Test/PipingCalculationScenarioFactoryTest.cs =================================================================== diff -u -rf4049b9b0967513aeadfddb1fe58efa3b3aa1677 -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil.Test/PipingCalculationScenarioFactoryTest.cs (.../PipingCalculationScenarioFactoryTest.cs) (revision f4049b9b0967513aeadfddb1fe58efa3b3aa1677) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil.Test/PipingCalculationScenarioFactoryTest.cs (.../PipingCalculationScenarioFactoryTest.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -31,64 +31,6 @@ public class PipingCalculationScenarioFactoryTest { [Test] - public void CreatePipingCalculationScenario_WithNoSection_ThrowsArgumentNullException() - { - // Call - TestDelegate test = () => PipingCalculationScenarioFactory.CreatePipingCalculationScenario(double.NaN, null); - - // Assert - string paramName = Assert.Throws(test).ParamName; - Assert.AreEqual("section", paramName); - } - - [Test] - [TestCase(double.NaN)] - [TestCase(0.0)] - [TestCase(0.8)] - [TestCase(1.0)] - public void CreatePipingCalculationScenario_WithSection_CreatesRelevantCalculationWithOutputSet(double probability) - { - // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - - // Call - PipingCalculationScenario scenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(probability, section); - - // Assert - Assert.NotNull(scenario.Output); - Assert.NotNull(scenario.SemiProbabilisticOutput); - Assert.AreEqual(probability, scenario.SemiProbabilisticOutput.PipingProbability, 1e-6); - Assert.IsTrue(scenario.IsRelevant); - } - - [Test] - public void CreateFailedPipingCalculationScenario_WithNoSection_ThrowsArgumentNullException() - { - // Call - TestDelegate test = () => PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(null); - - // Assert - string paramName = Assert.Throws(test).ParamName; - Assert.AreEqual("section", paramName); - } - - [Test] - public void CreateFailedPipingCalculationScenario_WithSection_CreatesRelevantCalculationWithOutputSetToNaN() - { - // Setup - FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - - // Call - PipingCalculationScenario scenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); - - // Assert - Assert.NotNull(scenario.Output); - Assert.NotNull(scenario.SemiProbabilisticOutput); - Assert.IsNaN(scenario.SemiProbabilisticOutput.PipingProbability); - Assert.IsTrue(scenario.IsRelevant); - } - - [Test] public void CreateIrrelevantPipingCalculationScenario_WithNoSection_ThrowsArgumentNullException() { // Call @@ -134,7 +76,6 @@ // Assert Assert.IsNull(scenario.Output); - Assert.IsNull(scenario.SemiProbabilisticOutput); Assert.IsTrue(scenario.IsRelevant); } Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationScenarioFactory.cs =================================================================== diff -u -r642a4946d235601302d544697856fed3b5c7a2bd -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationScenarioFactory.cs (.../PipingCalculationScenarioFactory.cs) (revision 642a4946d235601302d544697856fed3b5c7a2bd) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationScenarioFactory.cs (.../PipingCalculationScenarioFactory.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -41,47 +41,18 @@ /// /// Creates a calculated scenario for which the surface line on the input intersects with . /// - /// The value for . /// The section for which an intersection will be created. /// A new . - public static PipingCalculationScenario CreatePipingCalculationScenario(double probability, FailureMechanismSection section) + public static PipingCalculationScenario CreatePipingCalculationScenario(FailureMechanismSection section) { PipingCalculationScenario scenario = CreateNotCalculatedPipingCalculationScenario(section); - var random = new Random(21); - scenario.SemiProbabilisticOutput = new DerivedPipingOutput( - random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - (RoundedDouble) probability, - random.NextDouble(), - random.NextDouble()); - scenario.Output = new TestPipingOutput(); return scenario; } /// /// Creates a scenario for which the surface line on the input intersects with and - /// the calculation has failed. - /// - /// The section for which an intersection will be created. - /// A new . - public static PipingCalculationScenario CreateFailedPipingCalculationScenario(FailureMechanismSection section) - { - return CreatePipingCalculationScenario(RoundedDouble.NaN, section); - } - - /// - /// Creates a scenario for which the surface line on the input intersects with and /// is marked as not relevant for the assessment. /// /// The section for which an intersection will be created. Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismResultViewTest.cs =================================================================== diff -u -rdb77ae03f93f27b25268dd9f62f0091a47fe22d8 -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismResultViewTest.cs (.../PipingFailureMechanismResultViewTest.cs) (revision db77ae03f93f27b25268dd9f62f0091a47fe22d8) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismResultViewTest.cs (.../PipingFailureMechanismResultViewTest.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -299,7 +299,6 @@ using (PipingFailureMechanismResultView view = ShowFullyConfiguredFailureMechanismResultsView(pipingFailureMechanism)) { PipingCalculationScenario calculationScenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario( - 1.0 / 1000.0, pipingFailureMechanism.Sections.First()); calculationScenario.Contribution = (RoundedDouble) 0.3; pipingFailureMechanism.CalculationsGroup.Children.Add(calculationScenario); @@ -334,7 +333,6 @@ using (PipingFailureMechanismResultView view = ShowFullyConfiguredFailureMechanismResultsView(pipingFailureMechanism)) { PipingCalculationScenario calculationScenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario( - (RoundedDouble) 1e-3, pipingFailureMechanism.Sections.First()); pipingFailureMechanism.CalculationsGroup.Children.Add(calculationScenario); view.Data = pipingFailureMechanism.SectionResults; @@ -350,7 +348,7 @@ // Assert Assert.IsEmpty(dataGridViewCell.ErrorText); - Assert.AreEqual($"1/{1 / calculationScenario.Probability:N0}", + Assert.AreEqual($"1/{1 / 1:N0}", formattedValue); } } @@ -386,38 +384,38 @@ } } - [Test] - [TestCase(AssessmentLayerOneState.NotAssessed)] - [TestCase(AssessmentLayerOneState.NoVerdict)] - public void FailureMechanismResultView_AssessmentLayerTwoANaN_ShowsErrorTooltip(AssessmentLayerOneState assessmentLayerOneState) - { - // Setup - const int rowIndex = 0; +// [Test] +// [TestCase(AssessmentLayerOneState.NotAssessed)] +// [TestCase(AssessmentLayerOneState.NoVerdict)] +// public void FailureMechanismResultView_AssessmentLayerTwoANaN_ShowsErrorTooltip(AssessmentLayerOneState assessmentLayerOneState) +// { +// // Setup +// const int rowIndex = 0; +// +// var pipingFailureMechanism = new PipingFailureMechanism(); +// using (PipingFailureMechanismResultView view = ShowFullyConfiguredFailureMechanismResultsView(pipingFailureMechanism)) +// { +// PipingCalculationScenario calculationScenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario( +// pipingFailureMechanism.Sections.First()); +// pipingFailureMechanism.CalculationsGroup.Children.Add(calculationScenario); +// view.Data = pipingFailureMechanism.SectionResults; +// +// var gridTester = new ControlTester("dataGridView"); +// var dataGridView = (DataGridView) gridTester.TheObject; +// +// DataGridViewCell dataGridViewCell = dataGridView.Rows[rowIndex].Cells[assessmentLayerTwoAIndex]; +// dataGridView.Rows[rowIndex].Cells[assessmentLayerOneIndex].Value = assessmentLayerOneState; +// +// // Call +// object formattedValue = dataGridViewCell.FormattedValue; // Need to do this to fire the CellFormatting event. +// +// // Assert +// Assert.AreEqual("Alle berekeningen voor dit vak moeten een geldige uitkomst hebben.", +// dataGridViewCell.ErrorText); +// Assert.AreEqual("-", formattedValue); +// } +// } - var pipingFailureMechanism = new PipingFailureMechanism(); - using (PipingFailureMechanismResultView view = ShowFullyConfiguredFailureMechanismResultsView(pipingFailureMechanism)) - { - PipingCalculationScenario calculationScenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario( - pipingFailureMechanism.Sections.First()); - pipingFailureMechanism.CalculationsGroup.Children.Add(calculationScenario); - view.Data = pipingFailureMechanism.SectionResults; - - var gridTester = new ControlTester("dataGridView"); - var dataGridView = (DataGridView) gridTester.TheObject; - - DataGridViewCell dataGridViewCell = dataGridView.Rows[rowIndex].Cells[assessmentLayerTwoAIndex]; - dataGridView.Rows[rowIndex].Cells[assessmentLayerOneIndex].Value = assessmentLayerOneState; - - // Call - object formattedValue = dataGridViewCell.FormattedValue; // Need to do this to fire the CellFormatting event. - - // Assert - Assert.AreEqual("Alle berekeningen voor dit vak moeten een geldige uitkomst hebben.", - dataGridViewCell.ErrorText); - Assert.AreEqual("-", formattedValue); - } - } - [Test] [TestCase(AssessmentLayerOneState.NotAssessed)] [TestCase(AssessmentLayerOneState.NoVerdict)] @@ -476,34 +474,34 @@ } } - [Test] - public void FailureMechanismResultView_AssessmentLayerOneStateSufficientAndAssessmentLayerTwoAHasError_DoesNotShowError() - { - // Setup - const int rowIndex = 0; +// [Test] +// public void FailureMechanismResultView_AssessmentLayerOneStateSufficientAndAssessmentLayerTwoAHasError_DoesNotShowError() +// { +// // Setup +// const int rowIndex = 0; +// +// var pipingFailureMechanism = new PipingFailureMechanism(); +// using (ShowFullyConfiguredFailureMechanismResultsView(pipingFailureMechanism)) +// { +// PipingCalculationScenario calculationScenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario( +// pipingFailureMechanism.Sections.First()); +// pipingFailureMechanism.CalculationsGroup.Children.Add(calculationScenario); +// +// var gridTester = new ControlTester("dataGridView"); +// var dataGridView = (DataGridView) gridTester.TheObject; +// +// DataGridViewCell dataGridViewCell = dataGridView.Rows[rowIndex].Cells[assessmentLayerTwoAIndex]; +// +// // Call +// dataGridView.Rows[rowIndex].Cells[assessmentLayerOneIndex].Value = AssessmentLayerOneState.Sufficient; +// object formattedValue = dataGridViewCell.FormattedValue; // Need to do this to fire the CellFormatting event. +// +// // Assert +// Assert.IsEmpty(dataGridViewCell.ErrorText); +// Assert.AreEqual("-", formattedValue); +// } +// } - var pipingFailureMechanism = new PipingFailureMechanism(); - using (ShowFullyConfiguredFailureMechanismResultsView(pipingFailureMechanism)) - { - PipingCalculationScenario calculationScenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario( - pipingFailureMechanism.Sections.First()); - pipingFailureMechanism.CalculationsGroup.Children.Add(calculationScenario); - - var gridTester = new ControlTester("dataGridView"); - var dataGridView = (DataGridView) gridTester.TheObject; - - DataGridViewCell dataGridViewCell = dataGridView.Rows[rowIndex].Cells[assessmentLayerTwoAIndex]; - - // Call - dataGridView.Rows[rowIndex].Cells[assessmentLayerOneIndex].Value = AssessmentLayerOneState.Sufficient; - object formattedValue = dataGridViewCell.FormattedValue; // Need to do this to fire the CellFormatting event. - - // Assert - Assert.IsEmpty(dataGridViewCell.ErrorText); - Assert.AreEqual("-", formattedValue); - } - } - private PipingFailureMechanismResultView ShowFullyConfiguredFailureMechanismResultsView(PipingFailureMechanism failureMechanism) { failureMechanism.AddSection(new FailureMechanismSection("Section 1", new List Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs =================================================================== diff -u -rf4049b9b0967513aeadfddb1fe58efa3b3aa1677 -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs (.../PipingFailureMechanismSectionResultRowTest.cs) (revision f4049b9b0967513aeadfddb1fe58efa3b3aa1677) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs (.../PipingFailureMechanismSectionResultRowTest.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -24,7 +24,8 @@ using Core.Common.Base.Data; using Core.Common.TestUtil; using NUnit.Framework; -using Ringtoets.Common.Data.Calculation; +using Rhino.Mocks; +using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.Forms.TypeConverters; @@ -42,50 +43,112 @@ public void Constructor_WithParameters_ExpectedValues() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new PipingFailureMechanismSectionResult(section); // Call - var row = new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty()); + var row = new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty(), + failureMechanism, assessmentSection); // Assert Assert.IsInstanceOf>(row); - Assert.AreEqual(result.GetAssessmentLayerTwoA(Enumerable.Empty()), row.AssessmentLayerTwoA); + Assert.AreEqual(result.GetAssessmentLayerTwoA(Enumerable.Empty(), + failureMechanism, assessmentSection), + row.AssessmentLayerTwoA); Assert.AreEqual(row.AssessmentLayerThree, result.AssessmentLayerThree); TestHelper.AssertTypeConverter( nameof(PipingFailureMechanismSectionResultRow.AssessmentLayerTwoA)); TestHelper.AssertTypeConverter( nameof(PipingFailureMechanismSectionResultRow.AssessmentLayerThree)); + mocks.VerifyAll(); } [Test] public void Constructor_CalculationsNull_ThrowsArgumentNullException() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new PipingFailureMechanismSectionResult(section); // Call - TestDelegate test = () => new PipingFailureMechanismSectionResultRow(result, null); + TestDelegate test = () => new PipingFailureMechanismSectionResultRow(result, null, failureMechanism, assessmentSection); // Assert string paramName = Assert.Throws(test).ParamName; Assert.AreEqual("calculations", paramName); + mocks.VerifyAll(); } [Test] + public void Constructor_FailureMechanismNull_ThrowsArgumentNullException() + { + // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new PipingFailureMechanismSectionResult(section); + + // Call + TestDelegate call = () => new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty(), + null, assessmentSection); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("failureMechanism", exception.ParamName); + mocks.VerifyAll(); + } + + [Test] + public void Constructor_AssessmentSectionNull_ThrowsArgumentNullException() + { + // Setup + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new PipingFailureMechanismSectionResult(section); + + // Call + TestDelegate call = () => new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty(), + new PipingFailureMechanism(), null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("assessmentSection", exception.ParamName); + } + + [Test] public void AssessmentLayerTwoA_NoScenarios_ReturnNaN() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var result = new PipingFailureMechanismSectionResult(section); // Call - var row = new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty()); + var row = new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty(), + failureMechanism, assessmentSection); // Assert Assert.IsNaN(row.AssessmentLayerTwoA); + mocks.VerifyAll(); } [Test] @@ -97,6 +160,12 @@ public void AssessmentLayerTwoA_RelevantScenarioContributionDontAddUpTo1_ReturnNaN(double contributionA, double contributionB) { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); PipingCalculationScenario scenarioA = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); @@ -109,53 +178,63 @@ { scenarioA, scenarioB - }); + }, failureMechanism, assessmentSection); // Call double assessmentLayerTwoA = row.AssessmentLayerTwoA; // Assert Assert.IsNaN(assessmentLayerTwoA); + mocks.VerifyAll(); } [Test] - [TestCase(CalculationScenarioStatus.NotCalculated)] - [TestCase(CalculationScenarioStatus.Failed)] - public void AssessmentLayerTwoA_NoRelevantScenariosDone_ReturnNaN(CalculationScenarioStatus status) + public void AssessmentLayerTwoA_NoRelevantScenariosDone_ReturnNaN() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - PipingCalculationScenario scenario = status.Equals(CalculationScenarioStatus.NotCalculated) - ? PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section) - : PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); + PipingCalculationScenario scenario = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); var result = new PipingFailureMechanismSectionResult(section); var row = new PipingFailureMechanismSectionResultRow(result, new[] { scenario - }); + }, failureMechanism, assessmentSection); // Call double assessmentLayerTwoA = row.AssessmentLayerTwoA; // Assert Assert.IsNaN(assessmentLayerTwoA); + mocks.VerifyAll(); } [Test] public void AssessmentLayerTwoA_RelevantScenariosDone_ResultOfSection() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - PipingCalculationScenario scenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(0.2, section); + PipingCalculationScenario scenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(section); scenario.Contribution = (RoundedDouble) 1.0; var result = new PipingFailureMechanismSectionResult(section); var row = new PipingFailureMechanismSectionResultRow(result, new[] { scenario - }); + }, failureMechanism, assessmentSection); // Call double assessmentLayerTwoA = row.AssessmentLayerTwoA; @@ -164,27 +243,35 @@ double expected = result.GetAssessmentLayerTwoA(new[] { scenario - }); + }, failureMechanism, assessmentSection); Assert.AreEqual(expected, assessmentLayerTwoA, 1e-6); + mocks.VerifyAll(); } [Test] public void AssessmentLayerThree_ValueSet_ReturnExpectedValue() { // Setup + var mocks = new MockRepository(); + var assessmentSection = mocks.Stub(); + mocks.ReplayAll(); + + var failureMechanism = new PipingFailureMechanism(); + var random = new Random(21); double assessmentLayerThree = random.NextDouble(); var sectionResult = new PipingFailureMechanismSectionResult( FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); - var row = new PipingFailureMechanismSectionResultRow(sectionResult, - Enumerable.Empty()); + var row = new PipingFailureMechanismSectionResultRow(sectionResult, Enumerable.Empty(), + failureMechanism, assessmentSection); // Call row.AssessmentLayerThree = assessmentLayerThree; // Assert Assert.AreEqual(assessmentLayerThree, sectionResult.AssessmentLayerThree); + mocks.VerifyAll(); } } } \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Integration.Test/PipingFailureMechanismResultViewIntegrationTest.cs =================================================================== diff -u -r5d822eca2d7467c9781a4a3a54d796ac4229e4a3 -red08434acc8f5619842f1c6cb0b7f9a56cf8dad0 --- Ringtoets/Piping/test/Ringtoets.Piping.Integration.Test/PipingFailureMechanismResultViewIntegrationTest.cs (.../PipingFailureMechanismResultViewIntegrationTest.cs) (revision 5d822eca2d7467c9781a4a3a54d796ac4229e4a3) +++ Ringtoets/Piping/test/Ringtoets.Piping.Integration.Test/PipingFailureMechanismResultViewIntegrationTest.cs (.../PipingFailureMechanismResultViewIntegrationTest.cs) (revision ed08434acc8f5619842f1c6cb0b7f9a56cf8dad0) @@ -119,19 +119,17 @@ dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].ErrorText); // Execute the first calculation and ensure the data grid view is updated - const double probability = 1.0 / 31846382.0; pipingCalculation1.Output = new TestPipingOutput(); - pipingCalculation1.SemiProbabilisticOutput = new TestPipingSemiProbabilisticOutput(probability); pipingCalculation1.NotifyObservers(); - Assert.AreEqual($"1/{1.0 / pipingCalculation1.Probability:N0}", + Assert.AreEqual($"1/{1.0 / 31846382.0:N0}", dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].FormattedValue); Assert.IsEmpty(dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].ErrorText); // Add another, nested calculation without surface line and ensure the data grid view is updated when the surface line is set var pipingCalculation3 = new PipingCalculationScenario(new GeneralPipingInput()); nestedPipingCalculationGroup.Children.Add(pipingCalculation3); nestedPipingCalculationGroup.NotifyObservers(); - Assert.AreEqual($"1/{1.0 / pipingCalculation1.Probability:N0}", + Assert.AreEqual($"1/{1.0 / 31846382.0:N0}", dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].FormattedValue); Assert.IsEmpty(dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].ErrorText); @@ -165,7 +163,7 @@ // Set contribution again so we have a probability. pipingCalculation1.Contribution = (RoundedDouble) 1.0; pipingCalculation1.NotifyObservers(); - Assert.AreEqual($"1/{1.0 / pipingCalculation1.Probability:N0}", + Assert.AreEqual($"1/{1.0 / 31846382.0:N0}", dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].FormattedValue); Assert.IsEmpty(dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].ErrorText);