Index: Riskeer/Piping/src/Riskeer.Piping.Forms/PropertyClasses/Probabilistic/ProbabilisticFaultTreePipingProfileSpecificOutputProperties.cs =================================================================== diff -u -rc4484f320a4122be7ae73b0763fa1480f354949f -r0df66b99f0cff023a96fc519b6f345a6a9d212e3 --- Riskeer/Piping/src/Riskeer.Piping.Forms/PropertyClasses/Probabilistic/ProbabilisticFaultTreePipingProfileSpecificOutputProperties.cs (.../ProbabilisticFaultTreePipingProfileSpecificOutputProperties.cs) (revision c4484f320a4122be7ae73b0763fa1480f354949f) +++ Riskeer/Piping/src/Riskeer.Piping.Forms/PropertyClasses/Probabilistic/ProbabilisticFaultTreePipingProfileSpecificOutputProperties.cs (.../ProbabilisticFaultTreePipingProfileSpecificOutputProperties.cs) (revision 0df66b99f0cff023a96fc519b6f345a6a9d212e3) @@ -20,9 +20,18 @@ // All rights reserved. using System; +using System.ComponentModel; +using System.Linq; +using Core.Common.Gui.Attributes; +using Core.Common.Gui.Converters; +using Core.Common.Util.Attributes; +using Core.Common.Util.Extensions; using Riskeer.Common.Data.AssessmentSection; +using Riskeer.Common.Data.IllustrationPoints; +using Riskeer.Common.Forms.PropertyClasses; using Riskeer.Piping.Data; using Riskeer.Piping.Data.Probabilistic; +using RiskeerCommonFormsResources = Riskeer.Common.Forms.Properties.Resources; namespace Riskeer.Piping.Forms.PropertyClasses.Probabilistic { @@ -31,6 +40,13 @@ /// public class ProbabilisticFaultTreePipingProfileSpecificOutputProperties : ProbabilisticPipingProfileSpecificOutputProperties { + private const int windDirectionIndex = 5; + private const int alphaValuesIndex = 6; + private const int durationsIndex = 7; + private const int illustrationPointsIndex = 8; + + private readonly PartialProbabilisticFaultTreePipingOutput faultTreeOutput; + /// /// Creates a new instance of . /// @@ -44,6 +60,103 @@ ProbabilisticPipingCalculationScenario calculation, PipingFailureMechanism failureMechanism, IAssessmentSection assessmentSection) - : base(output, calculation, failureMechanism, assessmentSection) {} + : base(output, calculation, failureMechanism, assessmentSection) + { + faultTreeOutput = output; + } + + [DynamicVisibleValidationMethod] + public bool DynamicVisibleValidationMethod(string propertyName) + { + return data.HasGeneralResult + && (propertyName.Equals(nameof(WindDirection)) + || propertyName.Equals(nameof(AlphaValues)) + || propertyName.Equals(nameof(Durations)) + || propertyName.Equals(nameof(IllustrationPoints))); + } + + private TopLevelFaultTreeIllustrationPointProperties[] GetTopLevelFaultTreeIllustrationPointProperties(bool areClosingSituationsSame) + { + return faultTreeOutput.GeneralResult + .TopLevelIllustrationPoints + .Select(point => + new TopLevelFaultTreeIllustrationPointProperties( + point, areClosingSituationsSame)).ToArray(); + } + + private Stochast[] GetStochasts() + { + return faultTreeOutput.GeneralResult?.Stochasts.ToArray(); + } + + #region Illustration points + + [DynamicVisible] + [PropertyOrder(windDirectionIndex)] + [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_IllustrationPoints), 2, 2)] + [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPoint_GoverningWindDirection_DisplayName))] + [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPoint_GoverningWindDirection_Description))] + public string WindDirection + { + get + { + return faultTreeOutput.GeneralResult?.GoverningWindDirection.Name; + } + } + + [DynamicVisible] + [PropertyOrder(alphaValuesIndex)] + [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_IllustrationPoints), 2, 2)] + [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPoint_AlphaValues_DisplayName))] + [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPoint_AlphaValues_Description))] + [TypeConverter(typeof(KeyValueExpandableArrayConverter))] + [KeyValueElement(nameof(Stochast.Name), nameof(Stochast.Alpha))] + public Stochast[] AlphaValues + { + get + { + return GetStochasts(); + } + } + + [DynamicVisible] + [PropertyOrder(durationsIndex)] + [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_IllustrationPoints), 2, 2)] + [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPoint_Durations_DisplayName))] + [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPoint_Durations_Description))] + [TypeConverter(typeof(KeyValueExpandableArrayConverter))] + [KeyValueElement(nameof(Stochast.Name), nameof(Stochast.Duration))] + public Stochast[] Durations + { + get + { + return GetStochasts(); + } + } + + [DynamicVisible] + [PropertyOrder(illustrationPointsIndex)] + [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_IllustrationPoints), 2, 2)] + [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPointProperty_IllustrationPoints_DisplayName))] + [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPointProperty_IllustrationPoints_Description))] + [TypeConverter(typeof(ExpandableArrayConverter))] + public TopLevelFaultTreeIllustrationPointProperties[] IllustrationPoints + { + get + { + if (!data.HasGeneralResult) + { + return new TopLevelFaultTreeIllustrationPointProperties[0]; + } + + bool areClosingSituationsSame = !faultTreeOutput.GeneralResult + .TopLevelIllustrationPoints + .HasMultipleUniqueValues(p => p.ClosingSituation); + + return GetTopLevelFaultTreeIllustrationPointProperties(areClosingSituationsSame); + } + } + + #endregion } } \ No newline at end of file Index: Riskeer/Piping/src/Riskeer.Piping.Forms/PropertyClasses/Probabilistic/ProbabilisticPipingProfileSpecificOutputProperties.cs =================================================================== diff -u -rdd65da2990c97928228adfc407a0981c87c61331 -r0df66b99f0cff023a96fc519b6f345a6a9d212e3 --- Riskeer/Piping/src/Riskeer.Piping.Forms/PropertyClasses/Probabilistic/ProbabilisticPipingProfileSpecificOutputProperties.cs (.../ProbabilisticPipingProfileSpecificOutputProperties.cs) (revision dd65da2990c97928228adfc407a0981c87c61331) +++ Riskeer/Piping/src/Riskeer.Piping.Forms/PropertyClasses/Probabilistic/ProbabilisticPipingProfileSpecificOutputProperties.cs (.../ProbabilisticPipingProfileSpecificOutputProperties.cs) (revision 0df66b99f0cff023a96fc519b6f345a6a9d212e3) @@ -20,19 +20,13 @@ // All rights reserved. using System; -using System.ComponentModel; -using System.Linq; using Core.Common.Base.Data; using Core.Common.Gui.Attributes; -using Core.Common.Gui.Converters; using Core.Common.Gui.PropertyBag; using Core.Common.Util.Attributes; -using Core.Common.Util.Extensions; using Riskeer.Common.Data.AssessmentSection; -using Riskeer.Common.Data.IllustrationPoints; using Riskeer.Common.Data.Probability; using Riskeer.Common.Forms.Helpers; -using Riskeer.Common.Forms.PropertyClasses; using Riskeer.Piping.Data; using Riskeer.Piping.Data.Probabilistic; using RiskeerCommonFormsResources = Riskeer.Common.Forms.Properties.Resources; @@ -42,8 +36,14 @@ /// /// ViewModel of profile specific for properties panel. /// - public class ProbabilisticPipingProfileSpecificOutputProperties : ObjectProperties + public class ProbabilisticPipingProfileSpecificOutputProperties : ObjectProperties { + private const int requiredProbabilityIndex = 0; + private const int requiredReliabilityIndex = 1; + private const int probabilityIndex = 2; + private const int reliabilityIndex = 3; + private const int safetyFactorIndex = 4; + private readonly ProbabilityAssessmentOutput derivedOutput; /// @@ -54,7 +54,7 @@ /// The failure mechanism the output belongs to. /// The assessment section the output belongs to. /// Thrown when any parameter is null. - public ProbabilisticPipingProfileSpecificOutputProperties(PartialProbabilisticFaultTreePipingOutput output, + public ProbabilisticPipingProfileSpecificOutputProperties(IPartialProbabilisticPipingOutput output, ProbabilisticPipingCalculationScenario calculation, PipingFailureMechanism failureMechanism, IAssessmentSection assessmentSection) @@ -87,32 +87,9 @@ assessmentSection); } - [DynamicVisibleValidationMethod] - public bool DynamicVisibleValidationMethod(string propertyName) - { - return data.HasGeneralResult - && (propertyName.Equals(nameof(WindDirection)) - || propertyName.Equals(nameof(AlphaValues)) - || propertyName.Equals(nameof(Durations)) - || propertyName.Equals(nameof(IllustrationPoints))); - } - - private TopLevelFaultTreeIllustrationPointProperties[] GetTopLevelFaultTreeIllustrationPointProperties(bool areClosingSituationsSame) - { - return data.GeneralResult - .TopLevelIllustrationPoints - .Select(point => - new TopLevelFaultTreeIllustrationPointProperties( - point, areClosingSituationsSame)).ToArray(); - } - - private Stochast[] GetStochasts() - { - return data.GeneralResult?.Stochasts.ToArray(); - } - #region Result + [PropertyOrder(requiredProbabilityIndex)] [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_Result), 1, 2)] [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.ProbabilityAssessmentOutput_RequiredProbability_Displayname))] [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.ProbabilityAssessmentOutput_RequiredProbability_Description))] @@ -124,6 +101,7 @@ } } + [PropertyOrder(requiredReliabilityIndex)] [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_Result), 1, 2)] [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.ProbabilityAssessmentOutput_RequiredReliability_Displayname))] [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.ProbabilityAssessmentOutput_RequiredReliability_Description))] @@ -135,6 +113,7 @@ } } + [PropertyOrder(probabilityIndex)] [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_Result), 1, 2)] [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.ProbabilityAssessmentOutput_Probability_Displayname))] [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.ProbabilityAssessmentOutput_Probability_Description))] @@ -146,6 +125,7 @@ } } + [PropertyOrder(reliabilityIndex)] [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_Result), 1, 2)] [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.ProbabilityAssessmentOutput_Reliability_Displayname))] [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.ProbabilityAssessmentOutput_Reliability_Description))] @@ -157,6 +137,7 @@ } } + [PropertyOrder(safetyFactorIndex)] [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_Result), 1, 2)] [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.ProbabilityAssessmentOutput_FactorOfSafety_Displayname))] [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.ProbabilityAssessmentOutput_FactorOfSafety_Description))] @@ -169,71 +150,5 @@ } #endregion - - #region Illustration points - - [DynamicVisible] - [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_IllustrationPoints), 2, 2)] - [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPoint_GoverningWindDirection_DisplayName))] - [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPoint_GoverningWindDirection_Description))] - public string WindDirection - { - get - { - return data.GeneralResult?.GoverningWindDirection.Name; - } - } - - [DynamicVisible] - [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_IllustrationPoints), 2, 2)] - [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPoint_AlphaValues_DisplayName))] - [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPoint_AlphaValues_Description))] - [TypeConverter(typeof(KeyValueExpandableArrayConverter))] - [KeyValueElement(nameof(Stochast.Name), nameof(Stochast.Alpha))] - public Stochast[] AlphaValues - { - get - { - return GetStochasts(); - } - } - - [DynamicVisible] - [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_IllustrationPoints), 2, 2)] - [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPoint_Durations_DisplayName))] - [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPoint_Durations_Description))] - [TypeConverter(typeof(KeyValueExpandableArrayConverter))] - [KeyValueElement(nameof(Stochast.Name), nameof(Stochast.Duration))] - public Stochast[] Durations - { - get - { - return GetStochasts(); - } - } - - [DynamicVisible] - [ResourcesCategory(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.Categories_IllustrationPoints), 2, 2)] - [ResourcesDisplayName(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPointProperty_IllustrationPoints_DisplayName))] - [ResourcesDescription(typeof(RiskeerCommonFormsResources), nameof(RiskeerCommonFormsResources.IllustrationPointProperty_IllustrationPoints_Description))] - [TypeConverter(typeof(ExpandableArrayConverter))] - public TopLevelFaultTreeIllustrationPointProperties[] IllustrationPoints - { - get - { - if (!data.HasGeneralResult) - { - return new TopLevelFaultTreeIllustrationPointProperties[0]; - } - - bool areClosingSituationsSame = !data.GeneralResult - .TopLevelIllustrationPoints - .HasMultipleUniqueValues(p => p.ClosingSituation); - - return GetTopLevelFaultTreeIllustrationPointProperties(areClosingSituationsSame); - } - } - - #endregion } } \ No newline at end of file Index: Riskeer/Piping/src/Riskeer.Piping.Plugin/PipingPlugin.cs =================================================================== diff -u -rb8563cf263a8359d84834e4546d7741beed15118 -r0df66b99f0cff023a96fc519b6f345a6a9d212e3 --- Riskeer/Piping/src/Riskeer.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision b8563cf263a8359d84834e4546d7741beed15118) +++ Riskeer/Piping/src/Riskeer.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 0df66b99f0cff023a96fc519b6f345a6a9d212e3) @@ -128,10 +128,11 @@ }; yield return new PropertyInfo { - CreateInstance = context => new ProbabilisticPipingProfileSpecificOutputProperties((PartialProbabilisticFaultTreePipingOutput) context.WrappedData.Output?.ProfileSpecificOutput, - context.WrappedData, - context.FailureMechanism, - context.AssessmentSection) + CreateInstance = context => new ProbabilisticFaultTreePipingProfileSpecificOutputProperties( + (PartialProbabilisticFaultTreePipingOutput) context.WrappedData.Output?.ProfileSpecificOutput, + context.WrappedData, + context.FailureMechanism, + context.AssessmentSection) }; yield return new PropertyInfo { Index: Riskeer/Piping/test/Riskeer.Piping.Forms.Test/PropertyClasses/Probabilistic/ProbabilisticFaultTreePipingProfileSpecificOutputPropertiesTest.cs =================================================================== diff -u -rc4484f320a4122be7ae73b0763fa1480f354949f -r0df66b99f0cff023a96fc519b6f345a6a9d212e3 --- Riskeer/Piping/test/Riskeer.Piping.Forms.Test/PropertyClasses/Probabilistic/ProbabilisticFaultTreePipingProfileSpecificOutputPropertiesTest.cs (.../ProbabilisticFaultTreePipingProfileSpecificOutputPropertiesTest.cs) (revision c4484f320a4122be7ae73b0763fa1480f354949f) +++ Riskeer/Piping/test/Riskeer.Piping.Forms.Test/PropertyClasses/Probabilistic/ProbabilisticFaultTreePipingProfileSpecificOutputPropertiesTest.cs (.../ProbabilisticFaultTreePipingProfileSpecificOutputPropertiesTest.cs) (revision 0df66b99f0cff023a96fc519b6f345a6a9d212e3) @@ -147,7 +147,7 @@ output, calculation, failureMechanism, new AssessmentSectionStub()); // Assert - Assert.IsInstanceOf(properties); + Assert.IsInstanceOf(properties); Assert.AreSame(output, properties.Data); } @@ -217,26 +217,26 @@ true); PropertyDescriptor alphaValuesProperty = dynamicProperties[alphaValuesPropertyIndex]; - TestHelper.AssertTypeConverter( - nameof(ProbabilisticPipingProfileSpecificOutputProperties.AlphaValues)); + TestHelper.AssertTypeConverter( + nameof(ProbabilisticFaultTreePipingProfileSpecificOutputProperties.AlphaValues)); PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(alphaValuesProperty, illustrationPointsCategoryName, "Invloedscoëfficiënten [-]", "Berekende invloedscoëfficiënten voor alle beschouwde stochasten.", true); PropertyDescriptor durationsProperty = dynamicProperties[durationsPropertyIndex]; - TestHelper.AssertTypeConverter( - nameof(ProbabilisticPipingProfileSpecificOutputProperties.Durations)); + TestHelper.AssertTypeConverter( + nameof(ProbabilisticFaultTreePipingProfileSpecificOutputProperties.Durations)); PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(durationsProperty, illustrationPointsCategoryName, "Tijdsduren [uur]", "Tijdsduren waarop de stochasten betrekking hebben.", true); PropertyDescriptor illustrationPointProperty = dynamicProperties[illustrationPointsPropertyIndex]; - TestHelper.AssertTypeConverter( - nameof(ProbabilisticPipingProfileSpecificOutputProperties.IllustrationPoints)); + TestHelper.AssertTypeConverter( + nameof(ProbabilisticFaultTreePipingProfileSpecificOutputProperties.IllustrationPoints)); PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(illustrationPointProperty, illustrationPointsCategoryName, "Illustratiepunten", Index: Riskeer/Piping/test/Riskeer.Piping.Forms.Test/PropertyClasses/Probabilistic/ProbabilisticPipingProfileSpecificOutputPropertiesTest.cs =================================================================== diff -u -rb8563cf263a8359d84834e4546d7741beed15118 -r0df66b99f0cff023a96fc519b6f345a6a9d212e3 --- Riskeer/Piping/test/Riskeer.Piping.Forms.Test/PropertyClasses/Probabilistic/ProbabilisticPipingProfileSpecificOutputPropertiesTest.cs (.../ProbabilisticPipingProfileSpecificOutputPropertiesTest.cs) (revision b8563cf263a8359d84834e4546d7741beed15118) +++ Riskeer/Piping/test/Riskeer.Piping.Forms.Test/PropertyClasses/Probabilistic/ProbabilisticPipingProfileSpecificOutputPropertiesTest.cs (.../ProbabilisticPipingProfileSpecificOutputPropertiesTest.cs) (revision 0df66b99f0cff023a96fc519b6f345a6a9d212e3) @@ -22,17 +22,14 @@ using System; using System.ComponentModel; using System.Linq; -using Core.Common.Gui.Converters; using Core.Common.Gui.PropertyBag; using Core.Common.TestUtil; using NUnit.Framework; using Rhino.Mocks; using Riskeer.Common.Data.AssessmentSection; -using Riskeer.Common.Data.IllustrationPoints; using Riskeer.Common.Data.Probability; using Riskeer.Common.Data.TestUtil; using Riskeer.Common.Forms.Helpers; -using Riskeer.Common.Forms.PropertyClasses; using Riskeer.Piping.Data; using Riskeer.Piping.Data.Probabilistic; using Riskeer.Piping.Data.TestUtil; @@ -48,12 +45,7 @@ private const int probabilityPropertyIndex = 2; private const int reliabilityPropertyIndex = 3; private const int factorOfSafetyPropertyIndex = 4; - private const int windDirectionPropertyIndex = 5; - private const int alphaValuesPropertyIndex = 6; - private const int durationsPropertyIndex = 7; - private const int illustrationPointsPropertyIndex = 8; - private const string illustrationPointsCategoryName = "Illustratiepunten"; private const string resultCategoryName = "\tResultaat"; [Test] @@ -137,7 +129,7 @@ public void Constructor_WithParameters_ExpectedValues() { // Setup - PartialProbabilisticFaultTreePipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(); + PartialProbabilisticPipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput(); TestPipingFailureMechanism failureMechanism = TestPipingFailureMechanism.GetFailureMechanismWithSurfaceLinesAndStochasticSoilModels(); var calculation = new ProbabilisticPipingCalculationScenario @@ -149,21 +141,19 @@ }; // Call - var properties = new ProbabilisticPipingProfileSpecificOutputProperties(output, - calculation, - failureMechanism, - new AssessmentSectionStub()); + var properties = new ProbabilisticPipingProfileSpecificOutputProperties( + output, calculation, failureMechanism, new AssessmentSectionStub()); // Assert - Assert.IsInstanceOf>(properties); + Assert.IsInstanceOf>(properties); Assert.AreSame(output, properties.Data); } [Test] - public void Constructor_HasGeneralResult_PropertiesHaveExpectedAttributesValues() + public void Constructor_Always_PropertiesHaveExpectedAttributesValues() { // Setup - PartialProbabilisticFaultTreePipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(); + PartialProbabilisticPipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput(null); TestPipingFailureMechanism failureMechanism = TestPipingFailureMechanism.GetFailureMechanismWithSurfaceLinesAndStochasticSoilModels(); var calculation = new ProbabilisticPipingCalculationScenario @@ -175,108 +165,11 @@ }; // Call - var properties = new ProbabilisticPipingProfileSpecificOutputProperties(output, - calculation, - failureMechanism, - new AssessmentSectionStub()); + var properties = new ProbabilisticPipingProfileSpecificOutputProperties( + output, calculation, failureMechanism, new AssessmentSectionStub()); // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); - Assert.AreEqual(9, dynamicProperties.Count); - - PropertyDescriptor requiredProbabilityProperty = dynamicProperties[requiredProbabilityPropertyIndex]; - PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(requiredProbabilityProperty, - resultCategoryName, - "Faalkanseis [1/jaar]", - "De maximaal toegestane faalkanseis voor het toetsspoor.", - true); - - PropertyDescriptor requiredReliabilityProperty = dynamicProperties[requiredReliabilityPropertyIndex]; - PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(requiredReliabilityProperty, - resultCategoryName, - "Betrouwbaarheidsindex faalkanseis [-]", - "De betrouwbaarheidsindex van de faalkanseis voor het toetsspoor.", - true); - - PropertyDescriptor probabilityProperty = dynamicProperties[probabilityPropertyIndex]; - PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(probabilityProperty, - resultCategoryName, - "Faalkans [1/jaar]", - "De kans dat het toetsspoor optreedt voor deze berekening.", - true); - - PropertyDescriptor reliabilityProperty = dynamicProperties[reliabilityPropertyIndex]; - PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(reliabilityProperty, - resultCategoryName, - "Betrouwbaarheidsindex faalkans [-]", - "De betrouwbaarheidsindex van de faalkans voor deze berekening.", - true); - - PropertyDescriptor factorOfSafetyProperty = dynamicProperties[factorOfSafetyPropertyIndex]; - PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(factorOfSafetyProperty, - resultCategoryName, - "Veiligheidsfactor [-]", - "De veiligheidsfactor voor deze berekening.", - true); - - PropertyDescriptor windDirectionProperty = dynamicProperties[windDirectionPropertyIndex]; - PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(windDirectionProperty, - illustrationPointsCategoryName, - "Maatgevende windrichting", - "De windrichting waarvoor de berekende betrouwbaarheidsindex het laagst is.", - true); - - PropertyDescriptor alphaValuesProperty = dynamicProperties[alphaValuesPropertyIndex]; - TestHelper.AssertTypeConverter( - nameof(ProbabilisticPipingProfileSpecificOutputProperties.AlphaValues)); - PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(alphaValuesProperty, - illustrationPointsCategoryName, - "Invloedscoëfficiënten [-]", - "Berekende invloedscoëfficiënten voor alle beschouwde stochasten.", - true); - - PropertyDescriptor durationsProperty = dynamicProperties[durationsPropertyIndex]; - TestHelper.AssertTypeConverter( - nameof(ProbabilisticPipingProfileSpecificOutputProperties.Durations)); - PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(durationsProperty, - illustrationPointsCategoryName, - "Tijdsduren [uur]", - "Tijdsduren waarop de stochasten betrekking hebben.", - true); - - PropertyDescriptor illustrationPointProperty = dynamicProperties[illustrationPointsPropertyIndex]; - TestHelper.AssertTypeConverter( - nameof(ProbabilisticPipingProfileSpecificOutputProperties.IllustrationPoints)); - PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(illustrationPointProperty, - illustrationPointsCategoryName, - "Illustratiepunten", - "De lijst van illustratiepunten voor de berekening.", - true); - } - - [Test] - public void Constructor_NoGeneralResult_PropertiesHaveExpectedAttributesValues() - { - // Setup - PartialProbabilisticFaultTreePipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(null); - TestPipingFailureMechanism failureMechanism = TestPipingFailureMechanism.GetFailureMechanismWithSurfaceLinesAndStochasticSoilModels(); - - var calculation = new ProbabilisticPipingCalculationScenario - { - InputParameters = - { - SurfaceLine = failureMechanism.SurfaceLines.First() - } - }; - - // Call - var properties = new ProbabilisticPipingProfileSpecificOutputProperties(output, - calculation, - failureMechanism, - new AssessmentSectionStub()); - - // Assert - PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); Assert.AreEqual(5, dynamicProperties.Count); PropertyDescriptor requiredProbabilityProperty = dynamicProperties[requiredProbabilityPropertyIndex]; @@ -330,54 +223,21 @@ } }; - PartialProbabilisticFaultTreePipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(); + PartialProbabilisticPipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput(); // Call - var properties = new ProbabilisticPipingProfileSpecificOutputProperties(output, - calculation, - failureMechanism, - assessmentSection); + var properties = new ProbabilisticPipingProfileSpecificOutputProperties( + output, calculation, failureMechanism, assessmentSection); + // Assert - ProbabilityAssessmentOutput expectedProbabilityAssessmentOutput = PipingProbabilityAssessmentOutputFactory.Create(output, - calculation, - failureMechanism, - assessmentSection); + ProbabilityAssessmentOutput expectedProbabilityAssessmentOutput = PipingProbabilityAssessmentOutputFactory.Create( + output, calculation, 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()); - - GeneralResult generalResult = output.GeneralResult; - - Assert.AreEqual(generalResult.GoverningWindDirection.Name, properties.WindDirection); - - int nrOfExpectedStochasts = generalResult.Stochasts.Count(); - Assert.AreEqual(nrOfExpectedStochasts, properties.AlphaValues.Length); - Assert.AreEqual(nrOfExpectedStochasts, properties.Durations.Length); - Stochast expectedStochast = generalResult.Stochasts.First(); - Assert.AreEqual(expectedStochast.Alpha, properties.AlphaValues[0].Alpha); - Assert.AreEqual(expectedStochast.Duration, properties.Durations[0].Duration); - - int nrOfExpectedTopLevelIllustrationPoints = generalResult.TopLevelIllustrationPoints.Count(); - Assert.AreEqual(nrOfExpectedTopLevelIllustrationPoints, properties.IllustrationPoints.Length); - - CollectionAssert.AreEqual(generalResult.TopLevelIllustrationPoints, properties.IllustrationPoints.Select(i => i.Data)); } - - [Test] - public void IllustrationPoints_WithoutGeneralResult_ReturnsEmptyTopLevelFaultTreeIllustrationPointPropertiesArray() - { - // Setup - PartialProbabilisticFaultTreePipingOutput output = PipingTestDataGenerator.GetRandomPartialProbabilisticFaultTreePipingOutput(null); - var properties = new ProbabilisticPipingSectionSpecificOutputProperties(output); - - // Call - TopLevelFaultTreeIllustrationPointProperties[] illustrationPoints = properties.IllustrationPoints; - - // Assert - Assert.IsEmpty(illustrationPoints); - } } } \ No newline at end of file