Index: Riskeer/Piping/src/Riskeer.Piping.Service/PipingDataSynchronizationService.cs =================================================================== diff -u -rf3889f7c9d59a70d2da5be02cdb3858435dad29f -rde851b1488ab6396c74afda4993973752252f0cc --- Riskeer/Piping/src/Riskeer.Piping.Service/PipingDataSynchronizationService.cs (.../PipingDataSynchronizationService.cs) (revision f3889f7c9d59a70d2da5be02cdb3858435dad29f) +++ Riskeer/Piping/src/Riskeer.Piping.Service/PipingDataSynchronizationService.cs (.../PipingDataSynchronizationService.cs) (revision de851b1488ab6396c74afda4993973752252f0cc) @@ -87,25 +87,23 @@ } /// - /// Clears the output for all calculations in the , + /// Clears the output for all in the , /// except for the where /// is true. /// /// The which contains the calculations. /// An of calculations which are affected by clearing the output. /// Thrown when is null. - public static IEnumerable ClearAllCalculationOutputWithoutManualAssessmentLevel(PipingFailureMechanism failureMechanism) + public static IEnumerable ClearAllSemiProbabilisticCalculationOutputWithoutManualAssessmentLevel(PipingFailureMechanism failureMechanism) { if (failureMechanism == null) { throw new ArgumentNullException(nameof(failureMechanism)); } return failureMechanism.Calculations - .OfType>() - .Except(failureMechanism.Calculations - .OfType() - .Where(c => c.InputParameters.UseAssessmentLevelManualInput)) + .OfType() + .Where(c => !c.InputParameters.UseAssessmentLevelManualInput) .SelectMany(ClearCalculationOutput) .ToArray(); } Index: Riskeer/Piping/test/Riskeer.Piping.Service.Test/PipingDataSynchronizationServiceTest.cs =================================================================== diff -u -rf3889f7c9d59a70d2da5be02cdb3858435dad29f -rde851b1488ab6396c74afda4993973752252f0cc --- Riskeer/Piping/test/Riskeer.Piping.Service.Test/PipingDataSynchronizationServiceTest.cs (.../PipingDataSynchronizationServiceTest.cs) (revision f3889f7c9d59a70d2da5be02cdb3858435dad29f) +++ Riskeer/Piping/test/Riskeer.Piping.Service.Test/PipingDataSynchronizationServiceTest.cs (.../PipingDataSynchronizationServiceTest.cs) (revision de851b1488ab6396c74afda4993973752252f0cc) @@ -115,18 +115,18 @@ } [Test] - public void ClearAllCalculationOutputWithoutManualAssessmentLevel_FailureMechanismNull_ThrowsArgumentNullException() + public void ClearAllSemiProbabilisticCalculationOutputWithoutManualAssessmentLevel_FailureMechanismNull_ThrowsArgumentNullException() { // Call - void Call() => PipingDataSynchronizationService.ClearAllCalculationOutputWithoutManualAssessmentLevel(null); + void Call() => PipingDataSynchronizationService.ClearAllSemiProbabilisticCalculationOutputWithoutManualAssessmentLevel(null); // Assert var exception = Assert.Throws(Call); Assert.AreEqual("failureMechanism", exception.ParamName); } [Test] - public void ClearAllCalculationOutputWithoutManualAssessmentLevel_WithVariousCalculations_ClearsCalculationsOutputAndReturnsAffectedCalculations() + public void ClearAllSemiProbabilisticCalculationOutputWithoutManualAssessmentLevel_WithVariousCalculations_ClearsCalculationsOutputAndReturnsAffectedCalculations() { // Setup PipingFailureMechanism failureMechanism = PipingTestDataGenerator.GetPipingFailureMechanismWithAllCalculationConfigurations(); @@ -156,26 +156,21 @@ } }); - SemiProbabilisticPipingCalculationScenario[] exceptCalculations = failureMechanism.Calculations - .OfType() - .Where(c => c.InputParameters.UseAssessmentLevelManualInput) - .ToArray(); + SemiProbabilisticPipingCalculationScenario[] expectedAffectedCalculations = failureMechanism.Calculations + .OfType() + .Where(c => !c.InputParameters.UseAssessmentLevelManualInput && c.HasOutput) + .ToArray(); - IPipingCalculationScenario[] expectedAffectedCalculations = failureMechanism.Calculations - .OfType>() - .Except(exceptCalculations) - .Where(c => c.HasOutput) - .ToArray(); - // Call - IEnumerable affectedItems = PipingDataSynchronizationService.ClearAllCalculationOutputWithoutManualAssessmentLevel(failureMechanism); + IEnumerable affectedItems = PipingDataSynchronizationService.ClearAllSemiProbabilisticCalculationOutputWithoutManualAssessmentLevel(failureMechanism); // Assert // Note: To make sure the clear is performed regardless of what is done with // the return result, no ToArray() should be called before these assertions: Assert.IsTrue(failureMechanism.Calculations .OfType>() - .Except(exceptCalculations) + .OfType() + .Where(c => !c.InputParameters.UseAssessmentLevelManualInput) .All(c => !c.HasOutput)); CollectionAssert.AreEquivalent(expectedAffectedCalculations, affectedItems);