Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/Helpers/HydraulicBoundaryLocationCalculationsForTargetProbabilityHelper.cs =================================================================== diff -u --- Riskeer/Integration/src/Riskeer.Integration.Plugin/Helpers/HydraulicBoundaryLocationCalculationsForTargetProbabilityHelper.cs (revision 0) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/Helpers/HydraulicBoundaryLocationCalculationsForTargetProbabilityHelper.cs (revision 84c0244a6582e88b4c5af4e41dc8715655ae3aad) @@ -0,0 +1,58 @@ +// Copyright (C) Stichting Deltares 2022. All rights reserved. +// +// This file is part of Riskeer. +// +// Riskeer is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Linq; +using Riskeer.Common.Data.AssessmentSection; +using Riskeer.Common.Data.Hydraulics; + +namespace Riskeer.Integration.Plugin.Helpers +{ + /// + /// Helper class for . + /// + public static class HydraulicBoundaryLocationCalculationsForTargetProbabilityHelper + { + /// + /// Creates a new + /// and sets the calculations for all locations of the . + /// + /// The to get the locations from. + /// The probability of the calculations to add. + /// The created . + /// Thrown when + /// is null. + public static HydraulicBoundaryLocationCalculationsForTargetProbability Create(IAssessmentSection assessmentSection, double probability = 0.01) + { + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(probability); + + calculationsForTargetProbability.HydraulicBoundaryLocationCalculations.AddRange( + assessmentSection.HydraulicBoundaryData.GetLocations().Select(hbl => new HydraulicBoundaryLocationCalculation(hbl))); + + return calculationsForTargetProbability; + } + } +} \ No newline at end of file Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/RiskeerPlugin.cs =================================================================== diff -u -reddb7614c96ab6430d57eda0244258f1f95b2cf4 -r84c0244a6582e88b4c5af4e41dc8715655ae3aad --- Riskeer/Integration/src/Riskeer.Integration.Plugin/RiskeerPlugin.cs (.../RiskeerPlugin.cs) (revision eddb7614c96ab6430d57eda0244258f1f95b2cf4) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/RiskeerPlugin.cs (.../RiskeerPlugin.cs) (revision 84c0244a6582e88b4c5af4e41dc8715655ae3aad) @@ -83,6 +83,7 @@ using Riskeer.Integration.IO.Importers; using Riskeer.Integration.Plugin.FileImporters; using Riskeer.Integration.Plugin.Handlers; +using Riskeer.Integration.Plugin.Helpers; using Riskeer.Integration.Plugin.Merge; using Riskeer.Integration.Plugin.Properties; using Riskeer.Integration.Service; @@ -2598,9 +2599,7 @@ RiskeerCommonFormsResources.GenericInputOutputIcon, (sender, args) => { - HydraulicBoundaryLocationCalculationsForTargetProbability hydraulicBoundaryLocationCalculationsForTargetProbability = CreateHydraulicBoundaryLocationCalculationsForTargetProbability(assessmentSection); - - nodeData.WrappedData.Add(hydraulicBoundaryLocationCalculationsForTargetProbability); + nodeData.WrappedData.Add(HydraulicBoundaryLocationCalculationsForTargetProbabilityHelper.Create(assessmentSection)); nodeData.WrappedData.NotifyObservers(); }); @@ -2723,9 +2722,7 @@ RiskeerCommonFormsResources.GenericInputOutputIcon, (sender, args) => { - HydraulicBoundaryLocationCalculationsForTargetProbability hydraulicBoundaryLocationCalculationsForTargetProbability = CreateHydraulicBoundaryLocationCalculationsForTargetProbability(assessmentSection); - - nodeData.WrappedData.Add(hydraulicBoundaryLocationCalculationsForTargetProbability); + nodeData.WrappedData.Add(HydraulicBoundaryLocationCalculationsForTargetProbabilityHelper.Create(assessmentSection)); nodeData.WrappedData.NotifyObservers(); }); @@ -2801,16 +2798,6 @@ .Any(whc => IllustrationPointsHelper.HasIllustrationPoints(whc.HydraulicBoundaryLocationCalculations)); } - private static HydraulicBoundaryLocationCalculationsForTargetProbability CreateHydraulicBoundaryLocationCalculationsForTargetProbability(IAssessmentSection assessmentSection) - { - var calculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.01); - - calculationsForTargetProbability.HydraulicBoundaryLocationCalculations.AddRange( - assessmentSection.HydraulicBoundaryData.GetLocations().Select(hbl => new HydraulicBoundaryLocationCalculation(hbl))); - - return calculationsForTargetProbability; - } - #endregion #region AssemblyResults TreeNodeInfo Index: Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Helpers/HydraulicBoundaryLocationCalculationsForTargetProbabilityHelperTest.cs =================================================================== diff -u --- Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Helpers/HydraulicBoundaryLocationCalculationsForTargetProbabilityHelperTest.cs (revision 0) +++ Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Helpers/HydraulicBoundaryLocationCalculationsForTargetProbabilityHelperTest.cs (revision 84c0244a6582e88b4c5af4e41dc8715655ae3aad) @@ -0,0 +1,97 @@ +// Copyright (C) Stichting Deltares 2022. All rights reserved. +// +// This file is part of Riskeer. +// +// Riskeer is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Linq; +using NUnit.Framework; +using Riskeer.Common.Data.Hydraulics; +using Riskeer.Common.Data.TestUtil; +using Riskeer.Integration.Plugin.Helpers; + +namespace Riskeer.Integration.Plugin.Test.Helpers +{ + [TestFixture] + public class HydraulicBoundaryLocationCalculationsForTargetProbabilityHelperTest + { + [Test] + public void Create_AssessmentSectionNull_ThrowsArgumentNullException() + { + // Call + void Call() => HydraulicBoundaryLocationCalculationsForTargetProbabilityHelper.Create(null); + + // Assert + var exception = Assert.Throws(Call); + Assert.AreEqual("assessmentSection", exception.ParamName); + } + + [Test] + public void Create_WithoutProbability_ReturnsHydraulicBoundaryLocationCalculationsForTargetProbability() + { + // Setup + var assessmentSection = new AssessmentSectionStub(); + assessmentSection.HydraulicBoundaryData.HydraulicBoundaryDatabases.Add(new HydraulicBoundaryDatabase + { + Locations = + { + new TestHydraulicBoundaryLocation(), + new TestHydraulicBoundaryLocation() + } + }); + + // Call + HydraulicBoundaryLocationCalculationsForTargetProbability hydraulicBoundaryLocationCalculationsForTargetProbability = + HydraulicBoundaryLocationCalculationsForTargetProbabilityHelper.Create(assessmentSection); + + // Assert + Assert.AreEqual(0.01, hydraulicBoundaryLocationCalculationsForTargetProbability.TargetProbability); + CollectionAssert.AreEqual(assessmentSection.HydraulicBoundaryData.GetLocations(), + hydraulicBoundaryLocationCalculationsForTargetProbability.HydraulicBoundaryLocationCalculations + .Select(c => c.HydraulicBoundaryLocation)); + } + + [Test] + public void Create_WitProbability_ReturnsHydraulicBoundaryLocationCalculationsForTargetProbability() + { + // Setup + var assessmentSection = new AssessmentSectionStub(); + assessmentSection.HydraulicBoundaryData.HydraulicBoundaryDatabases.Add(new HydraulicBoundaryDatabase + { + Locations = + { + new TestHydraulicBoundaryLocation(), + new TestHydraulicBoundaryLocation() + } + }); + + const double probability = 0.01234; + + // Call + HydraulicBoundaryLocationCalculationsForTargetProbability hydraulicBoundaryLocationCalculationsForTargetProbability = + HydraulicBoundaryLocationCalculationsForTargetProbabilityHelper.Create(assessmentSection, probability); + + // Assert + Assert.AreEqual(probability, hydraulicBoundaryLocationCalculationsForTargetProbability.TargetProbability); + CollectionAssert.AreEqual(assessmentSection.HydraulicBoundaryData.GetLocations(), + hydraulicBoundaryLocationCalculationsForTargetProbability.HydraulicBoundaryLocationCalculations + .Select(c => c.HydraulicBoundaryLocation)); + } + } +} \ No newline at end of file