Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PropertyClasses/ClosingStructuresOutputProperties.cs =================================================================== diff -u -r7ec3c942280c558bf69d4b92a3610fcdbf29899c -r9eea721559aaf5e17bffe18a27dc417a56bb1278 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PropertyClasses/ClosingStructuresOutputProperties.cs (.../ClosingStructuresOutputProperties.cs) (revision 7ec3c942280c558bf69d4b92a3610fcdbf29899c) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Forms/PropertyClasses/ClosingStructuresOutputProperties.cs (.../ClosingStructuresOutputProperties.cs) (revision 9eea721559aaf5e17bffe18a27dc417a56bb1278) @@ -22,6 +22,7 @@ using System; using Ringtoets.ClosingStructures.Data; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Probability; using Ringtoets.Common.Data.Structures; using Ringtoets.Common.Forms.PropertyClasses; @@ -32,6 +33,9 @@ /// public class ClosingStructuresOutputProperties : StructuresOutputProperties { + private readonly ClosingStructuresFailureMechanism failureMechanism; + private readonly IAssessmentSection assessmentSection; + /// /// Creates a new instance of . /// @@ -53,6 +57,14 @@ { throw new ArgumentNullException(nameof(assessmentSection)); } + + this.failureMechanism = failureMechanism; + this.assessmentSection = assessmentSection; } + + protected override ProbabilityAssessmentOutput CreateDerivedOutput() + { + return ClosingStructuresProbabilityAssessmentOutputFactory.Create(data, failureMechanism, assessmentSection); + } } } \ No newline at end of file Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/PropertyClasses/ClosingStructuresOutputPropertiesTest.cs =================================================================== diff -u -r7ec3c942280c558bf69d4b92a3610fcdbf29899c -r9eea721559aaf5e17bffe18a27dc417a56bb1278 --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/PropertyClasses/ClosingStructuresOutputPropertiesTest.cs (.../ClosingStructuresOutputPropertiesTest.cs) (revision 7ec3c942280c558bf69d4b92a3610fcdbf29899c) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Forms.Test/PropertyClasses/ClosingStructuresOutputPropertiesTest.cs (.../ClosingStructuresOutputPropertiesTest.cs) (revision 9eea721559aaf5e17bffe18a27dc417a56bb1278) @@ -25,7 +25,9 @@ using Ringtoets.ClosingStructures.Data; using Ringtoets.ClosingStructures.Forms.PropertyClasses; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Probability; using Ringtoets.Common.Data.TestUtil; +using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PropertyClasses; namespace Ringtoets.ClosingStructures.Forms.Test.PropertyClasses @@ -80,5 +82,33 @@ Assert.AreSame(output, properties.Data); mocks.VerifyAll(); } + + [Test] + public void GetProperties_WithData_ReturnExpectedValues() + { + // Setup + var failureMechanism = new ClosingStructuresFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + + var random = new Random(39); + double reliability = random.NextDouble(); + + var structuresOutput = new TestStructuresOutput(reliability); + + // Call + var properties = new ClosingStructuresOutputProperties(structuresOutput, failureMechanism, assessmentSection); + + // Assert + ProbabilityAssessmentOutput expectedProbabilityAssessmentOutput = ClosingStructuresProbabilityAssessmentOutputFactory.Create( + structuresOutput, failureMechanism, assessmentSection); + Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedProbabilityAssessmentOutput.RequiredProbability), properties.RequiredProbability); + Assert.AreEqual(expectedProbabilityAssessmentOutput.RequiredReliability, properties.RequiredReliability, properties.RequiredReliability.GetAccuracy()); + Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedProbabilityAssessmentOutput.Probability), properties.Probability); + Assert.AreEqual(expectedProbabilityAssessmentOutput.Reliability, properties.Reliability, properties.Reliability.GetAccuracy()); + Assert.AreEqual(expectedProbabilityAssessmentOutput.FactorOfSafety, properties.FactorOfSafety, properties.FactorOfSafety.GetAccuracy()); + mocks.ReplayAll(); + } } } \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/StructuresOutputProperties.cs =================================================================== diff -u -rf25edcfd0994057ea8faad1f3dae989bbfb32d75 -r9eea721559aaf5e17bffe18a27dc417a56bb1278 --- Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/StructuresOutputProperties.cs (.../StructuresOutputProperties.cs) (revision f25edcfd0994057ea8faad1f3dae989bbfb32d75) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/PropertyClasses/StructuresOutputProperties.cs (.../StructuresOutputProperties.cs) (revision 9eea721559aaf5e17bffe18a27dc417a56bb1278) @@ -29,6 +29,7 @@ using Core.Common.Util.Attributes; using Core.Common.Util.Extensions; using Ringtoets.Common.Data.IllustrationPoints; +using Ringtoets.Common.Data.Probability; using Ringtoets.Common.Data.Structures; using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.Properties; @@ -40,6 +41,8 @@ /// public abstract class StructuresOutputProperties : ObjectProperties { + private ProbabilityAssessmentOutput derivedOutput; + /// /// Creates a new instance of . /// @@ -129,7 +132,7 @@ { get { - return ProbabilityFormattingHelper.Format(data.ProbabilityAssessmentOutput.RequiredProbability); + return ProbabilityFormattingHelper.Format(DerivedOutput.RequiredProbability); } } @@ -141,7 +144,7 @@ { get { - return data.ProbabilityAssessmentOutput.RequiredReliability; + return DerivedOutput.RequiredReliability; } } @@ -153,7 +156,7 @@ { get { - return ProbabilityFormattingHelper.Format(data.ProbabilityAssessmentOutput.Probability); + return ProbabilityFormattingHelper.Format(DerivedOutput.Probability); } } @@ -165,7 +168,7 @@ { get { - return data.ProbabilityAssessmentOutput.Reliability; + return DerivedOutput.Reliability; } } @@ -177,7 +180,7 @@ { get { - return data.ProbabilityAssessmentOutput.FactorOfSafety; + return DerivedOutput.FactorOfSafety; } } @@ -192,5 +195,19 @@ propertyName.Equals(nameof(IllustrationPoints)) ); } + + /// + /// Creates the derived output. + /// + /// The created derived output. + protected abstract ProbabilityAssessmentOutput CreateDerivedOutput(); + + private ProbabilityAssessmentOutput DerivedOutput + { + get + { + return derivedOutput ?? (derivedOutput = CreateDerivedOutput()); + } + } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil.Test/TestStructuresOutputTest.cs =================================================================== diff -u -rb28a844780b613e1901fa82328ba3917f485c729 -r9eea721559aaf5e17bffe18a27dc417a56bb1278 --- Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil.Test/TestStructuresOutputTest.cs (.../TestStructuresOutputTest.cs) (revision b28a844780b613e1901fa82328ba3917f485c729) +++ Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil.Test/TestStructuresOutputTest.cs (.../TestStructuresOutputTest.cs) (revision 9eea721559aaf5e17bffe18a27dc417a56bb1278) @@ -73,13 +73,13 @@ } [Test] - public void ProbabilityConstructor_SetExpectedValues() + public void ReliabilityConstructor_SetExpectedValues() { // Setup - const double probability = 0.5; + const double reliability = 0.5; // Call - var output = new TestStructuresOutput(probability); + var output = new TestStructuresOutput(reliability); // Assert Assert.IsInstanceOf(output); @@ -88,7 +88,7 @@ output.ProbabilityAssessmentOutput; Assert.AreEqual(0, probabilityAssessmentOutput.FactorOfSafety.Value); Assert.AreEqual(0, probabilityAssessmentOutput.RequiredProbability); - Assert.AreEqual(probability, probabilityAssessmentOutput.Probability); + Assert.AreEqual(reliability, probabilityAssessmentOutput.Probability); Assert.AreEqual(0, probabilityAssessmentOutput.RequiredReliability.Value); Assert.AreEqual(0, probabilityAssessmentOutput.Reliability.Value); Assert.IsNull(output.GeneralResult); Index: Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/TestStructuresOutput.cs =================================================================== diff -u -r54803fcc28ee6d1283ef1ab2eaf50e49e0eb54c6 -r9eea721559aaf5e17bffe18a27dc417a56bb1278 --- Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/TestStructuresOutput.cs (.../TestStructuresOutput.cs) (revision 54803fcc28ee6d1283ef1ab2eaf50e49e0eb54c6) +++ Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/TestStructuresOutput.cs (.../TestStructuresOutput.cs) (revision 9eea721559aaf5e17bffe18a27dc417a56bb1278) @@ -41,12 +41,12 @@ /// /// Creates a new instance of . /// - /// The probability of failure. + /// The reliability of failure. /// Thrown when setting - /// that falls outside the [0.0, 1.0] range + /// that falls outside the [0.0, 1.0] range /// and isn't . - public TestStructuresOutput(double probability) - : base(probability, new ProbabilityAssessmentOutput(0, 0, probability, 0, 0), null) {} + public TestStructuresOutput(double reliability) + : base(reliability, new ProbabilityAssessmentOutput(0, 0, reliability, 0, 0), null) {} /// /// Creates new instance of . Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/StructuresOutputPropertiesTest.cs =================================================================== diff -u -rf25edcfd0994057ea8faad1f3dae989bbfb32d75 -r9eea721559aaf5e17bffe18a27dc417a56bb1278 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/StructuresOutputPropertiesTest.cs (.../StructuresOutputPropertiesTest.cs) (revision f25edcfd0994057ea8faad1f3dae989bbfb32d75) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/StructuresOutputPropertiesTest.cs (.../StructuresOutputPropertiesTest.cs) (revision 9eea721559aaf5e17bffe18a27dc417a56bb1278) @@ -31,7 +31,6 @@ using Ringtoets.Common.Data.Structures; using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.Data.TestUtil.IllustrationPoints; -using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PropertyClasses; namespace Ringtoets.Common.Forms.Test.PropertyClasses @@ -81,32 +80,13 @@ public void GetProperties_WithData_ReturnExpectedValues() { // Setup - var random = new Random(22); - double requiredProbability = random.NextDouble(); - double requiredReliability = random.NextDouble(); - double probability = random.NextDouble(); - double reliability = random.NextDouble(); - double factorOfSafety = random.NextDouble(); - - var probabilityAssessmentOutput = new ProbabilityAssessmentOutput(requiredProbability, - requiredReliability, - probability, - reliability, - factorOfSafety); - var generalResult = new TestGeneralResultFaultTreeIllustrationPoint(); + var structuresOutput = new TestStructuresOutput(generalResult); - var structuresOutput = new StructuresOutput(reliability, probabilityAssessmentOutput, generalResult); - // Call var properties = new SimpleStructuresOutputProperties(structuresOutput); // Assert - Assert.AreEqual(ProbabilityFormattingHelper.Format(requiredProbability), properties.RequiredProbability); - Assert.AreEqual(requiredReliability, properties.RequiredReliability, properties.RequiredReliability.GetAccuracy()); - Assert.AreEqual(ProbabilityFormattingHelper.Format(probability), properties.Probability); - Assert.AreEqual(reliability, properties.Reliability, properties.Reliability.GetAccuracy()); - Assert.AreEqual(factorOfSafety, properties.FactorOfSafety, properties.FactorOfSafety.GetAccuracy()); Assert.AreEqual(generalResult.GoverningWindDirection.Name, properties.WindDirection); TestHelper.AssertTypeConverter( @@ -277,6 +257,11 @@ { public SimpleStructuresOutputProperties(StructuresOutput structuresOutput) : base(structuresOutput) {} + + protected override ProbabilityAssessmentOutput CreateDerivedOutput() + { + return null; + } } } } \ No newline at end of file Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/PropertyClasses/HeightStructuresOutputProperties.cs =================================================================== diff -u -r7ec3c942280c558bf69d4b92a3610fcdbf29899c -r9eea721559aaf5e17bffe18a27dc417a56bb1278 --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/PropertyClasses/HeightStructuresOutputProperties.cs (.../HeightStructuresOutputProperties.cs) (revision 7ec3c942280c558bf69d4b92a3610fcdbf29899c) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Forms/PropertyClasses/HeightStructuresOutputProperties.cs (.../HeightStructuresOutputProperties.cs) (revision 9eea721559aaf5e17bffe18a27dc417a56bb1278) @@ -21,6 +21,7 @@ using System; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Probability; using Ringtoets.Common.Data.Structures; using Ringtoets.Common.Forms.PropertyClasses; using Ringtoets.HeightStructures.Data; @@ -32,6 +33,9 @@ /// public class HeightStructuresOutputProperties : StructuresOutputProperties { + private readonly HeightStructuresFailureMechanism failureMechanism; + private readonly IAssessmentSection assessmentSection; + /// /// Creates a new instance of . /// @@ -53,6 +57,14 @@ { throw new ArgumentNullException(nameof(assessmentSection)); } + + this.failureMechanism = failureMechanism; + this.assessmentSection = assessmentSection; } + + protected override ProbabilityAssessmentOutput CreateDerivedOutput() + { + return HeightStructuresProbabilityAssessmentOutputFactory.Create(data, failureMechanism, assessmentSection); + } } } \ No newline at end of file Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/PropertyClasses/HeightStructuresOutputPropertiesTest.cs =================================================================== diff -u -r7ec3c942280c558bf69d4b92a3610fcdbf29899c -r9eea721559aaf5e17bffe18a27dc417a56bb1278 --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/PropertyClasses/HeightStructuresOutputPropertiesTest.cs (.../HeightStructuresOutputPropertiesTest.cs) (revision 7ec3c942280c558bf69d4b92a3610fcdbf29899c) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/PropertyClasses/HeightStructuresOutputPropertiesTest.cs (.../HeightStructuresOutputPropertiesTest.cs) (revision 9eea721559aaf5e17bffe18a27dc417a56bb1278) @@ -23,7 +23,9 @@ using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Probability; using Ringtoets.Common.Data.TestUtil; +using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PropertyClasses; using Ringtoets.HeightStructures.Data; using Ringtoets.HeightStructures.Forms.PropertyClasses; @@ -80,5 +82,33 @@ Assert.AreSame(output, properties.Data); mocks.VerifyAll(); } + + [Test] + public void GetProperties_WithData_ReturnExpectedValues() + { + // Setup + var failureMechanism = new HeightStructuresFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + + var random = new Random(39); + double reliability = random.NextDouble(); + + var structuresOutput = new TestStructuresOutput(reliability); + + // Call + var properties = new HeightStructuresOutputProperties(structuresOutput, failureMechanism, assessmentSection); + + // Assert + ProbabilityAssessmentOutput expectedProbabilityAssessmentOutput = HeightStructuresProbabilityAssessmentOutputFactory.Create( + structuresOutput, failureMechanism, assessmentSection); + Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedProbabilityAssessmentOutput.RequiredProbability), properties.RequiredProbability); + Assert.AreEqual(expectedProbabilityAssessmentOutput.RequiredReliability, properties.RequiredReliability, properties.RequiredReliability.GetAccuracy()); + Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedProbabilityAssessmentOutput.Probability), properties.Probability); + Assert.AreEqual(expectedProbabilityAssessmentOutput.Reliability, properties.Reliability, properties.Reliability.GetAccuracy()); + Assert.AreEqual(expectedProbabilityAssessmentOutput.FactorOfSafety, properties.FactorOfSafety, properties.FactorOfSafety.GetAccuracy()); + mocks.VerifyAll(); + } } } \ No newline at end of file Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/PropertyClasses/StabilityPointStructuresOutputProperties.cs =================================================================== diff -u -r7ec3c942280c558bf69d4b92a3610fcdbf29899c -r9eea721559aaf5e17bffe18a27dc417a56bb1278 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/PropertyClasses/StabilityPointStructuresOutputProperties.cs (.../StabilityPointStructuresOutputProperties.cs) (revision 7ec3c942280c558bf69d4b92a3610fcdbf29899c) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Forms/PropertyClasses/StabilityPointStructuresOutputProperties.cs (.../StabilityPointStructuresOutputProperties.cs) (revision 9eea721559aaf5e17bffe18a27dc417a56bb1278) @@ -21,6 +21,7 @@ using System; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Probability; using Ringtoets.Common.Data.Structures; using Ringtoets.Common.Forms.PropertyClasses; using Ringtoets.StabilityPointStructures.Data; @@ -32,6 +33,9 @@ /// public class StabilityPointStructuresOutputProperties : StructuresOutputProperties { + private readonly StabilityPointStructuresFailureMechanism failureMechanism; + private readonly IAssessmentSection assessmentSection; + /// /// Creates a new instance of . /// @@ -53,6 +57,14 @@ { throw new ArgumentNullException(nameof(assessmentSection)); } + + this.failureMechanism = failureMechanism; + this.assessmentSection = assessmentSection; } + + protected override ProbabilityAssessmentOutput CreateDerivedOutput() + { + return StabilityPointStructuresProbabilityAssessmentOutputFactory.Create(data, failureMechanism, assessmentSection); + } } } \ No newline at end of file Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/PropertyClasses/StabilityPointStructuresOutputPropertiesTest.cs =================================================================== diff -u -r7ec3c942280c558bf69d4b92a3610fcdbf29899c -r9eea721559aaf5e17bffe18a27dc417a56bb1278 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/PropertyClasses/StabilityPointStructuresOutputPropertiesTest.cs (.../StabilityPointStructuresOutputPropertiesTest.cs) (revision 7ec3c942280c558bf69d4b92a3610fcdbf29899c) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/PropertyClasses/StabilityPointStructuresOutputPropertiesTest.cs (.../StabilityPointStructuresOutputPropertiesTest.cs) (revision 9eea721559aaf5e17bffe18a27dc417a56bb1278) @@ -23,7 +23,9 @@ using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.Probability; using Ringtoets.Common.Data.TestUtil; +using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PropertyClasses; using Ringtoets.StabilityPointStructures.Data; using Ringtoets.StabilityPointStructures.Forms.PropertyClasses; @@ -80,5 +82,33 @@ Assert.AreSame(output, properties.Data); mocks.VerifyAll(); } + + [Test] + public void GetProperties_WithData_ReturnExpectedValues() + { + // Setup + var failureMechanism = new StabilityPointStructuresFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + + var random = new Random(39); + double reliability = random.NextDouble(); + + var structuresOutput = new TestStructuresOutput(reliability); + + // Call + var properties = new StabilityPointStructuresOutputProperties(structuresOutput, failureMechanism, assessmentSection); + + // Assert + ProbabilityAssessmentOutput expectedProbabilityAssessmentOutput = StabilityPointStructuresProbabilityAssessmentOutputFactory.Create( + structuresOutput, failureMechanism, assessmentSection); + Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedProbabilityAssessmentOutput.RequiredProbability), properties.RequiredProbability); + Assert.AreEqual(expectedProbabilityAssessmentOutput.RequiredReliability, properties.RequiredReliability, properties.RequiredReliability.GetAccuracy()); + Assert.AreEqual(ProbabilityFormattingHelper.Format(expectedProbabilityAssessmentOutput.Probability), properties.Probability); + Assert.AreEqual(expectedProbabilityAssessmentOutput.Reliability, properties.Reliability, properties.Reliability.GetAccuracy()); + Assert.AreEqual(expectedProbabilityAssessmentOutput.FactorOfSafety, properties.FactorOfSafety, properties.FactorOfSafety.GetAccuracy()); + mocks.VerifyAll(); + } } } \ No newline at end of file