Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismSectionResultRowTest.cs =================================================================== diff -u -r601fe81e44789cd94aca8638e6ba219d4bd74ef0 -rb2760d5e952dd44ad0f02f8d95f3f0b2f01ada4e --- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismSectionResultRowTest.cs (.../MacroStabilityInwardsFailureMechanismSectionResultRowTest.cs) (revision 601fe81e44789cd94aca8638e6ba219d4bd74ef0) +++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismSectionResultRowTest.cs (.../MacroStabilityInwardsFailureMechanismSectionResultRowTest.cs) (revision b2760d5e952dd44ad0f02f8d95f3f0b2f01ada4e) @@ -118,6 +118,77 @@ } } + [Test] + [TestCase(InitialFailureMechanismResultType.Manual)] + [TestCase(InitialFailureMechanismResultType.NoFailureProbability)] + public void GivenRowWithInitialFailureMechanismResultAdopt_WhenValueChanged_ThenInitialProbabilitiesChanged(InitialFailureMechanismResultType newValue) + { + // Given + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new MacroStabilityInwardsFailureMechanismSectionResult(section); + + MacroStabilityInwardsCalculationScenario[] calculationScenarios = + { + MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenario(section) + }; + var failureMechanism = new MacroStabilityInwardsFailureMechanism(); + + double profileProbability = result.GetInitialFailureMechanismResultProbability( + calculationScenarios, failureMechanism.GeneralInput.ModelFactor); + double sectionProbability = profileProbability * failureMechanism.MacroStabilityInwardsProbabilityAssessmentInput.GetN(section.Length); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var row = new MacroStabilityInwardsFailureMechanismSectionResultRow(result, calculationScenarios, failureMechanism); + + // Precondition + Assert.AreEqual(profileProbability, row.InitialFailureMechanismResultProfileProbability); + Assert.AreEqual(sectionProbability, row.InitialFailureMechanismResultSectionProbability); + + // When + row.InitialFailureMechanismResult = newValue; + + // Then + Assert.AreEqual(result.ManualInitialFailureMechanismResultProfileProbability, row.InitialFailureMechanismResultProfileProbability); + Assert.AreEqual(result.ManualInitialFailureMechanismResultSectionProbability, row.InitialFailureMechanismResultSectionProbability); + } + } + + [Test] + [TestCase(ProbabilityRefinementType.Profile, double.NaN, "")] + [TestCase(ProbabilityRefinementType.Section, "", double.NaN)] + public void GivenRowWithProbabilityRefinementType_WhenValueChanged_ThenInitialProbabilitiesChanged(ProbabilityRefinementType newValue, object newProfileValue, object newSectionValue) + { + // Given + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var result = new MacroStabilityInwardsFailureMechanismSectionResult(section) + { + ProbabilityRefinementType = ProbabilityRefinementType.Both + }; + + MacroStabilityInwardsCalculationScenario[] calculationScenarios = + { + MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenario(section) + }; + var failureMechanism = new MacroStabilityInwardsFailureMechanism(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var row = new MacroStabilityInwardsFailureMechanismSectionResultRow(result, calculationScenarios, failureMechanism); + + // Precondition + Assert.AreEqual(result.RefinedProfileProbability, row.RefinedProfileProbability); + Assert.AreEqual(result.RefinedSectionProbability, row.RefinedSectionProbability); + + // When + row.ProbabilityRefinementType = newValue; + + // Then + Assert.AreEqual(newProfileValue, row.RefinedProfileProbability); + Assert.AreEqual(newSectionValue, row.RefinedSectionProbability); + } + } + #region Registration [Test]