Index: Riskeer/Common/src/Riskeer.Common.Data/Hydraulics/HydraulicBoundaryLocationCalculation.cs
===================================================================
diff -u -r247659d91db1609d27f3d565203f62bd5b70abcc -rc1a74b0264d164dc43c2fa7e29ee7f08dbc6d42f
--- Riskeer/Common/src/Riskeer.Common.Data/Hydraulics/HydraulicBoundaryLocationCalculation.cs (.../HydraulicBoundaryLocationCalculation.cs) (revision 247659d91db1609d27f3d565203f62bd5b70abcc)
+++ Riskeer/Common/src/Riskeer.Common.Data/Hydraulics/HydraulicBoundaryLocationCalculation.cs (.../HydraulicBoundaryLocationCalculation.cs) (revision c1a74b0264d164dc43c2fa7e29ee7f08dbc6d42f)
@@ -79,5 +79,23 @@
return !HasOutput || InputParameters.ShouldIllustrationPointsBeCalculated != Output.HasGeneralResult;
}
}
+
+ ///
+ /// Clears the calculated illustration points.
+ ///
+ public void ClearIllustrationPoints()
+ {
+ if (HasOutput)
+ {
+ HydraulicBoundaryLocationCalculationOutput originalOutput = Output;
+ Output = new HydraulicBoundaryLocationCalculationOutput(originalOutput.Result,
+ originalOutput.TargetProbability,
+ originalOutput.TargetReliability,
+ originalOutput.CalculatedProbability,
+ originalOutput.CalculatedReliability,
+ originalOutput.CalculationConvergence,
+ null);
+ }
+ }
}
}
\ No newline at end of file
Index: Riskeer/Common/src/Riskeer.Common.Service/RiskeerCommonDataSynchronizationService.cs
===================================================================
diff -u -r74be61490932801465aed774fde44995db15dffc -rc1a74b0264d164dc43c2fa7e29ee7f08dbc6d42f
--- Riskeer/Common/src/Riskeer.Common.Service/RiskeerCommonDataSynchronizationService.cs (.../RiskeerCommonDataSynchronizationService.cs) (revision 74be61490932801465aed774fde44995db15dffc)
+++ Riskeer/Common/src/Riskeer.Common.Service/RiskeerCommonDataSynchronizationService.cs (.../RiskeerCommonDataSynchronizationService.cs) (revision c1a74b0264d164dc43c2fa7e29ee7f08dbc6d42f)
@@ -75,14 +75,7 @@
{
if (calculation.HasOutput && calculation.Output.HasGeneralResult)
{
- HydraulicBoundaryLocationCalculationOutput originalOutput = calculation.Output;
- calculation.Output = new HydraulicBoundaryLocationCalculationOutput(originalOutput.Result,
- originalOutput.TargetProbability,
- originalOutput.TargetReliability,
- originalOutput.CalculatedProbability,
- originalOutput.CalculatedReliability,
- originalOutput.CalculationConvergence,
- null);
+ calculation.ClearIllustrationPoints();
affectedCalculations.Add(calculation);
}
}
Index: Riskeer/Common/test/Riskeer.Common.Data.Test/Hydraulics/HydraulicBoundaryLocationCalculationTest.cs
===================================================================
diff -u -rc4311504aa83ba59c5a7e80c0e9bc26650986c05 -rc1a74b0264d164dc43c2fa7e29ee7f08dbc6d42f
--- Riskeer/Common/test/Riskeer.Common.Data.Test/Hydraulics/HydraulicBoundaryLocationCalculationTest.cs (.../HydraulicBoundaryLocationCalculationTest.cs) (revision c4311504aa83ba59c5a7e80c0e9bc26650986c05)
+++ Riskeer/Common/test/Riskeer.Common.Data.Test/Hydraulics/HydraulicBoundaryLocationCalculationTest.cs (.../HydraulicBoundaryLocationCalculationTest.cs) (revision c1a74b0264d164dc43c2fa7e29ee7f08dbc6d42f)
@@ -62,8 +62,9 @@
}
[Test]
- public void HasOutput_WithOrWithoutOutput_ReturnsExpectedValue(
- [Values(true, false)] bool setOutput)
+ [TestCase(true)]
+ [TestCase(false)]
+ public void HasOutput_WithOrWithoutOutput_ReturnsExpectedValue(bool setOutput)
{
// Setup
var calculation = new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation());
@@ -91,6 +92,49 @@
Assert.AreEqual(expectedShouldCalculate, shouldCalculate);
}
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void ClearIllustrationPoints_CalculationWithOutput_ClearsIllustrationPointResult(bool hasIllustrationPoints)
+ {
+ // Setup
+ var random = new Random(21);
+ var originalOutput = new TestHydraulicBoundaryLocationCalculationOutput(random.NextDouble(),
+ hasIllustrationPoints
+ ? new TestGeneralResultSubMechanismIllustrationPoint()
+ : null);
+ var calculation = new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation())
+ {
+ Output = originalOutput
+ };
+
+ // Call
+ calculation.ClearIllustrationPoints();
+
+ // Assert
+ Assert.AreEqual(originalOutput.Result, calculation.Output.Result);
+ Assert.AreEqual(originalOutput.CalculatedProbability, calculation.Output.CalculatedProbability);
+ Assert.AreEqual(originalOutput.CalculatedReliability, calculation.Output.CalculatedReliability);
+ Assert.AreEqual(originalOutput.TargetProbability, calculation.Output.TargetProbability);
+ Assert.AreEqual(originalOutput.TargetReliability, calculation.Output.TargetReliability);
+ Assert.AreEqual(originalOutput.CalculationConvergence, calculation.Output.CalculationConvergence);
+
+ Assert.IsNull(calculation.Output.GeneralResult);
+ }
+
+ [Test]
+ public void ClearIllustrationPoints_CalculationWithoutOutput_NothingHappens()
+ {
+ // Setup
+ var calculation = new HydraulicBoundaryLocationCalculation(new TestHydraulicBoundaryLocation());
+
+ // Call
+ TestDelegate call = () => calculation.ClearIllustrationPoints();
+
+ // Assert
+ Assert.DoesNotThrow(call);
+ }
+
private static IEnumerable GetCalculations()
{
var outputWithoutGeneralResult = new TestHydraulicBoundaryLocationCalculationOutput(1.0, CalculationConvergence.CalculatedConverged);