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