Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/DikeAssessmentSection.cs =================================================================== diff -u -r019c82bf6273ff150976c8c2ea9b895258951455 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Integration/src/Ringtoets.Integration.Data/DikeAssessmentSection.cs (.../DikeAssessmentSection.cs) (revision 019c82bf6273ff150976c8c2ea9b895258951455) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/DikeAssessmentSection.cs (.../DikeAssessmentSection.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -91,7 +91,7 @@ set { base.ReferenceLine = value; - PipingFailureMechanism.GeneralInput.SectionLength = value == null ? double.NaN : Math2D.Length(value.Points); + PipingFailureMechanism.SemiProbabilisticInput.SectionLength = value == null ? double.NaN : Math2D.Length(value.Points); } } @@ -104,7 +104,7 @@ protected set { base.FailureMechanismContribution = value; - PipingFailureMechanism.GeneralInput.Norm = value.Norm; + PipingFailureMechanism.SemiProbabilisticInput.Norm = value.Norm; } } Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/DikeAssessmentSectionTest.cs =================================================================== diff -u -r019c82bf6273ff150976c8c2ea9b895258951455 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/DikeAssessmentSectionTest.cs (.../DikeAssessmentSectionTest.cs) (revision 019c82bf6273ff150976c8c2ea9b895258951455) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/DikeAssessmentSectionTest.cs (.../DikeAssessmentSectionTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -82,9 +82,9 @@ Assert.AreEqual(names, section.FailureMechanismContribution.Distribution.Select(d => d.Assessment)); Assert.AreEqual(Enumerable.Repeat(30000.0, 10), section.FailureMechanismContribution.Distribution.Select(d => d.Norm)); - Assert.AreEqual(pipingContribution, section.PipingFailureMechanism.GeneralInput.Contribution); - Assert.AreEqual(30000.0, section.PipingFailureMechanism.GeneralInput.Norm); - Assert.AreEqual(double.NaN, section.PipingFailureMechanism.GeneralInput.SectionLength); + Assert.AreEqual(pipingContribution, section.PipingFailureMechanism.SemiProbabilisticInput.Contribution); + Assert.AreEqual(30000.0, section.PipingFailureMechanism.SemiProbabilisticInput.Norm); + Assert.AreEqual(double.NaN, section.PipingFailureMechanism.SemiProbabilisticInput.SectionLength); Assert.AreEqual(100, section.FailureMechanismContribution.Distribution.Sum(d => d.Contribution)); } @@ -175,7 +175,7 @@ assessmentSection.ReferenceLine = referenceLine; // Assert - Assert.AreEqual(Math2D.Length(referenceLine.Points), assessmentSection.PipingFailureMechanism.GeneralInput.SectionLength); + Assert.AreEqual(Math2D.Length(referenceLine.Points), assessmentSection.PipingFailureMechanism.SemiProbabilisticInput.SectionLength); } [Test] @@ -188,7 +188,7 @@ assessmentSection.ReferenceLine = null; // Assert - Assert.AreEqual(double.NaN, assessmentSection.PipingFailureMechanism.GeneralInput.SectionLength); + Assert.AreEqual(double.NaN, assessmentSection.PipingFailureMechanism.SemiProbabilisticInput.SectionLength); } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/GeneralPipingInput.cs =================================================================== diff -u -r019c82bf6273ff150976c8c2ea9b895258951455 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/src/Ringtoets.Piping.Data/GeneralPipingInput.cs (.../GeneralPipingInput.cs) (revision 019c82bf6273ff150976c8c2ea9b895258951455) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/GeneralPipingInput.cs (.../GeneralPipingInput.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -19,10 +19,6 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System; -using MathNet.Numerics.Providers.LinearAlgebra; -using Ringtoets.Common.Data.Properties; - namespace Ringtoets.Piping.Data { /// @@ -31,8 +27,6 @@ /// public class GeneralPipingInput { - private double contribution; - /// /// Initializes a new instance of the class. /// @@ -49,11 +43,6 @@ Gravity = 9.81; MeanDiameter70 = 2.08e-4; SellmeijerReductionFactor = 0.3; - A = 1.0; - B = 350.0; - SectionLength = double.NaN; - Norm = 0; - Contribution = double.NaN; } #region General parameters (used by multiple calculations) @@ -135,51 +124,5 @@ public double SellmeijerReductionFactor { get; private set; } #endregion - - #region Semi-probabilistic parameters - - /// - /// Gets 'a' parameter used to factor in the 'length effect' when determining the - /// maximum tolerated probability of failure. - /// - public double A { get; private set; } - - /// - /// Gets 'b' parameter used to factor in the 'length effect' when determining the - /// maximum tolerated probability of failure. - /// - public double B { get; private set; } - - /// - /// Gets or sets the length of the assessment section. - /// - public double SectionLength { get; set; } - - /// - /// Gets or sets the contribution of piping as a percentage (0-100) to the total of the failure - /// probability of the assessment section. - /// - public double Contribution - { - get - { - return contribution; - } - set - { - if (value <= 0 || value > 100) - { - throw new ArgumentOutOfRangeException("value", Resources.Contribution_Value_should_be_in_interval_0_100); - } - contribution = value; - } - } - - /// - /// Gets or sets the return period to assess for. - /// - public int Norm { get; set; } - - #endregion } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculation.cs =================================================================== diff -u -r1d8e1d2a0bb1d08433a9d6046942fa778b019489 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculation.cs (.../PipingCalculation.cs) (revision 1d8e1d2a0bb1d08433a9d6046942fa778b019489) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculation.cs (.../PipingCalculation.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -38,19 +38,25 @@ /// /// General piping calculation parameters that /// are the same across all piping calculations. + /// General semi-probabilistic parameters that + /// are used in a semi-probabilistic piping assessment. /// When /// is null. - public PipingCalculation(GeneralPipingInput generalInputParameters) + public PipingCalculation(GeneralPipingInput generalInputParameters, SemiProbabilisticPipingInput semiProbabilisticInputParameters) { if (generalInputParameters == null) { throw new ArgumentNullException("generalInputParameters"); } + if (semiProbabilisticInputParameters == null) + { + throw new ArgumentNullException("semiProbabilisticInputParameters"); + } Name = Resources.PipingCalculation_DefaultName; Comments = new InputPlaceholder(Resources.Comments_DisplayName); InputParameters = new PipingInput(generalInputParameters); - SemiProbabilisticParameters = generalInputParameters; + SemiProbabilisticParameters = semiProbabilisticInputParameters; } /// @@ -61,7 +67,7 @@ /// /// Gets the parameters required to perform a semi-probabilistic assessment. /// - public GeneralPipingInput SemiProbabilisticParameters { get; private set; } + public SemiProbabilisticPipingInput SemiProbabilisticParameters { get; private set; } /// /// Gets the input parameters to perform a piping calculation with. Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanism.cs =================================================================== diff -u -r019c82bf6273ff150976c8c2ea9b895258951455 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanism.cs (.../PipingFailureMechanism.cs) (revision 019c82bf6273ff150976c8c2ea9b895258951455) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanism.cs (.../PipingFailureMechanism.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -42,16 +42,17 @@ public PipingFailureMechanism() : base(PipingDataResources.PipingFailureMechanism_DisplayName) { + SemiProbabilisticInput = new SemiProbabilisticPipingInput(); GeneralInput = new GeneralPipingInput(); SurfaceLines = new ObservableList(); SoilProfiles = new ObservableList(); BoundaryConditions = new InputPlaceholder(RingtoetsCommonDataResources.FailureMechanism_BoundaryConditions_DisplayName); var pipingCalculationGroup = new PipingCalculationGroup(PipingDataResources.PipingFailureMechanism_Calculations_DisplayName, false); - pipingCalculationGroup.Children.Add(new PipingCalculation(GeneralInput)); + pipingCalculationGroup.Children.Add(new PipingCalculation(GeneralInput, SemiProbabilisticInput)); CalculationsGroup = pipingCalculationGroup; AssessmentResult = new OutputPlaceholder(RingtoetsCommonDataResources.FailureMechanism_AssessmentResult_DisplayName); } - + public override IEnumerable CalculationItems { get @@ -64,11 +65,11 @@ { get { - return GeneralInput.Contribution; + return SemiProbabilisticInput.Contribution; } set { - GeneralInput.Contribution = value; + SemiProbabilisticInput.Contribution = value; } } @@ -101,5 +102,11 @@ /// Gets the general piping calculation input parameters that apply to each piping calculation. /// public GeneralPipingInput GeneralInput { get; private set; } + + /// + /// Gets the general semi-probabilistic calculation input parameters that apply to each calculation + /// in a semi-probabilistic assessment. + /// + public SemiProbabilisticPipingInput SemiProbabilisticInput { get; set; } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/Ringtoets.Piping.Data.csproj =================================================================== diff -u -r019c82bf6273ff150976c8c2ea9b895258951455 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/src/Ringtoets.Piping.Data/Ringtoets.Piping.Data.csproj (.../Ringtoets.Piping.Data.csproj) (revision 019c82bf6273ff150976c8c2ea9b895258951455) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/Ringtoets.Piping.Data.csproj (.../Ringtoets.Piping.Data.csproj) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -80,6 +80,7 @@ True Resources.resx + Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/SemiProbabilisticPipingInput.cs =================================================================== diff -u --- Ringtoets/Piping/src/Ringtoets.Piping.Data/SemiProbabilisticPipingInput.cs (revision 0) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/SemiProbabilisticPipingInput.cs (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -0,0 +1,62 @@ +using System; +using Ringtoets.Common.Data.Properties; + +namespace Ringtoets.Piping.Data +{ + public class SemiProbabilisticPipingInput + { + private double contribution; + + public SemiProbabilisticPipingInput() + { + A = 1.0; + B = 350.0; + SectionLength = double.NaN; + Norm = 0; + Contribution = double.NaN; + } + + /// + /// Gets 'a' parameter used to factor in the 'length effect' when determining the + /// maximum tolerated probability of failure. + /// + public double A { get; private set; } + + /// + /// Gets 'b' parameter used to factor in the 'length effect' when determining the + /// maximum tolerated probability of failure. + /// + public double B { get; private set; } + + /// + /// Gets or sets the length of the assessment section. + /// + public double SectionLength { get; set; } + + /// + /// Gets or sets the contribution of piping as a percentage (0-100) to the total of the failure + /// probability of the assessment section. + /// + public double Contribution + { + get + { + return contribution; + } + set + { + if (value <= 0 || value > 100) + { + throw new ArgumentOutOfRangeException("value", Resources.Contribution_Value_should_be_in_interval_0_100); + } + contribution = value; + } + } + + /// + /// Gets or sets the return period to assess for. + /// + public int Norm { get; set; } + + } +} \ No newline at end of file Fisheye: Tag de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb refers to a dead (removed) revision in file `Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/GeneralPipingInputProperties.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingFailureMechanismContextProperties.cs =================================================================== diff -u --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingFailureMechanismContextProperties.cs (revision 0) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingFailureMechanismContextProperties.cs (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -0,0 +1,192 @@ +using Core.Common.Gui.Attributes; +using Core.Common.Gui.PropertyBag; +using Core.Common.Utils.Attributes; + +using Ringtoets.Piping.Data; +using Ringtoets.Piping.Forms.PresentationObjects; +using Ringtoets.Piping.Forms.Properties; + +namespace Ringtoets.Piping.Forms.PropertyClasses +{ + /// + /// ViewModel of for properties panel. + /// + public class PipingFailureMechanismContextProperties : ObjectProperties + { + #region Model Factors + + [PropertyOrder(1)] + [ResourcesCategory(typeof(Resources), "Categories_ModelFactors")] + [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_UpliftModelFactor_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_UpliftModelFactor_Description")] + public double UpliftModelFactor + { + get + { + return data.WrappedData.GeneralInput.UpliftModelFactor; + } + } + + [PropertyOrder(2)] + [ResourcesCategory(typeof(Resources), "Categories_ModelFactors")] + [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_SellmeijerModelFactor_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_SellmeijerModelFactor_Description")] + public double SellmeijerModelFactor + { + get + { + return data.WrappedData.GeneralInput.SellmeijerModelFactor; + } + } + + #endregion + + #region General + + [PropertyOrder(11)] + [ResourcesCategory(typeof(Resources), "Categories_General")] + [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_WaterVolumetricWeight_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_WaterVolumetricWeight_Description")] + public double WaterVolumetricWeight + { + get + { + return data.WrappedData.GeneralInput.WaterVolumetricWeight; + } + } + + #endregion + + #region Heave + + [PropertyOrder(21)] + [ResourcesCategory(typeof(Resources), "Categories_Heave")] + [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_CriticalHeaveGradient_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_CriticalHeaveGradient_Description")] + public double CriticalHeaveGradient + { + get + { + return data.WrappedData.GeneralInput.CriticalHeaveGradient; + } + } + + #endregion + + #region Sellmeijer + + [PropertyOrder(31)] + [ResourcesCategory(typeof(Resources), "Categories_Sellmeijer")] + [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_SandParticlesVolumicWeight_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_SandParticlesVolumicWeight_Description")] + public double SandParticlesVolumicWeight + { + get + { + return data.WrappedData.GeneralInput.SandParticlesVolumicWeight; + } + } + + [PropertyOrder(32)] + [ResourcesCategory(typeof(Resources), "Categories_Sellmeijer")] + [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_WhitesDragCoefficient_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_WhitesDragCoefficient_Description")] + public double WhitesDragCoefficient + { + get + { + return data.WrappedData.GeneralInput.WhitesDragCoefficient; + } + } + + [PropertyOrder(33)] + [ResourcesCategory(typeof(Resources), "Categories_Sellmeijer")] + [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_BeddingAngle_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_BeddingAngle_Description")] + public double BeddingAngle + { + get + { + return data.WrappedData.GeneralInput.BeddingAngle; + } + } + + [PropertyOrder(34)] + [ResourcesCategory(typeof(Resources), "Categories_Sellmeijer")] + [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_WaterKinematicViscosity_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_WaterKinematicViscosity_Description")] + public double WaterKinematicViscosity + { + get + { + return data.WrappedData.GeneralInput.WaterKinematicViscosity; + } + } + + [PropertyOrder(35)] + [ResourcesCategory(typeof(Resources), "Categories_Sellmeijer")] + [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_Gravity_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_Gravity_Description")] + public double Gravity + { + get + { + return data.WrappedData.GeneralInput.Gravity; + } + } + + [PropertyOrder(36)] + [ResourcesCategory(typeof(Resources), "Categories_Sellmeijer")] + [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_MeanDiameter70_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_MeanDiameter70_Description")] + public double MeanDiameter70 + { + get + { + return data.WrappedData.GeneralInput.MeanDiameter70; + } + } + + [PropertyOrder(37)] + [ResourcesCategory(typeof(Resources), "Categories_Sellmeijer")] + [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_SellmeijerReductionFactor_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_SellmeijerReductionFactor_Description")] + public double SellmeijerReductionFactor + { + get + { + return data.WrappedData.GeneralInput.SellmeijerReductionFactor; + } + } + + #endregion + + #region Semi-probabilistic parameters + + [PropertyOrder(41)] + [ResourcesCategory(typeof(Resources), "Categories_SemiProbabilisticParameters")] + [ResourcesDisplayName(typeof(Resources), "GeneralPipingInput_A_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_A_Description")] + public double A + { + get + { + return data.WrappedData.SemiProbabilisticInput.A; + } + } + + [PropertyOrder(42)] + [ResourcesCategory(typeof(Resources), "Categories_SemiProbabilisticParameters")] + [ResourcesDisplayName(typeof(Resources), "GenerapPipingInput_B_DisplayName")] + [ResourcesDescription(typeof(Resources), "GeneralPipingInput_B_Description")] + public double B + { + get + { + return data.WrappedData.SemiProbabilisticInput.B; + } + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Ringtoets.Piping.Forms.csproj =================================================================== diff -u -rc0a3ced404197fd781c6fcbcfc21c6676592be57 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Ringtoets.Piping.Forms.csproj (.../Ringtoets.Piping.Forms.csproj) (revision c0a3ced404197fd781c6fcbcfc21c6676592be57) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Ringtoets.Piping.Forms.csproj (.../Ringtoets.Piping.Forms.csproj) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -65,7 +65,7 @@ True Resources.resx - + Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs =================================================================== diff -u -r61fef56583566114a59a3c422aabd76efa01707f -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 61fef56583566114a59a3c422aabd76efa01707f) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -57,10 +57,7 @@ public override IEnumerable GetPropertyInfos() { - yield return new PropertyInfo - { - GetObjectPropertiesData = mechanism => mechanism.WrappedData.GeneralInput - }; + yield return new PropertyInfo(); yield return new PropertyInfo(); yield return new PropertyInfo(); yield return new PropertyInfo(); @@ -350,7 +347,7 @@ private void AddCalculation(PipingFailureMechanism failureMechanism) { - var calculation = new PipingCalculation(failureMechanism.GeneralInput) + var calculation = new PipingCalculation(failureMechanism.GeneralInput, failureMechanism.SemiProbabilisticInput) { Name = NamingHelper.GetUniqueName(failureMechanism.CalculationsGroup.Children, PipingDataResources.PipingCalculation_DefaultName, c => c.Name) }; @@ -558,7 +555,7 @@ PipingFormsResources.PipingCalculationGroup_Add_PipingCalculation_ToolTip, PipingFormsResources.PipingIcon, (o, args) => { - var calculation = new PipingCalculation(nodeData.PipingFailureMechanism.GeneralInput) + var calculation = new PipingCalculation(nodeData.PipingFailureMechanism.GeneralInput, nodeData.PipingFailureMechanism.SemiProbabilisticInput) { Name = NamingHelper.GetUniqueName(group.Children, PipingDataResources.PipingCalculation_DefaultName, c => c.Name) }; Index: Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingSemiProbabilisticCalculationService.cs =================================================================== diff -u -r74e3dea657b90b371e265914bee337c76e509d93 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingSemiProbabilisticCalculationService.cs (.../PipingSemiProbabilisticCalculationService.cs) (revision 74e3dea657b90b371e265914bee337c76e509d93) +++ Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingSemiProbabilisticCalculationService.cs (.../PipingSemiProbabilisticCalculationService.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -22,17 +22,20 @@ /// /// Calculates the semi-probabilistic results given a with . /// - /// - /// + /// The calculation which is used as input for the semi-probabilistic assessment. If the semi- + /// probabilistic calculation is successful, is set. + /// Thrown when calculation has no output from a piping calculation. public static void Calculate(PipingCalculation calculation) { - GeneralPipingInput semiProbabilisticParameters = calculation.SemiProbabilisticParameters; - var result = calculation.Output; + ValidateOutputOnCalculation(calculation); + SemiProbabilisticPipingInput semiProbabilisticParameters = calculation.SemiProbabilisticParameters; + var pipingOutput = calculation.Output; + var calculator = new PipingSemiProbabilisticCalculationService( - result.SellmeijerFactorOfSafety, - result.UpliftFactorOfSafety, - result.HeaveFactorOfSafety, + pipingOutput.SellmeijerFactorOfSafety, + pipingOutput.UpliftFactorOfSafety, + pipingOutput.HeaveFactorOfSafety, semiProbabilisticParameters.Norm, semiProbabilisticParameters.A, semiProbabilisticParameters.B, @@ -45,6 +48,14 @@ }; } + private static void ValidateOutputOnCalculation(PipingCalculation calculation) + { + if (!calculation.HasOutput) + { + throw new ArgumentNullException("calculation", "Cannot perform a semi-probabilistic calculation without output form the piping kernel."); + } + } + /// /// Creates a new instance of . /// Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/GeneralPipingInputTest.cs =================================================================== diff -u -r019c82bf6273ff150976c8c2ea9b895258951455 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/GeneralPipingInputTest.cs (.../GeneralPipingInputTest.cs) (revision 019c82bf6273ff150976c8c2ea9b895258951455) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/GeneralPipingInputTest.cs (.../GeneralPipingInputTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -26,13 +26,6 @@ Assert.AreEqual(9.81, inputParameters.Gravity); Assert.AreEqual(2.08e-4, inputParameters.MeanDiameter70); Assert.AreEqual(0.3, inputParameters.SellmeijerReductionFactor); - - Assert.AreEqual(1.0, inputParameters.A); - Assert.AreEqual(350.0, inputParameters.B); - - Assert.IsNaN(inputParameters.SectionLength); - Assert.AreEqual(0, inputParameters.Norm); - Assert.IsNaN(inputParameters.Contribution); } } } \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/IPipingCalculationItemExtensionsTest.cs =================================================================== diff -u -r1c01ea681887e96b5b80fb7d23680a4eeac9bd50 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/IPipingCalculationItemExtensionsTest.cs (.../IPipingCalculationItemExtensionsTest.cs) (revision 1c01ea681887e96b5b80fb7d23680a4eeac9bd50) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/IPipingCalculationItemExtensionsTest.cs (.../IPipingCalculationItemExtensionsTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -12,7 +12,7 @@ public void GetPipingCalculations_FromPipingCalculation_ReturnThatCalculationInstance() { // Setup - IPipingCalculationItem calculation = new PipingCalculation(new GeneralPipingInput()); + IPipingCalculationItem calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); // Call IEnumerable result = calculation.GetPipingCalculations(); @@ -57,10 +57,11 @@ { // Setup var generalPipingInput = new GeneralPipingInput(); - var calculation1 = new PipingCalculation(generalPipingInput); - var calculation2 = new PipingCalculation(generalPipingInput); - var calculation3 = new PipingCalculation(generalPipingInput); - var calculation4 = new PipingCalculation(generalPipingInput); + var semiProbabilisticInput = new SemiProbabilisticPipingInput(); + var calculation1 = new PipingCalculation(generalPipingInput, semiProbabilisticInput); + var calculation2 = new PipingCalculation(generalPipingInput, semiProbabilisticInput); + var calculation3 = new PipingCalculation(generalPipingInput, semiProbabilisticInput); + var calculation4 = new PipingCalculation(generalPipingInput, semiProbabilisticInput); var subsubGroup = new PipingCalculationGroup(); subsubGroup.Children.Add(calculation4); @@ -111,8 +112,9 @@ { // Setup var generalInputParameters = new GeneralPipingInput(); - var calculation1 = new PipingCalculation(generalInputParameters); - var calculation2 = new PipingCalculation(generalInputParameters); + var semiProbabilisticInput = new SemiProbabilisticPipingInput(); + var calculation1 = new PipingCalculation(generalInputParameters, semiProbabilisticInput); + var calculation2 = new PipingCalculation(generalInputParameters, semiProbabilisticInput); IEnumerable calculationArray = new[] { calculation1, calculation2 }; // Call @@ -142,11 +144,12 @@ { // Setup var generalInputParameters = new GeneralPipingInput(); - var rootcalculation = new PipingCalculation(generalInputParameters); - var calculation1 = new PipingCalculation(generalInputParameters); - var calculation2 = new PipingCalculation(generalInputParameters); - var calculation3 = new PipingCalculation(generalInputParameters); - var calculation4 = new PipingCalculation(generalInputParameters); + var semiProbabilisticInput = new SemiProbabilisticPipingInput(); + var rootcalculation = new PipingCalculation(generalInputParameters, semiProbabilisticInput); + var calculation1 = new PipingCalculation(generalInputParameters, semiProbabilisticInput); + var calculation2 = new PipingCalculation(generalInputParameters, semiProbabilisticInput); + var calculation3 = new PipingCalculation(generalInputParameters, semiProbabilisticInput); + var calculation4 = new PipingCalculation(generalInputParameters, semiProbabilisticInput); var subsubGroup = new PipingCalculationGroup(); subsubGroup.Children.Add(calculation4); Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationGroupTest.cs =================================================================== diff -u -r1c01ea681887e96b5b80fb7d23680a4eeac9bd50 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationGroupTest.cs (.../PipingCalculationGroupTest.cs) (revision 1c01ea681887e96b5b80fb7d23680a4eeac9bd50) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationGroupTest.cs (.../PipingCalculationGroupTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -87,7 +87,7 @@ public void Children_AddPipingCalculation_CalculationAddedToCollection() { // Setup - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var group = new PipingCalculationGroup(); @@ -103,7 +103,7 @@ public void Children_RemovePipingCalculation_CalculationRemovedFromCollection() { // Setup - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var group = new PipingCalculationGroup(); group.Children.Add(calculation); @@ -123,8 +123,9 @@ { // Setup var generalInputParameters = new GeneralPipingInput(); - var calculation = new PipingCalculation(generalInputParameters); - var calculationToInsert = new PipingCalculation(generalInputParameters); + var semiProbabilisticInputParameters = new SemiProbabilisticPipingInput(); + var calculation = new PipingCalculation(generalInputParameters, semiProbabilisticInputParameters); + var calculationToInsert = new PipingCalculation(generalInputParameters, semiProbabilisticInputParameters); var group = new PipingCalculationGroup(); group.Children.Add(calculation); Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationTest.cs =================================================================== diff -u -r74e3dea657b90b371e265914bee337c76e509d93 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationTest.cs (.../PipingCalculationTest.cs) (revision 74e3dea657b90b371e265914bee337c76e509d93) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationTest.cs (.../PipingCalculationTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -22,9 +22,10 @@ { // Setup var generalInputParameters = new GeneralPipingInput(); + var semiProbabilisticInputParameters = new SemiProbabilisticPipingInput(); // Call - var calculation = new PipingCalculation(generalInputParameters); + var calculation = new PipingCalculation(generalInputParameters, semiProbabilisticInputParameters); // Assert Assert.IsInstanceOf(calculation); @@ -43,13 +44,23 @@ public void Constructor_GeneralPipingInputIsNull_ThrowArgumentNullException() { // Call - TestDelegate call = () => new PipingCalculation(null); + TestDelegate call = () => new PipingCalculation(null, new SemiProbabilisticPipingInput()); // Assert Assert.Throws(call); } [Test] + public void Constructor_SemiProbabilisticPipingInputIsNull_ThrowArgumentNullException() + { + // Call + TestDelegate call = () => new PipingCalculation(new GeneralPipingInput(), null); + + // Assert + Assert.Throws(call); + } + + [Test] public void Notify_SingleListenerAttached_ListenerIsNotified() { // Setup @@ -58,7 +69,7 @@ mockRepository.ReplayAll(); - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); calculation.Attach(observer); @@ -74,7 +85,7 @@ observer.Expect(o => o.UpdateObserver()).Repeat.Never(); mockRepository.ReplayAll(); - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); calculation.Attach(observer); calculation.Detach(observer); @@ -95,7 +106,7 @@ mockRepository.ReplayAll(); - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); calculation.Attach(observerA); calculation.Attach(observerB); @@ -116,7 +127,7 @@ mockRepository.ReplayAll(); - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); calculation.Attach(observerA); calculation.Attach(observerB); @@ -132,7 +143,7 @@ // Setup var observer = mockRepository.StrictMock(); - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); // Call & Assert calculation.Detach(observer); @@ -142,7 +153,7 @@ public void ClearOutput_Always_SetsOutputToNull() { // Setup - var data = new PipingCalculation(new GeneralPipingInput()) + var data = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Output = new TestPipingOutput() }; @@ -158,7 +169,7 @@ public void HasOutput_OutputNull_ReturnsFalse() { // Setup - var data = new PipingCalculation(new GeneralPipingInput()) + var data = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Output = null }; @@ -171,7 +182,7 @@ public void HasOutput_OutputSet_ReturnsTrue() { // Setup - var data = new PipingCalculation(new GeneralPipingInput()) + var data = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Output = new TestPipingOutput() }; Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismTest.cs =================================================================== diff -u -r1c01ea681887e96b5b80fb7d23680a4eeac9bd50 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismTest.cs (.../PipingFailureMechanismTest.cs) (revision 1c01ea681887e96b5b80fb7d23680a4eeac9bd50) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismTest.cs (.../PipingFailureMechanismTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -137,7 +137,7 @@ public void Calculations_AddPipingCalculation_ItemIsAddedToCollection() { // Setup - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var failureMechanism = new PipingFailureMechanism(); @@ -152,7 +152,7 @@ public void Calculations_RemovePipingCalculation_ItemIsRemovedFromCollection() { // Setup - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var failureMechanism = new PipingFailureMechanism(); failureMechanism.CalculationsGroup.Children.Add(calculation); Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj =================================================================== diff -u -r1d8e1d2a0bb1d08433a9d6046942fa778b019489 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj (.../Ringtoets.Piping.Data.Test.csproj) (revision 1d8e1d2a0bb1d08433a9d6046942fa778b019489) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj (.../Ringtoets.Piping.Data.Test.csproj) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -78,6 +78,7 @@ + Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/SemiProbabilisticPipingInputTest.cs =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/SemiProbabilisticPipingInputTest.cs (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/SemiProbabilisticPipingInputTest.cs (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -0,0 +1,25 @@ +using NUnit.Framework; + +namespace Ringtoets.Piping.Data.Test +{ + [TestFixture] + public class SemiProbabilisticPipingInputTest + { + [Test] + public void Constructor_DefaultPropertiesSet() + { + // Call + var inputParameters = new SemiProbabilisticPipingInput(); + + // Assert + + Assert.AreEqual(1.0, inputParameters.A); + Assert.AreEqual(350.0, inputParameters.B); + + Assert.IsNaN(inputParameters.SectionLength); + Assert.AreEqual(0, inputParameters.Norm); + Assert.IsNaN(inputParameters.Contribution); + + } + } +} \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationFactory.cs =================================================================== diff -u -rc0a3ced404197fd781c6fcbcfc21c6676592be57 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationFactory.cs (.../PipingCalculationFactory.cs) (revision c0a3ced404197fd781c6fcbcfc21c6676592be57) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationFactory.cs (.../PipingCalculationFactory.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -10,7 +10,7 @@ { public static PipingCalculation CreateCalculationWithInvalidData() { - return new PipingCalculation(new GeneralPipingInput()); + return new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); } public static PipingCalculation CreateCalculationWithValidInput() @@ -51,7 +51,7 @@ { DesignWaterLevel = (RoundedDouble) 1.0 }; - return new PipingCalculation(new GeneralPipingInput()) + return new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { InputParameters = { Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PresentationObjects/PipingCalculationContextTest.cs =================================================================== diff -u -r1c01ea681887e96b5b80fb7d23680a4eeac9bd50 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PresentationObjects/PipingCalculationContextTest.cs (.../PipingCalculationContextTest.cs) (revision 1c01ea681887e96b5b80fb7d23680a4eeac9bd50) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PresentationObjects/PipingCalculationContextTest.cs (.../PipingCalculationContextTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -27,7 +27,7 @@ { new TestPipingSoilProfile() }; - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var mocks = new MockRepository(); var pipingFailureMechanismMock = mocks.StrictMock(); @@ -59,7 +59,7 @@ { new TestPipingSoilProfile() }; - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var mocks = new MockRepository(); var assessmentSection = mocks.StrictMock(); mocks.ReplayAll(); @@ -83,7 +83,7 @@ { new TestPipingSoilProfile() }; - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var mocks = new MockRepository(); var pipingFailureMechanismMock = mocks.StrictMock(); mocks.ReplayAll(); @@ -111,7 +111,7 @@ { new TestPipingSoilProfile() }; - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var pipingFailureMechanismMock = mocks.StrictMock(); var assessmentSectionBaseMock = mocks.StrictMock(); @@ -142,7 +142,7 @@ { new TestPipingSoilProfile() }; - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var pipingFailureMechanismMock = mocks.StrictMock(); var assessmentSectionBaseMock = mocks.StrictMock(); Fisheye: Tag de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/GeneralPipingInputPropertiesTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingCalculationContextPropertiesTest.cs =================================================================== diff -u -r1c01ea681887e96b5b80fb7d23680a4eeac9bd50 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingCalculationContextPropertiesTest.cs (.../PipingCalculationContextPropertiesTest.cs) (revision 1c01ea681887e96b5b80fb7d23680a4eeac9bd50) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingCalculationContextPropertiesTest.cs (.../PipingCalculationContextPropertiesTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -31,7 +31,7 @@ { // Setup const string name = ""; - var calculation = new PipingCalculation(new GeneralPipingInput()) + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Name = name }; @@ -65,7 +65,7 @@ var assessmentSectionBaseMock = mocks.StrictMock(); mocks.ReplayAll(); - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); calculation.Attach(projectObserver); var properties = new PipingCalculationContextProperties @@ -96,7 +96,7 @@ var assessmentSectionBaseMock = mocks.StrictMock(); mocks.ReplayAll(); - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); calculation.Attach(projectObserver); var properties = new PipingCalculationContextProperties Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingFailureMechanismContextPropertiesTest.cs =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingFailureMechanismContextPropertiesTest.cs (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PropertyClasses/PipingFailureMechanismContextPropertiesTest.cs (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -0,0 +1,57 @@ +using Core.Common.Gui.PropertyBag; + +using NUnit.Framework; +using Rhino.Mocks; +using Ringtoets.Common.Data; +using Ringtoets.Piping.Data; +using Ringtoets.Piping.Forms.PresentationObjects; +using Ringtoets.Piping.Forms.PropertyClasses; + +namespace Ringtoets.Piping.Forms.Test.PropertyClasses +{ + [TestFixture] + public class PipingFailureMechanismContextPropertiesTest + { + [Test] + public void Constructor_ExpectedValues() + { + // Setup + + // Call + var properties = new PipingFailureMechanismContextProperties(); + + // Assert + Assert.IsInstanceOf>(properties); + } + + [Test] + public void Data_SetNewPipingFailureMechanismContextInstance_ReturnCorrectPropertyValues() + { + // Setup + var failureMechanism = new PipingFailureMechanism(); + var properties = new PipingFailureMechanismContextProperties(); + + // Call + properties.Data = new PipingFailureMechanismContext(failureMechanism, new MockRepository().StrictMock()); + + // Assert + Assert.AreEqual(failureMechanism.GeneralInput.UpliftModelFactor, properties.UpliftModelFactor); + Assert.AreEqual(failureMechanism.GeneralInput.SellmeijerModelFactor, properties.SellmeijerModelFactor); + + Assert.AreEqual(failureMechanism.GeneralInput.WaterVolumetricWeight, properties.WaterVolumetricWeight); + + Assert.AreEqual(failureMechanism.GeneralInput.CriticalHeaveGradient, properties.CriticalHeaveGradient); + + Assert.AreEqual(failureMechanism.GeneralInput.SandParticlesVolumicWeight, properties.SandParticlesVolumicWeight); + Assert.AreEqual(failureMechanism.GeneralInput.WhitesDragCoefficient, properties.WhitesDragCoefficient); + Assert.AreEqual(failureMechanism.GeneralInput.BeddingAngle, properties.BeddingAngle); + Assert.AreEqual(failureMechanism.GeneralInput.WaterKinematicViscosity, properties.WaterKinematicViscosity); + Assert.AreEqual(failureMechanism.GeneralInput.Gravity, properties.Gravity); + Assert.AreEqual(failureMechanism.GeneralInput.MeanDiameter70, properties.MeanDiameter70); + Assert.AreEqual(failureMechanism.GeneralInput.SellmeijerReductionFactor, properties.SellmeijerReductionFactor); + + Assert.AreEqual(failureMechanism.SemiProbabilisticInput.A, properties.A); + Assert.AreEqual(failureMechanism.SemiProbabilisticInput.B, properties.B); + } + } +} \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Ringtoets.Piping.Forms.Test.csproj =================================================================== diff -u -rc0a3ced404197fd781c6fcbcfc21c6676592be57 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Ringtoets.Piping.Forms.Test.csproj (.../Ringtoets.Piping.Forms.Test.csproj) (revision c0a3ced404197fd781c6fcbcfc21c6676592be57) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Ringtoets.Piping.Forms.Test.csproj (.../Ringtoets.Piping.Forms.Test.csproj) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -61,7 +61,7 @@ - + Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationContextTreeNodeInfoTest.cs =================================================================== diff -u -r3c10891728420f1c0aa0071574bbfb149710c556 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationContextTreeNodeInfoTest.cs (.../PipingCalculationContextTreeNodeInfoTest.cs) (revision 3c10891728420f1c0aa0071574bbfb149710c556) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationContextTreeNodeInfoTest.cs (.../PipingCalculationContextTreeNodeInfoTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -56,7 +56,7 @@ { // Setup var testname = "testName"; - var calculation = new PipingCalculation(new GeneralPipingInput()) + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Name = testname }; @@ -99,7 +99,7 @@ public void EnsureVisibleOnCreate_Always_ReturnsTrue() { // Setup - var calculation = new PipingCalculation(new GeneralPipingInput()) + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Output = new PipingOutput(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) }; @@ -135,7 +135,7 @@ public void ChildNodeObjects_WithOutputData_ReturnOutputChildNode() { // Setup - var calculation = new PipingCalculation(new GeneralPipingInput()) + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Output = new PipingOutput(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) }; @@ -178,7 +178,7 @@ var assessmentSectionBaseMock = mocks.StrictMock(); mocks.ReplayAll(); - var pipingCalculationContext = new PipingCalculationContext(new PipingCalculation(new GeneralPipingInput()), + var pipingCalculationContext = new PipingCalculationContext(new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()), Enumerable.Empty(), Enumerable.Empty(), pipingFailureMechanismMock, @@ -219,7 +219,7 @@ var observerMock = mocks.StrictMock(); observerMock.Expect(o => o.UpdateObserver()); - var calculation = new PipingCalculation(new GeneralPipingInput()) + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Name = "" }; @@ -260,7 +260,7 @@ // Setup var gui = mocks.StrictMock(); var treeViewControlMock = mocks.StrictMock(); - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var pipingFailureMechanismMock = mocks.StrictMock(); var assessmentSectionBaseMock = mocks.StrictMock(); var nodeData = new PipingCalculationContext(calculation, @@ -291,7 +291,7 @@ { var gui = mocks.StrictMock(); var treeViewControlMock = mocks.StrictMock(); - var calculation = new PipingCalculation(new GeneralPipingInput()) + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Output = new TestPipingOutput() }; @@ -329,7 +329,7 @@ var treeViewControlMock = mocks.StrictMock(); var pipingFailureMechanismMock = mocks.StrictMock(); var assessmentSectionBaseMock = mocks.StrictMock(); - var nodeData = new PipingCalculationContext(new PipingCalculation(new GeneralPipingInput()), + var nodeData = new PipingCalculationContext(new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()), Enumerable.Empty(), Enumerable.Empty(), pipingFailureMechanismMock, @@ -370,7 +370,7 @@ public void CanRemove_ParentIsPipingCalculationGroupWithCalculation_ReturnTrue(bool groupNameEditable) { // Setup - var calculationToBeRemoved = new PipingCalculation(new GeneralPipingInput()); + var calculationToBeRemoved = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var group = new PipingCalculationGroup("", groupNameEditable); group.Children.Add(calculationToBeRemoved); @@ -402,7 +402,7 @@ public void CanRemove_ParentIsPipingCalculationGroupWithoutCalculation_ReturnFalse(bool groupNameEditable) { // Setup - var calculationToBeRemoved = new PipingCalculation(new GeneralPipingInput()); + var calculationToBeRemoved = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var group = new PipingCalculationGroup("", groupNameEditable); var pipingFailureMechanismMock = mocks.StrictMock(); @@ -436,7 +436,7 @@ var assessmentSectionBaseMock = mocks.StrictMock(); mocks.ReplayAll(); - var nodeMock = new PipingCalculationContext(new PipingCalculation(new GeneralPipingInput()), + var nodeMock = new PipingCalculationContext(new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()), Enumerable.Empty(), Enumerable.Empty(), pipingFailureMechanismMock, @@ -459,11 +459,11 @@ var observer = mocks.StrictMock(); observer.Expect(o => o.UpdateObserver()); - var elementToBeRemoved = new PipingCalculation(new GeneralPipingInput()); + var elementToBeRemoved = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var group = new PipingCalculationGroup(); group.Children.Add(elementToBeRemoved); - group.Children.Add(new PipingCalculation(new GeneralPipingInput())); + group.Children.Add(new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput())); group.Attach(observer); var pipingFailureMechanismMock = mocks.StrictMock(); @@ -503,7 +503,7 @@ var mainWindow = mocks.DynamicMock(); var observer = mocks.StrictMock(); var treeViewControlMock = mocks.StrictMock(); - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var pipingFailureMechanismMock = mocks.StrictMock(); var assessmentSectionBaseMock = mocks.StrictMock(); var pipingCalculationContext = new PipingCalculationContext(calculation, @@ -562,7 +562,7 @@ var gui = mocks.DynamicMock(); var observer = mocks.StrictMock(); var treeViewControlMock = mocks.StrictMock(); - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var pipingFailureMechanismMock = mocks.StrictMock(); var assessmentSectionBaseMock = mocks.StrictMock(); var pipingCalculationContext = new PipingCalculationContext(calculation, @@ -606,7 +606,7 @@ var observer = mocks.StrictMock(); var treeViewControlMock = mocks.StrictMock(); var calculateContextMenuItemIndex = 1; - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var validPipingInput = new TestPipingInput(); var pipingFailureMechanismMock = mocks.StrictMock(); var assessmentSectionBaseMock = mocks.StrictMock(); @@ -679,7 +679,7 @@ var gui = mocks.DynamicMock(); var observer = mocks.StrictMock(); var treeViewControlMock = mocks.StrictMock(); - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var pipingFailureMechanismMock = mocks.StrictMock(); var assessmentSectionBaseMock = mocks.StrictMock(); var pipingCalculationContext = new PipingCalculationContext(calculation, Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -rc9fd032c799e1325decbec83d99e94851a954816 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision c9fd032c799e1325decbec83d99e94851a954816) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -144,7 +144,7 @@ // Setup var calculationItem = mocks.StrictMock(); - var childCalculation = new PipingCalculation(new GeneralPipingInput()); + var childCalculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); var childGroup = new PipingCalculationGroup(); @@ -190,7 +190,7 @@ var group = new PipingCalculationGroup(); parentGroup.Children.Add(group); - group.Children.Add(new PipingCalculation(new GeneralPipingInput()) + group.Children.Add(new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Output = new TestPipingOutput() }); @@ -308,7 +308,7 @@ var gui = mocks.StrictMock(); var group = new PipingCalculationGroup(); - group.Children.Add(new PipingCalculation(new GeneralPipingInput()) + group.Children.Add(new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Output = new TestPipingOutput() }); @@ -415,7 +415,7 @@ var gui = mocks.StrictMock(); var group = new PipingCalculationGroup(); - group.Children.Add(new PipingCalculation(new GeneralPipingInput()) + group.Children.Add(new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Output = new TestPipingOutput() }); @@ -1380,7 +1380,7 @@ switch (type) { case PipingCalculationItemType.Calculation: - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); if (initialName != null) { calculation.Name = initialName; Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingFailureMechanismTreeNodeInfoTest.cs =================================================================== diff -u -r61fef56583566114a59a3c422aabd76efa01707f -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingFailureMechanismTreeNodeInfoTest.cs (.../PipingFailureMechanismTreeNodeInfoTest.cs) (revision 61fef56583566114a59a3c422aabd76efa01707f) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingFailureMechanismTreeNodeInfoTest.cs (.../PipingFailureMechanismTreeNodeInfoTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -103,8 +103,9 @@ var pipingFailureMechanism = new PipingFailureMechanism(); var generalInputParameters = new GeneralPipingInput(); - pipingFailureMechanism.CalculationsGroup.Children.Add(new PipingCalculation(generalInputParameters)); - pipingFailureMechanism.CalculationsGroup.Children.Add(new PipingCalculation(generalInputParameters)); + var semiProbabilisticInputParameters = new SemiProbabilisticPipingInput(); + pipingFailureMechanism.CalculationsGroup.Children.Add(new PipingCalculation(generalInputParameters, semiProbabilisticInputParameters)); + pipingFailureMechanism.CalculationsGroup.Children.Add(new PipingCalculation(generalInputParameters, semiProbabilisticInputParameters)); var pipingFailureMechanismContext = new PipingFailureMechanismContext(pipingFailureMechanism, assessmentSection); @@ -158,11 +159,12 @@ var treeViewControl = mocks.StrictMock(); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); var generalInputParameters = new GeneralPipingInput(); - var pipingCalculation1 = new PipingCalculation(generalInputParameters) + var semiProbabilisticInputParameters = new SemiProbabilisticPipingInput(); + var pipingCalculation1 = new PipingCalculation(generalInputParameters, semiProbabilisticInputParameters) { Output = new TestPipingOutput() }; - var pipingCalculation2 = new PipingCalculation(generalInputParameters) + var pipingCalculation2 = new PipingCalculation(generalInputParameters, semiProbabilisticInputParameters) { Output = new TestPipingOutput() }; @@ -320,7 +322,7 @@ // Setup var treeViewControl = mocks.StrictMock(); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var pipingCalculation = new PipingCalculation(new GeneralPipingInput()) + var pipingCalculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()) { Output = new TestPipingOutput() }; @@ -436,7 +438,7 @@ var failureMechanism = new PipingFailureMechanism(); failureMechanism.CalculationsGroup.Children.Clear(); - failureMechanism.CalculationsGroup.Children.Add(new PipingCalculation(new GeneralPipingInput())); + failureMechanism.CalculationsGroup.Children.Add(new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput())); var assessmentSection = mocks.Stub(); var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PipingGuiPluginTest.cs =================================================================== diff -u -r6a1df79cc36617a42d0016f9b7a9271020a2196e -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PipingGuiPluginTest.cs (.../PipingGuiPluginTest.cs) (revision 6a1df79cc36617a42d0016f9b7a9271020a2196e) +++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/PipingGuiPluginTest.cs (.../PipingGuiPluginTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -62,20 +62,17 @@ { // call var mocks = new MockRepository(); - var assessmentSection = mocks.Stub(); mocks.ReplayAll(); PropertyInfo[] propertyInfos = guiPlugin.GetPropertyInfos().ToArray(); // assert Assert.AreEqual(7, propertyInfos.Length); - var pipingFailureMechanism = new PipingFailureMechanism(); - var pipingFailureMechanismContext = new PipingFailureMechanismContext(pipingFailureMechanism, assessmentSection); var pipingFailureMechanismContextProperties = propertyInfos.Single(pi => pi.DataType == typeof(PipingFailureMechanismContext)); - Assert.AreEqual(typeof(GeneralPipingInputProperties), pipingFailureMechanismContextProperties.PropertyObjectType); + Assert.AreEqual(typeof(PipingFailureMechanismContextProperties), pipingFailureMechanismContextProperties.PropertyObjectType); Assert.IsNull(pipingFailureMechanismContextProperties.AdditionalDataCheck); - Assert.AreSame(pipingFailureMechanism.GeneralInput, pipingFailureMechanismContextProperties.GetObjectPropertiesData(pipingFailureMechanismContext)); + Assert.IsNull(pipingFailureMechanismContextProperties.GetObjectPropertiesData); Assert.IsNull(pipingFailureMechanismContextProperties.AfterCreate); var pipingCalculationContextProperties = propertyInfos.Single(pi => pi.DataType == typeof(PipingCalculationContext)); Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationActivityTest.cs =================================================================== diff -u -r1c01ea681887e96b5b80fb7d23680a4eeac9bd50 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationActivityTest.cs (.../PipingCalculationActivityTest.cs) (revision 1c01ea681887e96b5b80fb7d23680a4eeac9bd50) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationActivityTest.cs (.../PipingCalculationActivityTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -20,7 +20,7 @@ public void ParameteredConstructor_ExpectedValues() { // Setup - var calculation = new PipingCalculation(new GeneralPipingInput()); + var calculation = new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput()); // Call var activity = new PipingCalculationActivity(calculation); Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingSemiProbabilisticCalculationServiceTest.cs =================================================================== diff -u -r74e3dea657b90b371e265914bee337c76e509d93 -rde18e9d8a0324e9345f412eb6c1ffeed4f86f2fb --- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingSemiProbabilisticCalculationServiceTest.cs (.../PipingSemiProbabilisticCalculationServiceTest.cs) (revision 74e3dea657b90b371e265914bee337c76e509d93) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingSemiProbabilisticCalculationServiceTest.cs (.../PipingSemiProbabilisticCalculationServiceTest.cs) (revision de18e9d8a0324e9345f412eb6c1ffeed4f86f2fb) @@ -1,4 +1,6 @@ -using NUnit.Framework; +using System; +using Core.Common.TestUtil; +using NUnit.Framework; using Ringtoets.Piping.Data; namespace Ringtoets.Piping.Service.Test @@ -150,17 +152,18 @@ } [Test] - public void Transform_CompleteInput_ReturnsPipingSemiProbabilisticOutputWithValues() + public void Calculate_CompleteInput_ReturnsPipingSemiProbabilisticOutputWithValues() { // Setup - var generalInput = new GeneralPipingInput + + var semiProbabilisticPipingInput = new SemiProbabilisticPipingInput { SectionLength = 6000, Norm = 30000, Contribution = 24 }; var pipingOutput = new PipingOutput(double.NaN, 1.2, double.NaN, 0.6, double.NaN, 0.9); - var pipingCalculation = new PipingCalculation(generalInput) + var pipingCalculation = new PipingCalculation(new GeneralPipingInput(), semiProbabilisticPipingInput) { Output = pipingOutput }; @@ -171,5 +174,19 @@ // Assert Assert.AreEqual(1.134713444, pipingCalculation.SemiProbabilisticOutput.PipingFactorOfSafety, 1e-8); } + + [Test] + public void Calculate_MissingOutput_ThrowsArgumentNullException() + { + // Setup + var generalInput = new GeneralPipingInput(); + var pipingCalculation = new PipingCalculation(generalInput, new SemiProbabilisticPipingInput()); + + // Call + TestDelegate test = () => PipingSemiProbabilisticCalculationService.Calculate(pipingCalculation); + + // Assert + TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "Cannot perform a semi-probabilistic calculation without output form the piping kernel."); + } } } \ No newline at end of file