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);