Index: Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoAssessmentSectionCommand.cs =================================================================== diff -u -rb53320286e086524c6003dc6e47af798ee3935be -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoAssessmentSectionCommand.cs (.../AddNewDemoAssessmentSectionCommand.cs) (revision b53320286e086524c6003dc6e47af798ee3935be) +++ Demo/Ringtoets/src/Demo.Ringtoets/Commands/AddNewDemoAssessmentSectionCommand.cs (.../AddNewDemoAssessmentSectionCommand.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -134,8 +134,6 @@ }; calculation.InputParameters.SurfaceLine = pipingFailureMechanism.SurfaceLines.First(sl => sl.Name == "PK001_0001"); - pipingFailureMechanism.CalculationsGroup.AddCalculationScenariosToFailureMechanismSectionResult(pipingFailureMechanism); - var stochasticSoilModel = pipingFailureMechanism.StochasticSoilModels.First(sm => sm.Name == "PK001_0001_Piping"); calculation.InputParameters.StochasticSoilModel = stochasticSoilModel; calculation.InputParameters.StochasticSoilProfile = stochasticSoilModel.StochasticSoilProfiles.First(sp => sp.SoilProfile.Name == "W1-6_0_1D1"); Index: Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoAssessmentSectionCommandTest.cs =================================================================== diff -u -r30d9e76f4066582f563d98040f35270f4c3dddef -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoAssessmentSectionCommandTest.cs (.../AddNewDemoAssessmentSectionCommandTest.cs) (revision 30d9e76f4066582f563d98040f35270f4c3dddef) +++ Demo/Ringtoets/test/Demo.Ringtoets.Test/Commands/AddNewDemoAssessmentSectionCommandTest.cs (.../AddNewDemoAssessmentSectionCommandTest.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.IO; using System.Linq; using Core.Common.Base; @@ -90,7 +91,10 @@ .OfType() .First(); AssertCalculationAbleToCalculate(pipingCalculationScenario); - AssertCalculationInFailureMechanismSectionResult(pipingCalculationScenario, demoAssessmentSection.PipingFailureMechanism.SectionResults.ToArray()); + AssertCalculationInFailureMechanismSectionResult( + pipingCalculationScenario, + demoAssessmentSection.PipingFailureMechanism.SectionResults.ToArray(), + demoAssessmentSection.PipingFailureMechanism.Calculations.OfType()); Assert.AreEqual(1, demoAssessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Count); GrassCoverErosionInwardsCalculation grassCoverErosionInwardsCalculation = demoAssessmentSection.GrassCoverErosionInwards @@ -113,15 +117,15 @@ mocks.VerifyAll(); } - private void AssertCalculationInFailureMechanismSectionResult(PipingCalculationScenario calculation, PipingFailureMechanismSectionResult[] sectionResults) + private void AssertCalculationInFailureMechanismSectionResult(PipingCalculationScenario calculation, PipingFailureMechanismSectionResult[] sectionResults, IEnumerable calculations) { Assert.AreEqual(283, sectionResults.Length); var sectionResultWithCalculation = sectionResults[22]; CollectionAssert.AreEqual(new[] { calculation - }, sectionResultWithCalculation.CalculationScenarios); + }, sectionResultWithCalculation.GetCalculationScenarios(calculations)); } private void AssertValuesOnHydraulicBoundaryLocations(HydraulicBoundaryLocation[] hydraulicBoundaryLocations) Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -69,10 +69,18 @@ /// public virtual IFailureMechanism FailureMechanism { + protected get + { + return failureMechanism; + } set { failureMechanism = value; failureMechanismObserver.Observable = failureMechanism; + if (failureMechanism != null) + { + UpdataDataGridViewDataSource(); + } } } @@ -133,7 +141,12 @@ { UpdateFailureMechanismSectionResultsObservers(); DataGridViewControl.EndEdit(); - DataGridViewControl.SetDataSource(failureMechanismSectionResult.Select(CreateFailureMechanismSectionResultRow).ToList()); + DataGridViewControl.SetDataSource( + failureMechanismSectionResult + .Select(CreateFailureMechanismSectionResultRow) + .Where(sr => sr != null) + .ToList() + ); } /// Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/ClosingStructureFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/ClosingStructureFailureMechanism.cs (.../ClosingStructureFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/ClosingStructureFailureMechanism.cs (.../ClosingStructureFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/DuneErosionFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/DuneErosionFailureMechanism.cs (.../DuneErosionFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/DuneErosionFailureMechanism.cs (.../DuneErosionFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverErosionOutwardsFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverErosionOutwardsFailureMechanism.cs (.../GrassCoverErosionOutwardsFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverErosionOutwardsFailureMechanism.cs (.../GrassCoverErosionOutwardsFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverSlipOffInwardsFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverSlipOffInwardsFailureMechanism.cs (.../GrassCoverSlipOffInwardsFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverSlipOffInwardsFailureMechanism.cs (.../GrassCoverSlipOffInwardsFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverSlipOffOutwardsFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverSlipOffOutwardsFailureMechanism.cs (.../GrassCoverSlipOffOutwardsFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/GrassCoverSlipOffOutwardsFailureMechanism.cs (.../GrassCoverSlipOffOutwardsFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MacroStabilityInwardsFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MacroStabilityInwardsFailureMechanism.cs (.../MacroStabilityInwardsFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MacroStabilityInwardsFailureMechanism.cs (.../MacroStabilityInwardsFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MacrostabilityOutwardsFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MacrostabilityOutwardsFailureMechanism.cs (.../MacrostabilityOutwardsFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MacrostabilityOutwardsFailureMechanism.cs (.../MacrostabilityOutwardsFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MicrostabilityFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MicrostabilityFailureMechanism.cs (.../MicrostabilityFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/MicrostabilityFailureMechanism.cs (.../MicrostabilityFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/PipingStructureFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/PipingStructureFailureMechanism.cs (.../PipingStructureFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/PipingStructureFailureMechanism.cs (.../PipingStructureFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StabilityStoneCoverFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StabilityStoneCoverFailureMechanism.cs (.../StabilityStoneCoverFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StabilityStoneCoverFailureMechanism.cs (.../StabilityStoneCoverFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StrengthStabilityLengthwiseConstructionFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StrengthStabilityLengthwiseConstructionFailureMechanism.cs (.../StrengthStabilityLengthwiseConstructionFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StrengthStabilityLengthwiseConstructionFailureMechanism.cs (.../StrengthStabilityLengthwiseConstructionFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StrengthStabilityPointConstructionFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StrengthStabilityPointConstructionFailureMechanism.cs (.../StrengthStabilityPointConstructionFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/StrengthStabilityPointConstructionFailureMechanism.cs (.../StrengthStabilityPointConstructionFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/TechnicalInnovationFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/TechnicalInnovationFailureMechanism.cs (.../TechnicalInnovationFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/TechnicalInnovationFailureMechanism.cs (.../TechnicalInnovationFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/WaterPressureAsphaltCoverFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/WaterPressureAsphaltCoverFailureMechanism.cs (.../WaterPressureAsphaltCoverFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/WaterPressureAsphaltCoverFailureMechanism.cs (.../WaterPressureAsphaltCoverFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/WaveImpactAsphaltCoverFailureMechanism.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/WaveImpactAsphaltCoverFailureMechanism.cs (.../WaveImpactAsphaltCoverFailureMechanism.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/StandAlone/WaveImpactAsphaltCoverFailureMechanism.cs (.../WaveImpactAsphaltCoverFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -24,6 +24,7 @@ using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data.Properties; using Ringtoets.Integration.Data.StandAlone.SectionResults; +using Ringtoets.Piping.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.Integration.Data.StandAlone Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/FileImporters/FailureMechanismSectionsImporterTest.cs =================================================================== diff -u -rfac9694977a32d8ce6ae3c1e994b3a13b8aa48fe -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/FileImporters/FailureMechanismSectionsImporterTest.cs (.../FailureMechanismSectionsImporterTest.cs) (revision fac9694977a32d8ce6ae3c1e994b3a13b8aa48fe) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/FileImporters/FailureMechanismSectionsImporterTest.cs (.../FailureMechanismSectionsImporterTest.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -34,6 +34,7 @@ using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.IO; using Ringtoets.Integration.Plugin.FileImporters; +using Ringtoets.Piping.Data; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; namespace Ringtoets.Integration.Plugin.Test.FileImporters Fisheye: Tag 80c86231452b9beb7e8b8eba3698ceb9c0551de3 refers to a dead (removed) revision in file `Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationGroupExtensions.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanism.cs =================================================================== diff -u -rfcc734ebbc1e5c6c02ae2dae2a184fdcb9aa4d1b -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanism.cs (.../PipingFailureMechanism.cs) (revision fcc734ebbc1e5c6c02ae2dae2a184fdcb9aa4d1b) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanism.cs (.../PipingFailureMechanism.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -85,7 +85,7 @@ public override void AddSection(FailureMechanismSection section) { base.AddSection(section); - sectionResults.Add(new PipingFailureMechanismSectionResult(section)); + sectionResults.Add(new PipingFailureMechanismSectionResult(section, CalculationsGroup)); } public override void ClearAllSections() Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSection2aAssessmentResultExtensions.cs =================================================================== diff -u --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSection2aAssessmentResultExtensions.cs (revision 0) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSection2aAssessmentResultExtensions.cs (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -0,0 +1,7 @@ +namespace Ringtoets.Piping.Data +{ + public class PipingFailureMechanismSection2aAssessmentResultExtensions + { + + } +} \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSectionResult.cs =================================================================== diff -u -re1705d17c577ac884869c00181cac52470cc50f2 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSectionResult.cs (.../PipingFailureMechanismSectionResult.cs) (revision e1705d17c577ac884869c00181cac52470cc50f2) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingFailureMechanismSectionResult.cs (.../PipingFailureMechanismSectionResult.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -23,6 +23,7 @@ using System.Collections.Generic; using System.Linq; using Core.Common.Base.Data; +using Core.Common.Base.Geometry; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; @@ -34,29 +35,30 @@ /// public class PipingFailureMechanismSectionResult : FailureMechanismSectionResult { + private readonly CalculationGroup calculationsGroup; + /// /// Creates a new instance of . /// /// The to get the result from. + /// /// Thrown when is null. - public PipingFailureMechanismSectionResult(FailureMechanismSection section) : base(section) + public PipingFailureMechanismSectionResult(FailureMechanismSection section, CalculationGroup calculationsGroup = null) : base(section) { - CalculationScenarios = new List(); + this.calculationsGroup = calculationsGroup; } /// /// Gets the value of assessment layer two a. /// - public RoundedDouble AssessmentLayerTwoA + /// + public RoundedDouble GetAssessmentLayerTwoA(IEnumerable calculations) { - get - { - var calculationScenarios = CalculationScenarios.Where(cs => cs.IsRelevant && cs.Status == CalculationScenarioStatus.Done).ToList(); + var calculationScenarios = GetCalculationScenarios(calculations).Where(cs => cs.Status == CalculationScenarioStatus.Done).ToList(); - return calculationScenarios.Any() - ? (RoundedDouble) (1.0 / calculationScenarios.Sum(scenario => (scenario.Probability.Value) * scenario.Contribution.Value)) - : (RoundedDouble) 0.0; - } + return calculationScenarios.Any() + ? (RoundedDouble) (1.0/calculationScenarios.Sum(scenario => (scenario.Probability.Value)*scenario.Contribution.Value)) + : (RoundedDouble) 0.0; } /// @@ -65,45 +67,36 @@ public RoundedDouble AssessmentLayerThree { get; set; } /// - /// Gets the contribution of all relevant together. + /// Gets the contribution of all relevant together. /// - public RoundedDouble TotalContribution + /// + public RoundedDouble GetTotalContribution(IEnumerable calculations) { - get - { - return (RoundedDouble) CalculationScenarios.Where(cs => cs.IsRelevant) - .Aggregate(0, (current, calculationScenario) => current + calculationScenario.Contribution); - } + return (RoundedDouble) GetCalculationScenarios(calculations).Aggregate(0, (current, calculationScenario) => current + calculationScenario.Contribution); } /// /// Gets a list of . /// - public List CalculationScenarios { get; private set; } - - /// - /// Gets the status of the section result depending on the calculation scenarios. - /// - public CalculationScenarioStatus CalculationScenarioStatus + /// + public IEnumerable GetCalculationScenarios(IEnumerable calculations) { - get - { - return GetCalculationStatus(); - } + var lineSegments = Math2D.ConvertLinePointsToLineSegments(Section.Points); + return calculations + .Where(pc => pc.IsRelevant && pc.IsSurfaceLineIntersectionWithReferenceLineInSection(lineSegments)); } /// - /// Gets or sets the state of the assessment layer one. + /// Gets the status of the section result depending on the calculation scenarios. /// - public bool AssessmentLayerOne { get; set; } - - private CalculationScenarioStatus GetCalculationStatus() + /// + public CalculationScenarioStatus GetCalculationScenarioStatus(IEnumerable calculations) { bool failed = false; bool notCalculated = false; - foreach (var calculationScenario in CalculationScenarios.Where(cs => cs.IsRelevant)) + foreach (var calculationScenario in GetCalculationScenarios(calculations).Where(cs => cs.IsRelevant)) { - switch (calculationScenario.Status) + switch (calculationScenario.Status) { case CalculationScenarioStatus.Failed: failed = true; @@ -130,5 +123,10 @@ return CalculationScenarioStatus.Done; } + + /// + /// Gets or sets the state of the assessment layer one. + /// + public bool AssessmentLayerOne { get; set; } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/Ringtoets.Piping.Data.csproj =================================================================== diff -u -r77d25c75ebe120c39ed7956a0aace093ed96e135 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/Ringtoets.Piping.Data.csproj (.../Ringtoets.Piping.Data.csproj) (revision 77d25c75ebe120c39ed7956a0aace093ed96e135) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/Ringtoets.Piping.Data.csproj (.../Ringtoets.Piping.Data.csproj) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -52,10 +52,10 @@ - + Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs =================================================================== diff -u -r5b8f476716cb75977616203318fa250f608fe7a5 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 5b8f476716cb75977616203318fa250f608fe7a5) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PropertyClasses/PipingInputContextProperties.cs (.../PipingInputContextProperties.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -175,8 +175,6 @@ data.WrappedData.SurfaceLine = value; PipingInputService.SetMatchingStochasticSoilModel(data.WrappedData, GetAvailableStochasticSoilModels()); - - PipingCalculationScenarioService.SyncCalculationScenarioWithNewSurfaceLine(data.PipingCalculation, data.FailureMechanism, oldSurfaceLine); data.WrappedData.NotifyObservers(); } } Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs =================================================================== diff -u -rdebefef18429127ee0963736030450abf4390cee -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision debefef18429127ee0963736030450abf4390cee) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -551,8 +551,7 @@ } calculationGroup.NotifyObservers(); - - calculationGroup.AddCalculationScenariosToFailureMechanismSectionResult(pipingFailureMechanism); + // TODO still needed ? pipingFailureMechanism.NotifyObservers(); } Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismResultView.cs =================================================================== diff -u -rf72f906a6875250a4378945ce814997ff8aaf1a7 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismResultView.cs (.../PipingFailureMechanismResultView.cs) (revision f72f906a6875250a4378945ce814997ff8aaf1a7) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismResultView.cs (.../PipingFailureMechanismResultView.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -112,7 +112,11 @@ protected override object CreateFailureMechanismSectionResultRow(PipingFailureMechanismSectionResult sectionResult) { - return new PipingFailureMechanismSectionResultRow(sectionResult); + if (FailureMechanism == null) + { + return null; + } + return new PipingFailureMechanismSectionResultRow(sectionResult, FailureMechanism.Calculations.OfType()); } #region Event handling @@ -147,7 +151,7 @@ { PipingFailureMechanismSectionResult rowObject = resultRow.SectionResult; - var relevantScenarios = rowObject.CalculationScenarios.Where(cs => cs.IsRelevant).ToArray(); + var relevantScenarios = rowObject.GetCalculationScenarios(FailureMechanism.Calculations.OfType()).Where(cs => cs.IsRelevant).ToArray(); bool relevantScenarioAvailable = relevantScenarios.Length != 0; if (rowObject.AssessmentLayerOne || !relevantScenarioAvailable) @@ -156,13 +160,13 @@ return; } - if (Math.Abs(rowObject.TotalContribution - 1.0) > tolerance) + if (Math.Abs(rowObject.GetTotalContribution(FailureMechanism.Calculations.OfType()) - 1.0) > tolerance) { currentDataGridViewCell.ErrorText = RingtoetsCommonFormsResources.FailureMechanismResultView_DataGridViewCellFormatting_Scenario_contribution_for_this_section_not_100; return; } - var calculationScenarioStatus = rowObject.CalculationScenarioStatus; + var calculationScenarioStatus = rowObject.GetCalculationScenarioStatus(FailureMechanism.Calculations.OfType()); if (calculationScenarioStatus == CalculationScenarioStatus.NotCalculated) { Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismSectionResultRow.cs =================================================================== diff -u -rf5a2d607a5b8053b232c1f3ad572a0acba6a4e3a -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismSectionResultRow.cs (.../PipingFailureMechanismSectionResultRow.cs) (revision f5a2d607a5b8053b232c1f3ad572a0acba6a4e3a) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingFailureMechanismSectionResultRow.cs (.../PipingFailureMechanismSectionResultRow.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using Core.Common.Base.Data; using Ringtoets.Common.Data.Calculation; @@ -15,22 +16,25 @@ /// internal class PipingFailureMechanismSectionResultRow { + private readonly IEnumerable calculations; private const double tolerance = 1e-6; /// /// Creates a new instance of . /// /// The that is - /// the source of this row. + /// the source of this row. + /// /// Throw when is /// null. - public PipingFailureMechanismSectionResultRow(PipingFailureMechanismSectionResult sectionResult) + public PipingFailureMechanismSectionResultRow(PipingFailureMechanismSectionResult sectionResult, IEnumerable calculations) { if (sectionResult == null) { throw new ArgumentNullException("sectionResult"); } SectionResult = sectionResult; + this.calculations = calculations; } /// @@ -67,20 +71,20 @@ { get { - var relevantScenarios = SectionResult.CalculationScenarios.Where(cs => cs.IsRelevant).ToArray(); + var relevantScenarios = SectionResult.GetCalculationScenarios(calculations).ToArray(); bool relevantScenarioAvailable = relevantScenarios.Length != 0; - if (relevantScenarioAvailable && Math.Abs(SectionResult.TotalContribution - 1.0) > tolerance) + if (relevantScenarioAvailable && Math.Abs(SectionResult.GetTotalContribution(calculations) - 1.0) > tolerance) { return string.Format("{0}", double.NaN); } - if (!relevantScenarioAvailable || SectionResult.CalculationScenarioStatus != CalculationScenarioStatus.Done) + if (!relevantScenarioAvailable || SectionResult.GetCalculationScenarioStatus(calculations) != CalculationScenarioStatus.Done) { return Resources.FailureMechanismSectionResultRow_AssessmentLayerTwoA_No_result_dash; } - var layerTwoA = SectionResult.AssessmentLayerTwoA.Value; + var layerTwoA = SectionResult.GetAssessmentLayerTwoA(calculations).Value; return string.Format(CommonBaseResources.ProbabilityPerYearFormat, layerTwoA); } Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs =================================================================== diff -u -rf5ed0a2ad860787e42f81146b5b5d768d99adace -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision f5ed0a2ad860787e42f81146b5b5d768d99adace) +++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -501,7 +501,6 @@ var succesfullyRemovedData = calculationGroupContext.WrappedData.Children.Remove(pipingCalculationScenarioContext.WrappedData); if (succesfullyRemovedData) { - PipingCalculationScenarioService.RemoveCalculationScenarioFromSectionResult(pipingCalculationScenarioContext.WrappedData, pipingCalculationScenarioContext.FailureMechanism); calculationGroupContext.NotifyObservers(); } } @@ -639,8 +638,7 @@ GeneratePipingCalculations(nodeData.WrappedData, view.SelectedSurfaceLines, nodeData.AvailableStochasticSoilModels, nodeData.FailureMechanism.GeneralInput); nodeData.NotifyObservers(); - - nodeData.WrappedData.AddCalculationScenariosToFailureMechanismSectionResult(nodeData.FailureMechanism); + // TODO still needed? nodeData.FailureMechanism.NotifyObservers(); } @@ -694,11 +692,6 @@ parentGroupContext.WrappedData.Children.Remove(nodeData.WrappedData); - foreach (var calculation in nodeData.WrappedData.GetCalculations().Cast()) - { - PipingCalculationScenarioService.RemoveCalculationScenarioFromSectionResult(calculation, nodeData.FailureMechanism); - } - parentGroupContext.NotifyObservers(); } Fisheye: Tag 80c86231452b9beb7e8b8eba3698ceb9c0551de3 refers to a dead (removed) revision in file `Ringtoets/Piping/src/Ringtoets.Piping.Service/PipingCalculationScenarioService.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj =================================================================== diff -u -r52fb2dd367bdca54564201857ed6e0b3cc244693 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj (.../Ringtoets.Piping.Service.csproj) (revision 52fb2dd367bdca54564201857ed6e0b3cc244693) +++ Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj (.../Ringtoets.Piping.Service.csproj) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -57,7 +57,6 @@ - Fisheye: Tag 80c86231452b9beb7e8b8eba3698ceb9c0551de3 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationGroupExtensionsTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismSectionResultTest.cs =================================================================== diff -u -re1705d17c577ac884869c00181cac52470cc50f2 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismSectionResultTest.cs (.../PipingFailureMechanismSectionResultTest.cs) (revision e1705d17c577ac884869c00181cac52470cc50f2) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingFailureMechanismSectionResultTest.cs (.../PipingFailureMechanismSectionResultTest.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -20,13 +20,13 @@ // All rights reserved. using System; -using System.Collections.Generic; +using System.Linq; using Core.Common.Base.Data; using Core.Common.Base.Geometry; using NUnit.Framework; -using Rhino.Mocks; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Piping.Data.TestUtil; namespace Ringtoets.Piping.Data.Test { @@ -45,9 +45,8 @@ // Assert Assert.AreSame(section, sectionResult.Section); Assert.IsFalse(sectionResult.AssessmentLayerOne); - Assert.AreEqual((RoundedDouble) 0, sectionResult.AssessmentLayerTwoA); + Assert.AreEqual((RoundedDouble) 0, sectionResult.GetAssessmentLayerTwoA(new PipingCalculationScenario[0])); Assert.AreEqual((RoundedDouble) 0, sectionResult.AssessmentLayerThree); - CollectionAssert.IsEmpty(sectionResult.CalculationScenarios); } [Test] @@ -84,93 +83,53 @@ FailureMechanismSection section = CreateSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - var mocks = new MockRepository(); - var calculationScenarioMock1 = mocks.StrictMock(); - var calculationScenarioMock2 = mocks.StrictMock(); - var calculationScenarioMock3 = mocks.StrictMock(); - var calculationScenarioMock4 = mocks.StrictMock(); - var contribution1 = 0.2; var contribution2 = 0.8; - var probability1 = (RoundedDouble) (1.0/1000000); - var probability2 = (RoundedDouble) (1.0/2000000); + var probability1 = 1.0 / 1000000; + var probability2 = 1.0 / 2000000; - calculationScenarioMock1.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock1.Stub(cs => cs.Status).Return(CalculationScenarioStatus.Done); - calculationScenarioMock1.Stub(cs => cs.Contribution).Return((RoundedDouble)contribution1); - calculationScenarioMock1.Stub(cs => cs.Probability).Return(probability1); + var pipingCalculationScenario1 = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(probability1, section); + var pipingCalculationScenario2 = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(probability2, section); + var pipingCalculationScenario3 = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(0.0, section); + var pipingCalculationScenario4 = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); - calculationScenarioMock2.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock2.Stub(cs => cs.Status).Return(CalculationScenarioStatus.Done); - calculationScenarioMock2.Stub(cs => cs.Contribution).Return((RoundedDouble)contribution2); - calculationScenarioMock2.Stub(cs => cs.Probability).Return(probability2); + pipingCalculationScenario1.IsRelevant = true; + pipingCalculationScenario1.Contribution = (RoundedDouble)contribution1; - calculationScenarioMock3.Stub(cs => cs.IsRelevant).Return(false); + pipingCalculationScenario2.IsRelevant = true; + pipingCalculationScenario2.Contribution = (RoundedDouble)contribution2; - calculationScenarioMock4.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock4.Stub(cs => cs.Status).Return(CalculationScenarioStatus.Failed); + pipingCalculationScenario3.IsRelevant = false; - mocks.ReplayAll(); + pipingCalculationScenario4.IsRelevant = true; - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock1); - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock2); + var calculations = new [] + { + pipingCalculationScenario1, pipingCalculationScenario2, pipingCalculationScenario3, pipingCalculationScenario4 + }; // Call - RoundedDouble? assessmentLayerTwoA = failureMechanismSectionResult.AssessmentLayerTwoA; + RoundedDouble? assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(calculations); // Assert Assert.AreEqual(1.0 / ((probability1) * contribution1 + (probability2) * contribution2), assessmentLayerTwoA, 1e-8); - mocks.VerifyAll(); } [Test] - public void AssessmentLayerTwoA_ScenarioNotCalculated_ReturnsZero() - { - // Setup - FailureMechanismSection section = CreateSection(); - var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock.Stub(cs => cs.Status).Return(CalculationScenarioStatus.NotCalculated); - - mocks.ReplayAll(); - - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock); - - // Call - RoundedDouble assessmentLayerTwoA = failureMechanismSectionResult.AssessmentLayerTwoA; - - // Assert - Assert.AreEqual((RoundedDouble) 0, assessmentLayerTwoA); - mocks.VerifyAll(); - } - - [Test] public void AssessmentLayerTwoA_ScenarioInvalidOutput_ReturnsZero() { // Setup FailureMechanismSection section = CreateSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock.Stub(cs => cs.Probability).Return((RoundedDouble) double.NaN); - calculationScenarioMock.Stub(cs => cs.Contribution).Return((RoundedDouble) 1.0); - calculationScenarioMock.Stub(cs => cs.Status).Return(CalculationScenarioStatus.Failed); + var pipingCalculationScenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); + pipingCalculationScenario.Contribution = (RoundedDouble) 1.0; - mocks.ReplayAll(); - - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock); - // Call - RoundedDouble assessmentLayerTwoA = failureMechanismSectionResult.AssessmentLayerTwoA; + RoundedDouble assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(new[] { pipingCalculationScenario }); // Assert Assert.AreEqual((RoundedDouble) 0, assessmentLayerTwoA); - mocks.VerifyAll(); } [Test] @@ -181,7 +140,7 @@ var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); // Call - RoundedDouble? assessmentLayerTwoA = failureMechanismSectionResult.AssessmentLayerTwoA; + RoundedDouble? assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(Enumerable.Empty()); // Assert Assert.AreEqual((RoundedDouble) 0.0, assessmentLayerTwoA); @@ -194,19 +153,13 @@ FailureMechanismSection section = CreateSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(false); - var calculationScenarioMock2 = mocks.StrictMock(); - calculationScenarioMock2.Stub(cs => cs.IsRelevant).Return(false); + var calculationScenarioMock = PipingCalculationScenarioFactory.CreateIrreleveantPipingCalculationScenario(section); + var calculationScenarioMock2 = PipingCalculationScenarioFactory.CreateIrreleveantPipingCalculationScenario(section); - mocks.ReplayAll(); + var calculationScenarios = new[] { calculationScenarioMock, calculationScenarioMock2 }; - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock); - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock2); - // Call - RoundedDouble assessmentLayerTwoA = failureMechanismSectionResult.AssessmentLayerTwoA; + RoundedDouble assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(calculationScenarios); // Assert Assert.AreEqual((RoundedDouble) 0.0, assessmentLayerTwoA); @@ -219,30 +172,21 @@ FailureMechanismSection section = CreateSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock.Stub(cs => cs.Contribution).Return((RoundedDouble) 0.3); + var pipingCalculationScenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); + pipingCalculationScenario.Contribution = (RoundedDouble) 0.3; - var calculationScenarioMock2 = mocks.StrictMock(); - calculationScenarioMock2.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock2.Stub(cs => cs.Contribution).Return((RoundedDouble) 0.5); + var pipingCalculationScenario2 = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); + pipingCalculationScenario2.Contribution = (RoundedDouble)0.5; - var calculationScenarioMock3 = mocks.StrictMock(); - calculationScenarioMock3.Stub(cs => cs.IsRelevant).Return(false); + var pipingCalculationScenario3 = PipingCalculationScenarioFactory.CreateIrreleveantPipingCalculationScenario(section); - mocks.ReplayAll(); + var calculationScenarios = new[] { pipingCalculationScenario, pipingCalculationScenario2, pipingCalculationScenario3 }; - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock); - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock2); - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock3); - // Call - RoundedDouble totalContribution = failureMechanismSectionResult.TotalContribution; + RoundedDouble totalContribution = failureMechanismSectionResult.GetTotalContribution(calculationScenarios); // Assert Assert.AreEqual((RoundedDouble) 0.8, totalContribution); - mocks.VerifyAll(); } [Test] @@ -261,159 +205,106 @@ } [Test] - public void CalculationScenarios_Always_ReturnsAddedCalculationScenarios() + public void CalculationScenarioStatus_ScenarioNotCalculated_ReturnsStatusNotCalculated() { // Setup FailureMechanismSection section = CreateSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - // Precondition - CollectionAssert.IsEmpty(failureMechanismSectionResult.CalculationScenarios); + var pipingCalculationScenario = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - var calculationScenarioMock2 = mocks.StrictMock(); - var calculationScenarioMock3 = mocks.StrictMock(); - - mocks.ReplayAll(); - - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock); - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock2); - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock3); - // Call - List scenarios = failureMechanismSectionResult.CalculationScenarios; + CalculationScenarioStatus status = failureMechanismSectionResult.GetCalculationScenarioStatus(new[] { pipingCalculationScenario }); // Assert - CollectionAssert.AreEqual(new[] - { - calculationScenarioMock, - calculationScenarioMock2, - calculationScenarioMock3 - }, scenarios); - mocks.VerifyAll(); + Assert.AreEqual(CalculationScenarioStatus.NotCalculated, status); } [Test] - public void CalculationScenarioStatus_ScenarioNotCalculated_ReturnsStatusNotCalculated() + public void CalculationScenarioStatus_ScenarioInvalidOutput_ReturnsStatusFailed() { // Setup FailureMechanismSection section = CreateSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock.Stub(cs => cs.Status).Return(CalculationScenarioStatus.NotCalculated); + var pipingCalculationScenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); + pipingCalculationScenario.Contribution = (RoundedDouble) 1.0; - mocks.ReplayAll(); - - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock); - // Call - CalculationScenarioStatus status = failureMechanismSectionResult.CalculationScenarioStatus; + CalculationScenarioStatus status = failureMechanismSectionResult.GetCalculationScenarioStatus(new[] { pipingCalculationScenario }); // Assert - Assert.AreEqual(CalculationScenarioStatus.NotCalculated, status); - mocks.VerifyAll(); + Assert.AreEqual(CalculationScenarioStatus.Failed, status); } [Test] - public void CalculationScenarioStatus_ScenarioInvalidOutput_ReturnsStatusFailed() + public void CalculationScenarioStatus_ScenarioInvalidOutputAndNotCalculated_ReturnsStatusFailed() { // Setup FailureMechanismSection section = CreateSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock.Stub(cs => cs.Probability).Return((RoundedDouble) double.NaN); - calculationScenarioMock.Stub(cs => cs.Contribution).Return((RoundedDouble) 1.0); - calculationScenarioMock.Stub(cs => cs.Status).Return(CalculationScenarioStatus.Failed); + var pipingCalculationScenario = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); + pipingCalculationScenario.IsRelevant = true; - mocks.ReplayAll(); + var pipingCalculationScenario2 = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); + pipingCalculationScenario2.Contribution = (RoundedDouble) 1.0; + + var calculationScenarios = new[] { pipingCalculationScenario, pipingCalculationScenario2 }; - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock); - // Call - CalculationScenarioStatus status = failureMechanismSectionResult.CalculationScenarioStatus; + CalculationScenarioStatus status = failureMechanismSectionResult.GetCalculationScenarioStatus(calculationScenarios); // Assert Assert.AreEqual(CalculationScenarioStatus.Failed, status); - mocks.VerifyAll(); } [Test] - public void CalculationScenarioStatus_ScenarioInvalidOutputAndNotCalculated_ReturnsStatusFailed() + public void CalculationScenarioStatus_ScenariosCalculated_ReturnsStatusDone() { // Setup FailureMechanismSection section = CreateSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock.Stub(cs => cs.Status).Return(CalculationScenarioStatus.NotCalculated); + var expectedProbability = 41661830; + var pipingCalculationScenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(expectedProbability, section); + pipingCalculationScenario.Contribution = (RoundedDouble) 1.0; - var calculationScenarioMock2 = mocks.StrictMock(); - calculationScenarioMock2.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock2.Stub(cs => cs.Probability).Return((RoundedDouble) double.NaN); - calculationScenarioMock2.Stub(cs => cs.Contribution).Return((RoundedDouble) 1.0); - calculationScenarioMock2.Stub(cs => cs.Status).Return(CalculationScenarioStatus.Failed); - - mocks.ReplayAll(); - - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock); - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock2); - // Call - CalculationScenarioStatus status = failureMechanismSectionResult.CalculationScenarioStatus; + CalculationScenarioStatus status = failureMechanismSectionResult.GetCalculationScenarioStatus(new[] { pipingCalculationScenario }); // Assert - Assert.AreEqual(CalculationScenarioStatus.Failed, status); - mocks.VerifyAll(); + Assert.AreEqual(CalculationScenarioStatus.Done, status); } [Test] - public void CalculationScenarioStatus_ScenariosCalculated_ReturnsStatusDone() + public void CalculationScenarioStatus_NoScenarios_ReturnsStatusDone() { // Setup FailureMechanismSection section = CreateSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock.Stub(cs => cs.Contribution).Return((RoundedDouble) 1.0); - var expectedProbability = (RoundedDouble) 41661830; - calculationScenarioMock.Stub(cs => cs.Probability).Return(expectedProbability); - calculationScenarioMock.Stub(cs => cs.Status).Return(CalculationScenarioStatus.Done); - - mocks.ReplayAll(); - - failureMechanismSectionResult.CalculationScenarios.Add(calculationScenarioMock); - // Call - CalculationScenarioStatus status = failureMechanismSectionResult.CalculationScenarioStatus; + CalculationScenarioStatus status = failureMechanismSectionResult.GetCalculationScenarioStatus(Enumerable.Empty()); // Assert Assert.AreEqual(CalculationScenarioStatus.Done, status); - mocks.VerifyAll(); } [Test] - public void CalculationScenarioStatus_NoScenarios_ReturnsStatusDone() + public void AssessmentLayerTwoA_ScenarioNotCalculated_ReturnsZero() { // Setup FailureMechanismSection section = CreateSection(); var failureMechanismSectionResult = new PipingFailureMechanismSectionResult(section); + var pipingCalculationScenario = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); + // Call - CalculationScenarioStatus status = failureMechanismSectionResult.CalculationScenarioStatus; + RoundedDouble assessmentLayerTwoA = failureMechanismSectionResult.GetAssessmentLayerTwoA(new [] { pipingCalculationScenario }); // Assert - Assert.AreEqual(CalculationScenarioStatus.Done, status); + Assert.AreEqual((RoundedDouble) 0, assessmentLayerTwoA); } private static FailureMechanismSection CreateSection() Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj =================================================================== diff -u -r77d25c75ebe120c39ed7956a0aace093ed96e135 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj (.../Ringtoets.Piping.Data.Test.csproj) (revision 77d25c75ebe120c39ed7956a0aace093ed96e135) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/Ringtoets.Piping.Data.Test.csproj (.../Ringtoets.Piping.Data.Test.csproj) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -57,7 +57,6 @@ - Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil.Test/PipingCalculationScenarioFactoryTest.cs =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil.Test/PipingCalculationScenarioFactoryTest.cs (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil.Test/PipingCalculationScenarioFactoryTest.cs (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -0,0 +1,127 @@ +using System; +using Core.Common.Base.Geometry; +using NUnit.Framework; +using Ringtoets.Common.Data.FailureMechanism; + +namespace Ringtoets.Piping.Data.TestUtil.Test +{ + [TestFixture] + public class PipingCalculationScenarioFactoryTest + { + [Test] + public void CreatePipingCalculationScenario_WithNoSection_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => PipingCalculationScenarioFactory.CreatePipingCalculationScenario(double.NaN, null); + + // Assert + var paramName = Assert.Throws(test).ParamName; + Assert.AreEqual("section", paramName); + } + + [Test] + [TestCase(double.NaN)] + [TestCase(3.0)] + [TestCase(115.2)] + [TestCase(0.2)] + public void CreatePipingCalculationScenario_WithSection_CreatesRelevantCalculationWithOutputSet(double probability) + { + // Setup + var section = CreateSection(); + + // Call + var scenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(probability, section); + + // Assert + Assert.NotNull(scenario.SemiProbabilisticOutput); + Assert.NotNull(scenario.Output); + Assert.AreEqual(probability, scenario.SemiProbabilisticOutput.PipingProbability, 1e-6); + Assert.IsTrue(scenario.IsRelevant); + } + + [Test] + public void CreateFailedPipingCalculationScenario_WithNoSection_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(null); + + // Assert + var paramName = Assert.Throws(test).ParamName; + Assert.AreEqual("section", paramName); + } + + [Test] + public void CreateFailedPipingCalculationScenario_WithSection_CreatesRelevantCalculationWithOutputSetToNaN() + { + // Setup + var section = CreateSection(); + + // Call + var scenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); + + // Assert + Assert.NotNull(scenario.SemiProbabilisticOutput); + Assert.NotNull(scenario.Output); + Assert.IsNaN(scenario.SemiProbabilisticOutput.PipingProbability); + Assert.IsTrue(scenario.IsRelevant); + } + + [Test] + public void CreateIrreleveantPipingCalculationScenario_WithNoSection_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => PipingCalculationScenarioFactory.CreateIrreleveantPipingCalculationScenario(null); + + // Assert + var paramName = Assert.Throws(test).ParamName; + Assert.AreEqual("section", paramName); + } + + [Test] + public void CreateIrreleveantPipingCalculationScenario_WithSection_CreatesIrrelevantCalculation() + { + // Setup + var section = CreateSection(); + + // Call + var scenario = PipingCalculationScenarioFactory.CreateIrreleveantPipingCalculationScenario(section); + + // Assert + Assert.IsFalse(scenario.IsRelevant); + } + + [Test] + public void CreateNotCalculatedPipingCalculationScenario_WithNoSection_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(null); + + // Assert + var paramName = Assert.Throws(test).ParamName; + Assert.AreEqual("section", paramName); + } + + [Test] + public void CreateNotCalculatedPipingCalculationScenario_WithSection_CreatesRelevantCalculationWithoutOutput() + { + // Setup + var section = CreateSection(); + + // Call + var scenario = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); + + // Assert + Assert.IsNull(scenario.SemiProbabilisticOutput); + Assert.IsNull(scenario.Output); + Assert.IsTrue(scenario.IsRelevant); + } + + private FailureMechanismSection CreateSection() + { + return new FailureMechanismSection("name", new[] + { + new Point2D(0, 0) + }); + } + } +} \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil.Test/Ringtoets.Piping.Data.TestUtil.Test.csproj =================================================================== diff -u -rbbca58832f24a62d39dc744c2db663ed696cfac1 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil.Test/Ringtoets.Piping.Data.TestUtil.Test.csproj (.../Ringtoets.Piping.Data.TestUtil.Test.csproj) (revision bbca58832f24a62d39dc744c2db663ed696cfac1) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil.Test/Ringtoets.Piping.Data.TestUtil.Test.csproj (.../Ringtoets.Piping.Data.TestUtil.Test.csproj) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -45,6 +45,7 @@ + @@ -56,6 +57,10 @@ {3bbfd65b-b277-4e50-ae6d-bd24c3434609} Core.Common.Base + + {d4200f43-3f72-4f42-af0a-8ced416a38ec} + Ringtoets.Common.Data + {ce994cc9-6f6a-48ac-b4be-02c30a21f4db} Ringtoets.Piping.Data Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationScenarioFactory.cs =================================================================== diff -u --- Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationScenarioFactory.cs (revision 0) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationScenarioFactory.cs (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -0,0 +1,105 @@ +using System; +using System.Linq; +using Core.Common.Base.Data; +using Core.Common.Base.Geometry; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Piping.Primitives; + +namespace Ringtoets.Piping.Data.TestUtil +{ + /// + /// Helper class for creating different instances of + /// for easier testing. + /// + public static class PipingCalculationScenarioFactory + { + /// + /// Creates a calculated scenario for which the surface line on the input intersects with . + /// + /// The value for . + /// The section for which an intersection will be created. + /// A new . + public static PipingCalculationScenario CreatePipingCalculationScenario(double probability, FailureMechanismSection section) + { + var scenario = CreateNotCalculatedPipingCalculationScenario(section); + var random = new Random(21); + scenario.SemiProbabilisticOutput = new PipingSemiProbabilisticOutput( + random.NextDouble(), + random.NextDouble(), + random.NextDouble(), + random.NextDouble(), + random.NextDouble(), + random.NextDouble(), + random.NextDouble(), + random.NextDouble(), + random.NextDouble(), + random.NextDouble(), + random.NextDouble(), + (RoundedDouble) probability, + random.NextDouble(), + random.NextDouble()); + + scenario.Output = new PipingOutput( + random.NextDouble(), + random.NextDouble(), + random.NextDouble(), + random.NextDouble(), + random.NextDouble(), + random.NextDouble()); + + return scenario; + } + + /// + /// Creates a scenario for which the surface line on the input intersects with and + /// the calculation has failed. + /// + /// The section for which an intersection will be created. + /// A new . + public static PipingCalculationScenario CreateFailedPipingCalculationScenario(FailureMechanismSection section) + { + return CreatePipingCalculationScenario((RoundedDouble) double.NaN, section); + } + + /// + /// Creates a scenario for which the surface line on the input intersects with and + /// is marked as not relevant for the assessment. + /// + /// The section for which an intersection will be created. + /// A new . + public static PipingCalculationScenario CreateIrreleveantPipingCalculationScenario(FailureMechanismSection section) + { + var scenario = CreateNotCalculatedPipingCalculationScenario(section); + scenario.IsRelevant = false; + return scenario; + } + + /// + /// Creates a scenario for which the surface line on the input intersects with and + /// the calculation has not been performed. + /// + /// The section for which an intersection will be created. + /// A new . + public static PipingCalculationScenario CreateNotCalculatedPipingCalculationScenario(FailureMechanismSection section) + { + if (section == null) + { + throw new ArgumentNullException("section"); + } + var ringtoetsPipingSurfaceLine = new RingtoetsPipingSurfaceLine(); + var p = section.Points.First(); + ringtoetsPipingSurfaceLine.SetGeometry(new [] { new Point3D(p.X, p.Y, 0), new Point3D(p.X+2, p.Y+2, 0) } ); + ringtoetsPipingSurfaceLine.ReferenceLineIntersectionWorldPoint = section.Points.First(); + + var scenario = new PipingCalculationScenario(new GeneralPipingInput()) + { + IsRelevant = true, + InputParameters = + { + SurfaceLine = ringtoetsPipingSurfaceLine + } + }; + return scenario; + } + } +} \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/Ringtoets.Piping.Data.TestUtil.csproj =================================================================== diff -u -rc196992ccccf32ce0fd55b83a17e3f3574467a1e -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/Ringtoets.Piping.Data.TestUtil.csproj (.../Ringtoets.Piping.Data.TestUtil.csproj) (revision c196992ccccf32ce0fd55b83a17e3f3574467a1e) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/Ringtoets.Piping.Data.TestUtil.csproj (.../Ringtoets.Piping.Data.TestUtil.csproj) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -45,6 +45,7 @@ + Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -rf5ed0a2ad860787e42f81146b5b5d768d99adace -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision f5ed0a2ad860787e42f81146b5b5d768d99adace) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -1047,8 +1047,6 @@ var treeViewControl = mocks.StrictMock(); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var group = new CalculationGroup(); - var pipingFailureMechanism = new PipingFailureMechanism(); var assessmentSectionMock = mocks.StrictMock(); @@ -1097,7 +1095,7 @@ new Point2D(10.0, 0.0) })); - var nodeData = new PipingCalculationGroupContext(group, + var nodeData = new PipingCalculationGroupContext(pipingFailureMechanism.CalculationsGroup, surfaceLines, new[] { @@ -1119,12 +1117,6 @@ plugin.Gui = gui; - // Precondition - foreach (var failureMechanismSectionResult in pipingFailureMechanism.SectionResults) - { - CollectionAssert.IsEmpty(failureMechanismSectionResult.CalculationScenarios); - } - DialogBoxHandler = (name, wnd) => { var selectionDialog = new FormTester(name).TheObject as PipingSurfaceLineSelectionDialog; @@ -1144,14 +1136,15 @@ var failureMechanismSectionResult1 = pipingFailureMechanism.SectionResults.First(); var failureMechanismSectionResult2 = pipingFailureMechanism.SectionResults.ElementAt(1); - Assert.AreEqual(2, failureMechanismSectionResult1.CalculationScenarios.Count); + var pipingCalculationScenarios = pipingFailureMechanism.Calculations.OfType().ToArray(); + Assert.AreEqual(2, failureMechanismSectionResult1.GetCalculationScenarios(pipingCalculationScenarios).Count()); - foreach (var calculationScenario in failureMechanismSectionResult1.CalculationScenarios) + foreach (var calculationScenario in failureMechanismSectionResult1.GetCalculationScenarios(pipingCalculationScenarios)) { Assert.IsInstanceOf(calculationScenario); } - CollectionAssert.IsEmpty(failureMechanismSectionResult2.CalculationScenarios); + CollectionAssert.IsEmpty(failureMechanismSectionResult2.GetCalculationScenarios(pipingCalculationScenarios)); mocks.VerifyAll(); } @@ -1239,7 +1232,7 @@ // Precondition foreach (var failureMechanismSectionResult in pipingFailureMechanism.SectionResults) { - CollectionAssert.IsEmpty(failureMechanismSectionResult.CalculationScenarios); + CollectionAssert.IsEmpty(failureMechanismSectionResult.GetCalculationScenarios(pipingFailureMechanism.Calculations.OfType())); } DialogBoxHandler = (name, wnd) => @@ -1260,7 +1253,7 @@ // Then foreach (var failureMechanismSectionResult in pipingFailureMechanism.SectionResults) { - CollectionAssert.IsEmpty(failureMechanismSectionResult.CalculationScenarios); + CollectionAssert.IsEmpty(failureMechanismSectionResult.GetCalculationScenarios(pipingFailureMechanism.Calculations.OfType())); } mocks.VerifyAll(); @@ -1332,7 +1325,7 @@ pipingFailureMechanism, assessmentSectionMock); - var parentGroup = new CalculationGroup(); + var parentGroup = pipingFailureMechanism.CalculationsGroup; parentGroup.Children.Add(group); var parentNodeData = new PipingCalculationGroupContext(parentGroup, Enumerable.Empty(), @@ -1341,19 +1334,17 @@ assessmentSectionMock); parentNodeData.Attach(observer); - parentGroup.AddCalculationScenariosToFailureMechanismSectionResult(pipingFailureMechanism); - // Precondition Assert.IsTrue(info.CanRemove(nodeData, parentNodeData)); var sectionResults = pipingFailureMechanism.SectionResults.ToArray(); - CollectionAssert.Contains(sectionResults[0].CalculationScenarios, calculation); + CollectionAssert.Contains(sectionResults[0].GetCalculationScenarios(pipingFailureMechanism.Calculations.OfType()), calculation); // Call info.OnNodeRemoved(nodeData, parentNodeData); // Assert CollectionAssert.DoesNotContain(parentGroup.Children, group); - CollectionAssert.DoesNotContain(sectionResults[0].CalculationScenarios, calculation); + CollectionAssert.DoesNotContain(sectionResults[0].GetCalculationScenarios(pipingFailureMechanism.Calculations.OfType()), calculation); mocks.VerifyAll(); } Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationScenarioContextTreeNodeInfoTest.cs =================================================================== diff -u -rf5ed0a2ad860787e42f81146b5b5d768d99adace -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationScenarioContextTreeNodeInfoTest.cs (.../PipingCalculationScenarioContextTreeNodeInfoTest.cs) (revision f5ed0a2ad860787e42f81146b5b5d768d99adace) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationScenarioContextTreeNodeInfoTest.cs (.../PipingCalculationScenarioContextTreeNodeInfoTest.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -427,6 +427,7 @@ group.Children.Add(elementToBeRemoved); group.Children.Add(new PipingCalculationScenario(new GeneralPipingInput())); group.Attach(observer); + pipingFailureMechanism.CalculationsGroup.Children.Add(group); var assessmentSectionMock = mocks.StrictMock(); mocks.ReplayAll(); @@ -442,21 +443,19 @@ pipingFailureMechanism, assessmentSectionMock); - group.AddCalculationScenariosToFailureMechanismSectionResult(pipingFailureMechanism); - // Precondition Assert.IsTrue(info.CanRemove(calculationContext, groupContext)); Assert.AreEqual(2, group.Children.Count); var sectionResults = pipingFailureMechanism.SectionResults.ToArray(); - CollectionAssert.Contains(sectionResults[0].CalculationScenarios, elementToBeRemoved); + CollectionAssert.Contains(sectionResults[0].GetCalculationScenarios(pipingFailureMechanism.Calculations.OfType()), elementToBeRemoved); // Call info.OnNodeRemoved(calculationContext, groupContext); // Assert Assert.AreEqual(1, group.Children.Count); CollectionAssert.DoesNotContain(group.Children, elementToBeRemoved); - CollectionAssert.DoesNotContain(sectionResults[0].CalculationScenarios, elementToBeRemoved); + CollectionAssert.DoesNotContain(sectionResults[0].GetCalculationScenarios(pipingFailureMechanism.Calculations.OfType()), elementToBeRemoved); mocks.VerifyAll(); } Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs =================================================================== diff -u -rbb0aeecc47206f5089ab04ca6c3575a1de8c206f -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs (.../PipingCalculationsViewTest.cs) (revision bb0aeecc47206f5089ab04ca6c3575a1de8c206f) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs (.../PipingCalculationsViewTest.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -656,10 +656,6 @@ pipingCalculationsView.Data = pipingFailureMechanism.CalculationsGroup; // Precondition - foreach (var failureMechanismSectionResult in pipingCalculationsView.PipingFailureMechanism.SectionResults) - { - CollectionAssert.IsEmpty(failureMechanismSectionResult.CalculationScenarios); - } var button = new ButtonTester("buttonGenerateScenarios", testForm); @@ -678,17 +674,18 @@ button.Click(); // Then + var pipingCalculationScenarios = pipingFailureMechanism.Calculations.OfType().ToArray(); var failureMechanismSectionResult1 = pipingCalculationsView.PipingFailureMechanism.SectionResults.First(); var failureMechanismSectionResult2 = pipingCalculationsView.PipingFailureMechanism.SectionResults.ElementAt(1); - Assert.AreEqual(2, failureMechanismSectionResult1.CalculationScenarios.Count); + Assert.AreEqual(2, failureMechanismSectionResult1.GetCalculationScenarios(pipingCalculationScenarios).Count()); - foreach (var calculationScenario in failureMechanismSectionResult1.CalculationScenarios) + foreach (var calculationScenario in failureMechanismSectionResult1.GetCalculationScenarios(pipingCalculationScenarios)) { Assert.IsInstanceOf(calculationScenario); } - CollectionAssert.IsEmpty(failureMechanismSectionResult2.CalculationScenarios); + CollectionAssert.IsEmpty(failureMechanismSectionResult2.GetCalculationScenarios(pipingCalculationScenarios)); } [Test] @@ -701,12 +698,6 @@ pipingCalculationsView.PipingFailureMechanism = pipingFailureMechanism; pipingCalculationsView.Data = pipingFailureMechanism.CalculationsGroup; - // Precondition - foreach (var failureMechanismSectionResult in pipingCalculationsView.PipingFailureMechanism.SectionResults) - { - CollectionAssert.IsEmpty(failureMechanismSectionResult.CalculationScenarios); - } - var button = new ButtonTester("buttonGenerateScenarios", testForm); DialogBoxHandler = (name, wnd) => @@ -726,7 +717,8 @@ // Then foreach (var failureMechanismSectionResult in pipingCalculationsView.PipingFailureMechanism.SectionResults) { - CollectionAssert.IsEmpty(failureMechanismSectionResult.CalculationScenarios); + // TODO is this test still relevant? + //CollectionAssert.IsEmpty(failureMechanismSectionResult.GetCalculationScenarios(pipingFailureMechanism.Calculations)); } } Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismResultViewTest.cs =================================================================== diff -u -re1705d17c577ac884869c00181cac52470cc50f2 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismResultViewTest.cs (.../PipingFailureMechanismResultViewTest.cs) (revision e1705d17c577ac884869c00181cac52470cc50f2) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismResultViewTest.cs (.../PipingFailureMechanismResultViewTest.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -30,10 +30,9 @@ using Core.Common.Controls.Views; using NUnit.Extensions.Forms; using NUnit.Framework; -using Rhino.Mocks; -using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Piping.Data; +using Ringtoets.Piping.Data.TestUtil; using Ringtoets.Piping.Forms.Views; namespace Ringtoets.Piping.Forms.Test.Views @@ -95,7 +94,7 @@ public void Data_DataAlreadySetNewDataSet_DataSetAndDataGridViewUpdated() { // Setup - using (var view = ShowFullyConfiguredFailureMechanismResultsView()) + using (var view = ShowFullyConfiguredFailureMechanismResultsView(new PipingFailureMechanism())) { var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; @@ -131,7 +130,7 @@ { // Setup var testData = new object(); - using (var view = ShowFullyConfiguredFailureMechanismResultsView()) + using (var view = ShowFullyConfiguredFailureMechanismResultsView(new PipingFailureMechanism())) { var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; @@ -149,7 +148,7 @@ public void FailureMechanismResultsView_AllDataSet_DataGridViewCorrectlyInitialized() { // Setup & Call - using (ShowFullyConfiguredFailureMechanismResultsView()) + using (ShowFullyConfiguredFailureMechanismResultsView(new PipingFailureMechanism())) { var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; @@ -179,7 +178,7 @@ public void FailureMechanismResultsView_ChangeCheckBox_DataGridViewCorrectlySyncedAndStylingSet(bool checkBoxSelected) { // Setup - using (ShowFullyConfiguredFailureMechanismResultsView()) + using (ShowFullyConfiguredFailureMechanismResultsView(new PipingFailureMechanism())) { var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; @@ -228,7 +227,7 @@ public void FailureMechanismResultView_EditValueInvalid_ShowsErrorTooltip(string newValue, int cellIndex) { // Setup - using (ShowFullyConfiguredFailureMechanismResultsView()) + using (ShowFullyConfiguredFailureMechanismResultsView(new PipingFailureMechanism())) { var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; @@ -248,7 +247,7 @@ public void FailureMechanismResultView_EditValueValid_DoNotShowErrorToolTipAndEditValue(string newValue, int cellIndex, string propertyName) { // Setup - using (var view = ShowFullyConfiguredFailureMechanismResultsView()) + using (var view = ShowFullyConfiguredFailureMechanismResultsView(new PipingFailureMechanism())) { var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject; @@ -272,7 +271,7 @@ public void FailureMechanismResultView_EditValueDirtyStateChangedEventFired_ValueCommittedCellInEditMode() { // Setup - using (var view = ShowFullyConfiguredFailureMechanismResultsView()) + using (var view = ShowFullyConfiguredFailureMechanismResultsView(new PipingFailureMechanism())) { var sections = (List) view.Data; sections[0].AssessmentLayerOne = false; @@ -298,20 +297,18 @@ public void FailureMechanismResultView_TotalContributionNotHundred_ShowsErrorTooltip() { // Setup - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.Contribution).Return((RoundedDouble) 0.3); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock.Stub(cs => cs.Probability).Return((RoundedDouble) 1000); - - mocks.ReplayAll(); - var rowIndex = 0; - using (var view = ShowFullyConfiguredFailureMechanismResultsView()) + var pipingFailureMechanism = new PipingFailureMechanism(); + using (var view = ShowFullyConfiguredFailureMechanismResultsView(pipingFailureMechanism)) { - var sections = (List) view.Data; - sections[0].CalculationScenarios.Add(calculationScenarioMock); + var calculationScenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario( + 1000, + pipingFailureMechanism.Sections.First() + ); + calculationScenario.Contribution = (RoundedDouble)0.3; + pipingFailureMechanism.CalculationsGroup.Children.Add(calculationScenario); + view.Data = pipingFailureMechanism.SectionResults; var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; @@ -324,29 +321,24 @@ // Assert Assert.AreEqual("Bijdrage van de geselecteerde scenario's voor dit vak is opgeteld niet gelijk aan 100%.", dataGridViewCell.ErrorText); Assert.AreEqual(double.NaN.ToString(CultureInfo.InvariantCulture), formattedValue); - mocks.VerifyAll(); } } [Test] public void FailureMechanismResultView_AssessmentLayerTwoAHasValue_DoesNotShowsErrorTooltip() { // Setup - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.Contribution).Return((RoundedDouble) 1.0); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock.Stub(cs => cs.Probability).Return((RoundedDouble) 1e-3); - calculationScenarioMock.Stub(cs => cs.Status).Return(CalculationScenarioStatus.Done); - - mocks.ReplayAll(); - var rowIndex = 0; - using (var view = ShowFullyConfiguredFailureMechanismResultsView()) + var pipingFailureMechanism = new PipingFailureMechanism(); + using (var view = ShowFullyConfiguredFailureMechanismResultsView(pipingFailureMechanism)) { - var sections = (List) view.Data; - sections[0].CalculationScenarios.Add(calculationScenarioMock); + var calculationScenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario( + (RoundedDouble) 1e-3, + pipingFailureMechanism.Sections.First() + ); + pipingFailureMechanism.CalculationsGroup.Children.Add(calculationScenario); + view.Data = pipingFailureMechanism.SectionResults; var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; @@ -358,29 +350,23 @@ // Assert Assert.AreEqual(string.Empty, dataGridViewCell.ErrorText); - Assert.AreEqual(string.Format("1/{0:N0}", 1 / calculationScenarioMock.Probability), formattedValue); - mocks.VerifyAll(); + Assert.AreEqual(string.Format("1/{0:N0}", 1/calculationScenario.Probability), formattedValue); } } [Test] public void FailureMechanismResultView_AssessmentLayerTwoANull_ShowsErrorTooltip() { // Setup - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.Contribution).Return((RoundedDouble) 1.0); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock.Stub(cs => cs.Status).Return(CalculationScenarioStatus.NotCalculated); - - mocks.ReplayAll(); - var rowIndex = 0; - using (var view = ShowFullyConfiguredFailureMechanismResultsView()) + var pipingFailureMechanism = new PipingFailureMechanism(); + using (ShowFullyConfiguredFailureMechanismResultsView(pipingFailureMechanism)) { - var sections = (List) view.Data; - sections[0].CalculationScenarios.Add(calculationScenarioMock); + var calculationScenario = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario( + pipingFailureMechanism.Sections.First() + ); + pipingFailureMechanism.CalculationsGroup.Children.Add(calculationScenario); var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; @@ -393,28 +379,21 @@ // Assert Assert.AreEqual("Niet alle berekeningen voor dit vak zijn uitgevoerd.", dataGridViewCell.ErrorText); Assert.AreEqual("-", formattedValue); - mocks.VerifyAll(); } } [Test] public void FailureMechanismResultView_AssessmentLayerTwoANaN_ShowsErrorTooltip() { // Setup - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.Contribution).Return((RoundedDouble) 1.0); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock.Stub(cs => cs.Status).Return(CalculationScenarioStatus.Failed); - - mocks.ReplayAll(); - var rowIndex = 0; - using (var view = ShowFullyConfiguredFailureMechanismResultsView()) + var pipingFailureMechanism = new PipingFailureMechanism(); + using (var view = ShowFullyConfiguredFailureMechanismResultsView(pipingFailureMechanism)) { - var sections = (List) view.Data; - sections[0].CalculationScenarios.Add(calculationScenarioMock); + var calculationScenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(pipingFailureMechanism.Sections.First()); + pipingFailureMechanism.CalculationsGroup.Children.Add(calculationScenario); + view.Data = pipingFailureMechanism.SectionResults; var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; @@ -427,7 +406,6 @@ // Assert Assert.AreEqual("Niet alle berekeningen voor dit vak hebben een geldige uitkomst.", dataGridViewCell.ErrorText); Assert.AreEqual("-", formattedValue); - mocks.VerifyAll(); } } @@ -437,7 +415,7 @@ // Setup var rowIndex = 0; - using (ShowFullyConfiguredFailureMechanismResultsView()) + using (ShowFullyConfiguredFailureMechanismResultsView(new PipingFailureMechanism())) { var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; @@ -457,20 +435,13 @@ public void FailureMechanismResultView_NoCalculationScenariosRelevant_DoesNotShowErrorTooltip() { // Setup - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.Contribution).Return((RoundedDouble) 1.0); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(false); - calculationScenarioMock.Stub(cs => cs.Probability).Return((RoundedDouble) double.NaN); - - mocks.ReplayAll(); - var rowIndex = 0; - using (var view = ShowFullyConfiguredFailureMechanismResultsView()) + var pipingFailureMechanism = new PipingFailureMechanism(); + using (ShowFullyConfiguredFailureMechanismResultsView(pipingFailureMechanism)) { - var sections = (List) view.Data; - sections[0].CalculationScenarios.Add(calculationScenarioMock); + var calculationScenario = PipingCalculationScenarioFactory.CreateIrreleveantPipingCalculationScenario(pipingFailureMechanism.Sections.First()); + pipingFailureMechanism.CalculationsGroup.Children.Add(calculationScenario); var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; @@ -490,21 +461,13 @@ public void FailureMechanismResultView_AssessmentLayerOneTrueAndAssessmentLayerTwoAHasError_DoesNotShowError() { // Setup - var mocks = new MockRepository(); - var calculationScenarioMock = mocks.StrictMock(); - calculationScenarioMock.Stub(cs => cs.Contribution).Return((RoundedDouble) 1.0); - calculationScenarioMock.Stub(cs => cs.IsRelevant).Return(true); - calculationScenarioMock.Stub(cs => cs.Probability).Return((RoundedDouble) double.NaN); - calculationScenarioMock.Stub(cs => cs.Status).Return(CalculationScenarioStatus.Failed); - - mocks.ReplayAll(); - var rowIndex = 0; - using (var view = ShowFullyConfiguredFailureMechanismResultsView()) + var pipingFailureMechanism = new PipingFailureMechanism(); + using (ShowFullyConfiguredFailureMechanismResultsView(pipingFailureMechanism)) { - var sections = (List) view.Data; - sections[0].CalculationScenarios.Add(calculationScenarioMock); + var calculationScenario = PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(pipingFailureMechanism.Sections.First()); + pipingFailureMechanism.CalculationsGroup.Children.Add(calculationScenario); var gridTester = new ControlTester("dataGridView"); var dataGridView = (DataGridView) gridTester.TheObject; @@ -518,7 +481,6 @@ // Assert Assert.AreEqual(string.Empty, dataGridViewCell.ErrorText); Assert.AreEqual("-", formattedValue); - mocks.VerifyAll(); } } @@ -527,10 +489,8 @@ private const int assessmentLayerTwoAIndex = 2; private const int assessmentLayerThreeIndex = 3; - private PipingFailureMechanismResultView ShowFullyConfiguredFailureMechanismResultsView() + private PipingFailureMechanismResultView ShowFullyConfiguredFailureMechanismResultsView(PipingFailureMechanism failureMechanism) { - var failureMechanism = new PipingFailureMechanism(); - failureMechanism.AddSection(new FailureMechanismSection("Section 1", new List { new Point2D(0.0, 0.0), Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs =================================================================== diff -u -rbd3056331b8727d6f9758d1f4e5979694d439398 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs (.../PipingFailureMechanismSectionResultRowTest.cs) (revision bd3056331b8727d6f9758d1f4e5979694d439398) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs (.../PipingFailureMechanismSectionResultRowTest.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using System.Linq; using Core.Common.Base; using Core.Common.Base.Data; using Core.Common.Base.Geometry; @@ -30,6 +31,7 @@ using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.Forms.Properties; using Ringtoets.Piping.Data; +using Ringtoets.Piping.Data.TestUtil; using Ringtoets.Piping.Forms.Views; using CommonBaseResources = Core.Common.Base.Properties.Resources; @@ -42,7 +44,7 @@ public void Constructor_WithoutSectionResult_ThrowsArgumentNullException() { // Call - TestDelegate test = () => new PipingFailureMechanismSectionResultRow(null); + TestDelegate test = () => new PipingFailureMechanismSectionResultRow(null, null); // Assert var paramName = Assert.Throws(test).ParamName; @@ -57,7 +59,7 @@ var result = new PipingFailureMechanismSectionResult(section); // Call - var row = new PipingFailureMechanismSectionResultRow(result); + var row = new PipingFailureMechanismSectionResultRow(result, null); // Assert Assert.AreEqual(section.Name, row.Name); @@ -80,7 +82,7 @@ var result = new PipingFailureMechanismSectionResult(section); result.Attach(observer); - var row = new PipingFailureMechanismSectionResultRow(result); + var row = new PipingFailureMechanismSectionResultRow(result, null); // Call row.AssessmentLayerOne = newValue; @@ -99,7 +101,7 @@ var result = new PipingFailureMechanismSectionResult(section); // Call - var row = new PipingFailureMechanismSectionResultRow(result); + var row = new PipingFailureMechanismSectionResultRow(result, Enumerable.Empty()); // Assert Assert.AreEqual(Resources.FailureMechanismSectionResultRow_AssessmentLayerTwoA_No_result_dash, row.AssessmentLayerTwoA); @@ -114,29 +116,21 @@ public void AssessmentLayerTwoA_RelevantScenarioContributionDontAddUpTo1_NaN(double contributionA, double contributionB) { // Setup - var mocks = new MockRepository(); - var scenarioA = mocks.Stub(); - var scenarioB = mocks.Stub(); + var section = CreateSection(); + + var scenarioA = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); + var scenarioB = PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section); scenarioA.Contribution = (RoundedDouble)contributionA; - scenarioA.IsRelevant = true; - scenarioA.Stub(s => s.Status).Return(CalculationScenarioStatus.Done); scenarioB.Contribution = (RoundedDouble)contributionB; - scenarioB.IsRelevant = true; - scenarioB.Stub(s => s.Status).Return(CalculationScenarioStatus.Done); - mocks.ReplayAll(); - var section = CreateSection(); var result = new PipingFailureMechanismSectionResult(section); - var row = new PipingFailureMechanismSectionResultRow(result); - result.CalculationScenarios.Add(scenarioA); - result.CalculationScenarios.Add(scenarioB); + var row = new PipingFailureMechanismSectionResultRow(result, new[] { scenarioA , scenarioB }); // Call var assessmentLayerTwoA = row.AssessmentLayerTwoA; // Assert Assert.AreEqual(string.Format("{0}", double.NaN), assessmentLayerTwoA); - mocks.VerifyAll(); } [Test] @@ -145,50 +139,39 @@ public void AssessmentLayerTwoA_NoRelevantScenariosDone_Dash(CalculationScenarioStatus status) { // Setup - var mocks = new MockRepository(); - var scenario = mocks.Stub(); - scenario.Stub(cs => cs.Status).Return(status); - scenario.Contribution = (RoundedDouble)1.0; - scenario.IsRelevant = true; - mocks.ReplayAll(); - var section = CreateSection(); + + var scenario = status.Equals(CalculationScenarioStatus.NotCalculated) + ? PipingCalculationScenarioFactory.CreateNotCalculatedPipingCalculationScenario(section) + : PipingCalculationScenarioFactory.CreateFailedPipingCalculationScenario(section); + var result = new PipingFailureMechanismSectionResult(section); - var row = new PipingFailureMechanismSectionResultRow(result); - result.CalculationScenarios.Add(scenario); + var row = new PipingFailureMechanismSectionResultRow(result, new [] { scenario }); // Call var assessmentLayerTwoA = row.AssessmentLayerTwoA; // Assert Assert.AreEqual(Resources.FailureMechanismSectionResultRow_AssessmentLayerTwoA_No_result_dash, assessmentLayerTwoA); - mocks.VerifyAll(); } [Test] public void AssessmentLayerTwoA_RelevantScenariosDone_ResultOfSection() { - // Setup - var mocks = new MockRepository(); - var scenario = mocks.Stub(); - scenario.Stub(cs => cs.Status).Return(CalculationScenarioStatus.Done); - scenario.Stub(cs => cs.Probability).Return((RoundedDouble)0.2); + // Setup + var section = CreateSection(); + var scenario = PipingCalculationScenarioFactory.CreatePipingCalculationScenario(0.2, section); scenario.Contribution = (RoundedDouble)1.0; - scenario.IsRelevant = true; - mocks.ReplayAll(); - var section = CreateSection(); var result = new PipingFailureMechanismSectionResult(section); - var row = new PipingFailureMechanismSectionResultRow(result); - result.CalculationScenarios.Add(scenario); + var row = new PipingFailureMechanismSectionResultRow(result, new[] { scenario }); // Call var assessmentLayerTwoA = row.AssessmentLayerTwoA; // Assert - var expected = string.Format(CommonBaseResources.ProbabilityPerYearFormat, result.AssessmentLayerTwoA); + var expected = string.Format(CommonBaseResources.ProbabilityPerYearFormat, result.GetAssessmentLayerTwoA(new[] { scenario })); Assert.AreEqual(expected, assessmentLayerTwoA); - mocks.VerifyAll(); } [Test] @@ -199,7 +182,7 @@ var newValue = random.NextDouble(); var section = CreateSection(); var result = new PipingFailureMechanismSectionResult(section); - var row = new PipingFailureMechanismSectionResultRow(result); + var row = new PipingFailureMechanismSectionResultRow(result, null); // Call row.AssessmentLayerThree = (RoundedDouble) newValue; @@ -212,7 +195,8 @@ { return new FailureMechanismSection("name", new[] { - new Point2D(0, 0) + new Point2D(0, 0), + new Point2D(1, 0) }); } } Index: Ringtoets/Piping/test/Ringtoets.Piping.Integration.Test/PipingFailureMechanismResultViewIntegrationTest.cs =================================================================== diff -u -re1705d17c577ac884869c00181cac52470cc50f2 -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/test/Ringtoets.Piping.Integration.Test/PipingFailureMechanismResultViewIntegrationTest.cs (.../PipingFailureMechanismResultViewIntegrationTest.cs) (revision e1705d17c577ac884869c00181cac52470cc50f2) +++ Ringtoets/Piping/test/Ringtoets.Piping.Integration.Test/PipingFailureMechanismResultViewIntegrationTest.cs (.../PipingFailureMechanismResultViewIntegrationTest.cs) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -84,7 +84,6 @@ // Add a piping calculation and ensure it is shown in the data grid view assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation1); assessmentSection.PipingFailureMechanism.CalculationsGroup.NotifyObservers(); - assessmentSection.PipingFailureMechanism.CalculationsGroup.AddCalculationScenariosToFailureMechanismSectionResult(assessmentSection.PipingFailureMechanism); Assert.AreEqual("-", dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].FormattedValue); Assert.AreEqual("Niet alle berekeningen voor dit vak zijn uitgevoerd.", dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].ErrorText); @@ -98,7 +97,6 @@ // Add another, nested calculation and ensure the data grid view is updated nestedPipingCalculationGroup.Children.Add(pipingCalculation2); nestedPipingCalculationGroup.NotifyObservers(); - assessmentSection.PipingFailureMechanism.CalculationsGroup.AddCalculationScenariosToFailureMechanismSectionResult(assessmentSection.PipingFailureMechanism); Assert.AreEqual(double.NaN.ToString(CultureInfo.InvariantCulture), dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].FormattedValue); Assert.AreEqual("Bijdrage van de geselecteerde scenario's voor dit vak is opgeteld niet gelijk aan 100%.", dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].ErrorText); @@ -120,12 +118,10 @@ var pipingCalculation3 = new PipingCalculationScenario(new GeneralPipingInput()); nestedPipingCalculationGroup.Children.Add(pipingCalculation3); nestedPipingCalculationGroup.NotifyObservers(); - assessmentSection.PipingFailureMechanism.CalculationsGroup.AddCalculationScenariosToFailureMechanismSectionResult(assessmentSection.PipingFailureMechanism); Assert.AreEqual(string.Format("1/{0:N0}", 1.0 / pipingCalculation1.Probability), dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].FormattedValue); Assert.AreEqual(string.Empty, dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].ErrorText); pipingCalculation3.InputParameters.SurfaceLine = assessmentSection.PipingFailureMechanism.SurfaceLines.First(sl => sl.Name == "PK001_0001"); - PipingCalculationScenarioService.SyncCalculationScenarioWithNewSurfaceLine(pipingCalculation3, assessmentSection.PipingFailureMechanism, null); pipingCalculation3.InputParameters.NotifyObservers(); Assert.AreEqual(double.NaN.ToString(CultureInfo.InvariantCulture), dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].FormattedValue); Assert.AreEqual("Bijdrage van de geselecteerde scenario's voor dit vak is opgeteld niet gelijk aan 100%.", dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].ErrorText); @@ -143,7 +139,6 @@ // Remove a calculation and make sure the data grid view is updated nestedPipingCalculationGroup.Children.Remove(pipingCalculation3); - PipingCalculationScenarioService.RemoveCalculationScenarioFromSectionResult(pipingCalculation3, assessmentSection.PipingFailureMechanism); nestedPipingCalculationGroup.NotifyObservers(); Assert.AreEqual(double.NaN.ToString(CultureInfo.InvariantCulture), dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].FormattedValue); Assert.AreEqual("Bijdrage van de geselecteerde scenario's voor dit vak is opgeteld niet gelijk aan 100%.", dataGridView.Rows[22].Cells[assessmentLayerTwoAIndex].ErrorText); Fisheye: Tag 80c86231452b9beb7e8b8eba3698ceb9c0551de3 refers to a dead (removed) revision in file `Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationScenarioServiceTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj =================================================================== diff -u -rc196992ccccf32ce0fd55b83a17e3f3574467a1e -r80c86231452b9beb7e8b8eba3698ceb9c0551de3 --- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj (.../Ringtoets.Piping.Service.Test.csproj) (revision c196992ccccf32ce0fd55b83a17e3f3574467a1e) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj (.../Ringtoets.Piping.Service.Test.csproj) (revision 80c86231452b9beb7e8b8eba3698ceb9c0551de3) @@ -59,7 +59,6 @@ -