Index: Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsScenarioRow.cs =================================================================== diff -u -r6a29395620a9ccb1c1e96767f8a137848ae8900a -rb2effabadc11d9de1195ecde3103cb33becbb1c2 --- Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsScenarioRow.cs (.../MacroStabilityInwardsScenarioRow.cs) (revision 6a29395620a9ccb1c1e96767f8a137848ae8900a) +++ Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsScenarioRow.cs (.../MacroStabilityInwardsScenarioRow.cs) (revision b2effabadc11d9de1195ecde3103cb33becbb1c2) @@ -21,7 +21,6 @@ using System; using System.ComponentModel; -using Riskeer.Common.Data.FailureMechanism; using Riskeer.Common.Data.Probability; using Riskeer.Common.Forms.TypeConverters; using Riskeer.Common.Forms.Views; @@ -35,33 +34,33 @@ public class MacroStabilityInwardsScenarioRow : ScenarioRow { private readonly MacroStabilityInwardsFailureMechanism failureMechanism; - private readonly FailureMechanismSection failureMechanismSection; + private readonly MacroStabilityInwardsScenarioConfigurationPerFailureMechanismSection sectionConfiguration; private DerivedMacroStabilityInwardsOutput derivedOutput; /// /// Creates a new instance of . /// /// The this row contains. /// The failure mechanism that the calculation belongs to. - /// The failure mechanism section that the calculation belongs to. + /// The configuration for the failure mechanism section that the calculation belongs to. /// Thrown when any parameter is null. internal MacroStabilityInwardsScenarioRow(MacroStabilityInwardsCalculationScenario calculationScenario, MacroStabilityInwardsFailureMechanism failureMechanism, - FailureMechanismSection failureMechanismSection) + MacroStabilityInwardsScenarioConfigurationPerFailureMechanismSection sectionConfiguration) : base(calculationScenario) { if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); } - if (failureMechanismSection == null) + if (sectionConfiguration == null) { - throw new ArgumentNullException(nameof(failureMechanismSection)); + throw new ArgumentNullException(nameof(sectionConfiguration)); } this.failureMechanism = failureMechanism; - this.failureMechanismSection = failureMechanismSection; + this.sectionConfiguration = sectionConfiguration; CreateDerivedOutput(); } @@ -78,8 +77,8 @@ { if (derivedOutput != null) { - return Math.Min(1.0, derivedOutput.MacroStabilityInwardsProbability * failureMechanism.ProbabilityAssessmentInput.GetN( - failureMechanismSection.Length)); + return Math.Min(1.0, derivedOutput.MacroStabilityInwardsProbability * sectionConfiguration.GetN( + failureMechanism.ProbabilityAssessmentInput.B)); } return double.NaN; Index: Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsScenariosView.cs =================================================================== diff -u -r59482025a9b7fc432eaf09f808006f543dec5840 -rb2effabadc11d9de1195ecde3103cb33becbb1c2 --- Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsScenariosView.cs (.../MacroStabilityInwardsScenariosView.cs) (revision 59482025a9b7fc432eaf09f808006f543dec5840) +++ Riskeer/MacroStabilityInwards/src/Riskeer.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsScenariosView.cs (.../MacroStabilityInwardsScenariosView.cs) (revision b2effabadc11d9de1195ecde3103cb33becbb1c2) @@ -60,7 +60,9 @@ .OfType() .Where(pc => pc.IsSurfaceLineIntersectionWithReferenceLineInSection(lineSegments)); - return calculations.Select(pc => new MacroStabilityInwardsScenarioRow(pc, FailureMechanism, failureMechanismSection)).ToList(); + MacroStabilityInwardsScenarioConfigurationPerFailureMechanismSection sectionConfiguration = + FailureMechanism.ScenarioConfigurationsPerFailureMechanismSection.Single(c => ReferenceEquals(c.Section, failureMechanismSection)); + return calculations.Select(pc => new MacroStabilityInwardsScenarioRow(pc, FailureMechanism, sectionConfiguration)).ToList(); } protected override void InitializeDataGridView() Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismResultViewTest.cs =================================================================== diff -u -r6a29395620a9ccb1c1e96767f8a137848ae8900a -rb2effabadc11d9de1195ecde3103cb33becbb1c2 --- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismResultViewTest.cs (.../MacroStabilityInwardsFailureMechanismResultViewTest.cs) (revision 6a29395620a9ccb1c1e96767f8a137848ae8900a) +++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsFailureMechanismResultViewTest.cs (.../MacroStabilityInwardsFailureMechanismResultViewTest.cs) (revision b2effabadc11d9de1195ecde3103cb33becbb1c2) @@ -108,6 +108,9 @@ failureMechanism.CalculationsGroup.Children.Add( MacroStabilityInwardsCalculationScenarioTestFactory.CreateMacroStabilityInwardsCalculationScenario(1.1, section)); + MacroStabilityInwardsScenarioConfigurationPerFailureMechanismSection scenarioConfiguration = + failureMechanism.ScenarioConfigurationsPerFailureMechanismSection.Single(); + // Call using (new AssemblyToolCalculatorFactoryConfig()) using (ShowFailureMechanismResultsView(failureMechanism)) @@ -126,7 +129,7 @@ Assert.AreEqual("Section 1", cells[nameColumnIndex].FormattedValue); Assert.AreEqual(true, cells[isRelevantIndex].Value); Assert.AreEqual(AdoptableInitialFailureMechanismResultType.Adopt, cells[initialFailureMechanismResultTypeIndex].Value); - Assert.AreEqual(probability * failureMechanism.ProbabilityAssessmentInput.GetN(section.Length), + Assert.AreEqual(probability * scenarioConfiguration.GetN(failureMechanism.ProbabilityAssessmentInput.B), cells[initialFailureMechanismResultSectionProbabilityIndex].Value); Assert.AreEqual(FailureMechanismSectionResultFurtherAnalysisType.NotNecessary, cells[furtherAnalysisTypeIndex].Value); Assert.AreEqual("-", cells[refinedSectionProbabilityIndex].FormattedValue); Index: Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsScenarioRowTest.cs =================================================================== diff -u -r6a29395620a9ccb1c1e96767f8a137848ae8900a -rb2effabadc11d9de1195ecde3103cb33becbb1c2 --- Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsScenarioRowTest.cs (.../MacroStabilityInwardsScenarioRowTest.cs) (revision 6a29395620a9ccb1c1e96767f8a137848ae8900a) +++ Riskeer/MacroStabilityInwards/test/Riskeer.MacroStabilityInwards.Forms.Test/Views/MacroStabilityInwardsScenarioRowTest.cs (.../MacroStabilityInwardsScenarioRowTest.cs) (revision b2effabadc11d9de1195ecde3103cb33becbb1c2) @@ -42,18 +42,20 @@ { // Setup var calculation = new MacroStabilityInwardsCalculationScenario(); - FailureMechanismSection failureMechanismSection = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var sectionConfiguration = new MacroStabilityInwardsScenarioConfigurationPerFailureMechanismSection(section); + // Call - void Call() => new MacroStabilityInwardsScenarioRow(calculation, null, failureMechanismSection); + void Call() => new MacroStabilityInwardsScenarioRow(calculation, null, sectionConfiguration); // Assert string paramName = Assert.Throws(Call).ParamName; Assert.AreEqual("failureMechanism", paramName); } [Test] - public void Constructor_FailureMechanismSectionNull_ThrowsArgumentNullException() + public void Constructor_SectionConfigurationNull_ThrowsArgumentNullException() { // Setup var calculation = new MacroStabilityInwardsCalculationScenario(); @@ -64,7 +66,7 @@ // Assert var exception = Assert.Throws(Call); - Assert.AreEqual("failureMechanismSection", exception.ParamName); + Assert.AreEqual("sectionConfiguration", exception.ParamName); } [Test] @@ -73,10 +75,12 @@ // Setup var calculation = new MacroStabilityInwardsCalculationScenario(); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); - FailureMechanismSection failureMechanismSection = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var sectionConfiguration = new MacroStabilityInwardsScenarioConfigurationPerFailureMechanismSection(section); + // Call - var row = new MacroStabilityInwardsScenarioRow(calculation, failureMechanism, failureMechanismSection); + var row = new MacroStabilityInwardsScenarioRow(calculation, failureMechanism, sectionConfiguration); // Assert Assert.IsInstanceOf>(row); @@ -99,20 +103,21 @@ }) }; var failureMechanism = new MacroStabilityInwardsFailureMechanism(); - var failureMechanismSection = new FailureMechanismSection("test", new[] + + var section = new FailureMechanismSection("test", new[] { new Point2D(0, 0), new Point2D(sectionLength, 0) }); + var sectionConfiguration = new MacroStabilityInwardsScenarioConfigurationPerFailureMechanismSection(section); // Call - var row = new MacroStabilityInwardsScenarioRow(calculation, failureMechanism, failureMechanismSection); + var row = new MacroStabilityInwardsScenarioRow(calculation, failureMechanism, sectionConfiguration); // Assert DerivedMacroStabilityInwardsOutput expectedDerivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(calculation.Output, failureMechanism.GeneralInput.ModelFactor); Assert.AreEqual(expectedDerivedOutput.MacroStabilityInwardsProbability, row.FailureProbability); - Assert.AreEqual(Math.Min(1.0, expectedDerivedOutput.MacroStabilityInwardsProbability * failureMechanism.ProbabilityAssessmentInput.GetN( - failureMechanismSection.Length)), + Assert.AreEqual(Math.Min(1.0, expectedDerivedOutput.MacroStabilityInwardsProbability * sectionConfiguration.GetN(failureMechanism.ProbabilityAssessmentInput.B)), row.SectionFailureProbability); } @@ -122,10 +127,12 @@ // Setup var calculation = new MacroStabilityInwardsCalculationScenario(); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); - FailureMechanismSection failureMechanismSection = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var sectionConfiguration = new MacroStabilityInwardsScenarioConfigurationPerFailureMechanismSection(section); + // Call - var row = new MacroStabilityInwardsScenarioRow(calculation, failureMechanism, failureMechanismSection); + var row = new MacroStabilityInwardsScenarioRow(calculation, failureMechanism, sectionConfiguration); // Assert Assert.IsNaN(row.FailureProbability); @@ -138,10 +145,12 @@ // Given var calculation = new MacroStabilityInwardsCalculationScenario(); var failureMechanism = new MacroStabilityInwardsFailureMechanism(); - FailureMechanismSection failureMechanismSection = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var row = new MacroStabilityInwardsScenarioRow(calculation, failureMechanism, failureMechanismSection); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var sectionConfiguration = new MacroStabilityInwardsScenarioConfigurationPerFailureMechanismSection(section); + var row = new MacroStabilityInwardsScenarioRow(calculation, failureMechanism, sectionConfiguration); + // Precondition Assert.IsNaN(row.FailureProbability); Assert.IsNaN(row.SectionFailureProbability); @@ -153,8 +162,7 @@ // Then DerivedMacroStabilityInwardsOutput expectedDerivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(calculation.Output, failureMechanism.GeneralInput.ModelFactor); Assert.AreEqual(expectedDerivedOutput.MacroStabilityInwardsProbability, row.FailureProbability); - Assert.AreEqual(expectedDerivedOutput.MacroStabilityInwardsProbability * failureMechanism.ProbabilityAssessmentInput.GetN( - failureMechanismSection.Length), + Assert.AreEqual(expectedDerivedOutput.MacroStabilityInwardsProbability * sectionConfiguration.GetN(failureMechanism.ProbabilityAssessmentInput.B), row.SectionFailureProbability); } @@ -167,15 +175,16 @@ Output = MacroStabilityInwardsOutputTestFactory.CreateRandomOutput() }; var failureMechanism = new MacroStabilityInwardsFailureMechanism(); - FailureMechanismSection failureMechanismSection = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var row = new MacroStabilityInwardsScenarioRow(calculation, failureMechanism, failureMechanismSection); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var sectionConfiguration = new MacroStabilityInwardsScenarioConfigurationPerFailureMechanismSection(section); + var row = new MacroStabilityInwardsScenarioRow(calculation, failureMechanism, sectionConfiguration); + // Precondition DerivedMacroStabilityInwardsOutput expectedDerivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(calculation.Output, failureMechanism.GeneralInput.ModelFactor); Assert.AreEqual(expectedDerivedOutput.MacroStabilityInwardsProbability, row.FailureProbability); - Assert.AreEqual(expectedDerivedOutput.MacroStabilityInwardsProbability * failureMechanism.ProbabilityAssessmentInput.GetN( - failureMechanismSection.Length), + Assert.AreEqual(expectedDerivedOutput.MacroStabilityInwardsProbability * sectionConfiguration.GetN(failureMechanism.ProbabilityAssessmentInput.B), row.SectionFailureProbability); // When @@ -196,15 +205,16 @@ Output = MacroStabilityInwardsOutputTestFactory.CreateRandomOutput() }; var failureMechanism = new MacroStabilityInwardsFailureMechanism(); - FailureMechanismSection failureMechanismSection = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); - var row = new MacroStabilityInwardsScenarioRow(calculation, failureMechanism, failureMechanismSection); + FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); + var sectionConfiguration = new MacroStabilityInwardsScenarioConfigurationPerFailureMechanismSection(section); + var row = new MacroStabilityInwardsScenarioRow(calculation, failureMechanism, sectionConfiguration); + // Precondition DerivedMacroStabilityInwardsOutput expectedDerivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(calculation.Output, failureMechanism.GeneralInput.ModelFactor); Assert.AreEqual(expectedDerivedOutput.MacroStabilityInwardsProbability, row.FailureProbability); - Assert.AreEqual(expectedDerivedOutput.MacroStabilityInwardsProbability * failureMechanism.ProbabilityAssessmentInput.GetN( - failureMechanismSection.Length), + Assert.AreEqual(expectedDerivedOutput.MacroStabilityInwardsProbability * sectionConfiguration.GetN(failureMechanism.ProbabilityAssessmentInput.B), row.SectionFailureProbability); var random = new Random(11); @@ -219,8 +229,7 @@ // Then DerivedMacroStabilityInwardsOutput newExpectedDerivedOutput = DerivedMacroStabilityInwardsOutputFactory.Create(calculation.Output, failureMechanism.GeneralInput.ModelFactor); Assert.AreEqual(newExpectedDerivedOutput.MacroStabilityInwardsProbability, row.FailureProbability); - Assert.AreEqual(newExpectedDerivedOutput.MacroStabilityInwardsProbability * failureMechanism.ProbabilityAssessmentInput.GetN( - failureMechanismSection.Length), + Assert.AreEqual(newExpectedDerivedOutput.MacroStabilityInwardsProbability * sectionConfiguration.GetN(failureMechanism.ProbabilityAssessmentInput.B), row.SectionFailureProbability); } }