Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationActivity.cs =================================================================== diff -u -r033d7b8a24f6a4b966258700bc135a1a68881aff -rac31032858ae5f0004edaf7a2faf8729be5af244 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationActivity.cs (.../GrassCoverErosionInwardsCalculationActivity.cs) (revision 033d7b8a24f6a4b966258700bc135a1a68881aff) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationActivity.cs (.../GrassCoverErosionInwardsCalculationActivity.cs) (revision ac31032858ae5f0004edaf7a2faf8729be5af244) @@ -21,6 +21,7 @@ using System; using Core.Common.Base.Service; +using log4net; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Service; @@ -29,13 +30,17 @@ using Ringtoets.GrassCoverErosionInwards.Utils; using Ringtoets.HydraRing.Calculation.Activities; +using RingtoetsCommonServiceResources = Ringtoets.Common.Service.Properties.Resources; + namespace Ringtoets.GrassCoverErosionInwards.Service { /// /// for running a grass cover erosion inwards calculation. /// public class GrassCoverErosionInwardsCalculationActivity : HydraRingActivity { + private static readonly ILog log = LogManager.GetLogger(typeof(GrassCoverErosionInwardsCalculationActivity)); + private readonly GrassCoverErosionInwardsCalculation calculation; private readonly string hlcdDirectory; private readonly GrassCoverErosionInwardsFailureMechanism failureMechanism; @@ -92,6 +97,10 @@ () => calculation.ClearOutput(), () => { + log.Info(string.Format(RingtoetsCommonServiceResources.Calculation_Subject_0_started_Time_1_, + calculation.Name, + DateTimeService.CurrentTimeAsString)); + ProgressText = Resources.GrassCoverErosionInwardsCalculationActivity_OnRun_Calculate_probability; GrassCoverErosionInwardsCalculationServiceOutput output = GrassCoverErosionInwardsCalculationService.CalculateProbability(calculation, @@ -112,6 +121,10 @@ failureMechanism.GeneralInput); } + log.Info(string.Format(RingtoetsCommonServiceResources.Calculation_Subject_0_ended_Time_1_, + calculation.Name, + DateTimeService.CurrentTimeAsString)); + return output; }); } Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs =================================================================== diff -u -r033d7b8a24f6a4b966258700bc135a1a68881aff -rac31032858ae5f0004edaf7a2faf8729be5af244 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs (.../GrassCoverErosionInwardsCalculationService.cs) (revision 033d7b8a24f6a4b966258700bc135a1a68881aff) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs (.../GrassCoverErosionInwardsCalculationService.cs) (revision ac31032858ae5f0004edaf7a2faf8729be5af244) @@ -76,25 +76,20 @@ var exceedanceProbabilityCalculationParser = new ExceedanceProbabilityCalculationParser(); var waveHeightCalculationParser = new WaveHeightCalculationParser(); - CalculationServiceHelper.PerformCalculation( - calculation.Name, - () => + HydraRingCalculationService.PerformCalculation( + hlcdDirectory, + ringId, + HydraRingTimeIntegrationSchemeType.FerryBorgesCastanheta, + HydraRingUncertaintiesType.All, + overtoppingCalculationInput, + new IHydraRingFileParser[] { - HydraRingCalculationService.PerformCalculation( - hlcdDirectory, - ringId, - HydraRingTimeIntegrationSchemeType.FerryBorgesCastanheta, - HydraRingUncertaintiesType.All, - overtoppingCalculationInput, - new IHydraRingFileParser[] - { - exceedanceProbabilityCalculationParser, - waveHeightCalculationParser - }); - - VerifyOvertoppingCalculationOutput(exceedanceProbabilityCalculationParser.Output, waveHeightCalculationParser.Output, calculation.Name); + exceedanceProbabilityCalculationParser, + waveHeightCalculationParser }); + VerifyOvertoppingCalculationOutput(exceedanceProbabilityCalculationParser.Output, waveHeightCalculationParser.Output, calculation.Name); + return exceedanceProbabilityCalculationParser.Output != null && waveHeightCalculationParser.Output != null ? new GrassCoverErosionInwardsCalculationServiceOutput( exceedanceProbabilityCalculationParser.Output.Beta, @@ -122,26 +117,21 @@ { var targetProbabiltyCalculationParser = new TargetProbabilityCalculationParser(); - CalculationServiceHelper.PerformCalculation( - calculation.Name, - () => - { - DikeHeightCalculationInput dikeHeightCalculationInput = CreateDikeHeightInput(calculation, assessmentSection, failureMechanismSection, generalInput); + DikeHeightCalculationInput dikeHeightCalculationInput = CreateDikeHeightInput(calculation, assessmentSection, failureMechanismSection, generalInput); - HydraRingCalculationService.PerformCalculation( - hlcdDirectory, - ringId, - HydraRingTimeIntegrationSchemeType.FerryBorgesCastanheta, - HydraRingUncertaintiesType.All, - dikeHeightCalculationInput, - new IHydraRingFileParser[] - { - targetProbabiltyCalculationParser - }); - - VerifyDikeHeightCalculationOutput(targetProbabiltyCalculationParser.Output, calculation.Name); + HydraRingCalculationService.PerformCalculation( + hlcdDirectory, + ringId, + HydraRingTimeIntegrationSchemeType.FerryBorgesCastanheta, + HydraRingUncertaintiesType.All, + dikeHeightCalculationInput, + new IHydraRingFileParser[] + { + targetProbabiltyCalculationParser }); + VerifyDikeHeightCalculationOutput(targetProbabiltyCalculationParser.Output, calculation.Name); + return targetProbabiltyCalculationParser.Output == null ? double.NaN : targetProbabiltyCalculationParser.Output.Result; } Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Integration.Test/GrassCoverErosionInwardsCalculationActivityIntegrationTest.cs =================================================================== diff -u -r033d7b8a24f6a4b966258700bc135a1a68881aff -rac31032858ae5f0004edaf7a2faf8729be5af244 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Integration.Test/GrassCoverErosionInwardsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionInwardsCalculationActivityIntegrationTest.cs) (revision 033d7b8a24f6a4b966258700bc135a1a68881aff) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Integration.Test/GrassCoverErosionInwardsCalculationActivityIntegrationTest.cs (.../GrassCoverErosionInwardsCalculationActivityIntegrationTest.cs) (revision ac31032858ae5f0004edaf7a2faf8729be5af244) @@ -51,13 +51,8 @@ // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -94,13 +89,8 @@ FilePath = Path.Combine(testDataPath, "notexisting.sqlite") } }; + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -133,13 +123,8 @@ // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -171,13 +156,8 @@ // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -187,7 +167,7 @@ } }; - var activity = new GrassCoverErosionInwardsCalculationActivity(calculation, testDataPath, assessmentSection.GrassCoverErosionInwards, assessmentSection); + var activity = new GrassCoverErosionInwardsCalculationActivity(calculation, testDataPath, assessmentSection.GrassCoverErosionInwards, assessmentSection); // Call Action call = () => activity.Run(); @@ -215,13 +195,8 @@ var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -269,13 +244,8 @@ } }; ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -297,14 +267,12 @@ TestHelper.AssertLogMessages(call, messages => { var msgs = messages.ToArray(); - Assert.AreEqual(7, msgs.Length); + Assert.AreEqual(5, msgs.Length); StringAssert.StartsWith(String.Format("Validatie van '{0}' gestart om: ", calculation.Name), msgs[0]); StringAssert.StartsWith(String.Format("Validatie van '{0}' beëindigd om: ", calculation.Name), msgs[1]); StringAssert.StartsWith(String.Format("Berekening van '{0}' gestart om: ", calculation.Name), msgs[2]); - StringAssert.StartsWith(String.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[3]); - StringAssert.StartsWith(String.Format("Berekening van '{0}' gestart om: ", calculation.Name), msgs[4]); - StringAssert.StartsWith(String.Format("De HBN berekening voor grasbekleding erosie kruin en binnentalud '{0}' is niet gelukt.", calculation.Name), msgs[5]); - StringAssert.StartsWith(String.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[6]); + StringAssert.StartsWith(String.Format("De HBN berekening voor grasbekleding erosie kruin en binnentalud '{0}' is niet gelukt.", calculation.Name), msgs[3]); + StringAssert.StartsWith(String.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[4]); }); Assert.AreEqual(ActivityState.Executed, activity.State); mocks.VerifyAll(); // Expect no calls on the observer @@ -315,13 +283,8 @@ { var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -340,19 +303,14 @@ // Assert Assert.AreEqual(Resources.GrassCoverErosionInwardsCalculationActivity_OnRun_Calculate_probability, activity.ProgressText); } - + [Test] public void Run_CalculateDikeHeightTrueAndInvalidProbabilityCalculation_ProgressTextSetToProbabilityCalculation() { var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -377,13 +335,8 @@ { var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -414,13 +367,8 @@ var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -465,13 +413,8 @@ var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -498,21 +441,16 @@ [Test] public void Finish_CalculateDikeHeightTrueAndValidCalculationsAndRan_OutputSetAndObserversNotified() { - // Setup + // Setup var mocks = new MockRepository(); var observerMock = mocks.StrictMock(); observerMock.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -547,7 +485,7 @@ [Test] public void Finish_CalculateDikeHeightTrueAndInvalidDikeHeightCalculationAndRan_OutputSetAndObserversNotified() { - // Setup + // Setup var mocks = new MockRepository(); var observerMock = mocks.StrictMock(); observerMock.Expect(o => o.UpdateObserver()); @@ -561,13 +499,8 @@ } }; ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -594,6 +527,15 @@ mocks.VerifyAll(); } + private static void AddSectionToAssessmentSection(AssessmentSection assessmentSection) + { + assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] + { + new Point2D(0, 0), + new Point2D(1, 1) + })); + } + private void ImportHydraulicBoundaryDatabase(AssessmentSection assessmentSection) { string validFilePath = Path.Combine(testDataPath, "HRD dutch coast south.sqlite"); Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Integration.Test/GrassCoverErosionInwardsCalculationServiceIntegrationTest.cs =================================================================== diff -u -r033d7b8a24f6a4b966258700bc135a1a68881aff -rac31032858ae5f0004edaf7a2faf8729be5af244 --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Integration.Test/GrassCoverErosionInwardsCalculationServiceIntegrationTest.cs (.../GrassCoverErosionInwardsCalculationServiceIntegrationTest.cs) (revision 033d7b8a24f6a4b966258700bc135a1a68881aff) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Integration.Test/GrassCoverErosionInwardsCalculationServiceIntegrationTest.cs (.../GrassCoverErosionInwardsCalculationServiceIntegrationTest.cs) (revision ac31032858ae5f0004edaf7a2faf8729be5af244) @@ -194,13 +194,8 @@ // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var dikeProfile = GetDikeProfile(); var calculation = new GrassCoverErosionInwardsCalculation @@ -213,23 +208,15 @@ }; var failureMechanismSection = assessmentSection.GrassCoverErosionInwards.Sections.First(); - GrassCoverErosionInwardsCalculationServiceOutput output = null; // Call - Action call = () => output = GrassCoverErosionInwardsCalculationService.CalculateProbability(calculation, + GrassCoverErosionInwardsCalculationServiceOutput output = GrassCoverErosionInwardsCalculationService.CalculateProbability(calculation, testDataPath, failureMechanismSection, failureMechanismSection.Name, assessmentSection.GrassCoverErosionInwards.GeneralInput); // Assert - TestHelper.AssertLogMessages(call, messages => - { - var msgs = messages.ToArray(); - Assert.AreEqual(2, msgs.Length); - StringAssert.StartsWith(String.Format("Berekening van '{0}' gestart om: ", calculation.Name), msgs[0]); - StringAssert.StartsWith(String.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[1]); - }); Assert.IsNotNull(output); Assert.IsNull(output.DikeHeight); } @@ -240,13 +227,8 @@ // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = @@ -269,10 +251,8 @@ TestHelper.AssertLogMessages(call, messages => { var msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - StringAssert.StartsWith(String.Format("Berekening van '{0}' gestart om: ", calculation.Name), msgs[0]); - StringAssert.StartsWith(String.Format("De berekening voor grasbekleding erosie kruin en binnentalud '{0}' is niet gelukt.", calculation.Name), msgs[1]); - StringAssert.StartsWith(String.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[2]); + Assert.AreEqual(1, msgs.Length); + StringAssert.StartsWith(String.Format("De berekening voor grasbekleding erosie kruin en binnentalud '{0}' is niet gelukt.", calculation.Name), msgs[0]); }); Assert.IsNull(output); } @@ -283,13 +263,8 @@ // Setup var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var dikeProfile = GetDikeProfile(); var calculation = new GrassCoverErosionInwardsCalculation @@ -303,24 +278,16 @@ }; var failureMechanismSection = assessmentSection.GrassCoverErosionInwards.Sections.First(); - double? output = null; // Call - Action call = () => output = GrassCoverErosionInwardsCalculationService.CalculateDikeHeight(calculation, + double output = GrassCoverErosionInwardsCalculationService.CalculateDikeHeight(calculation, assessmentSection, testDataPath, failureMechanismSection, failureMechanismSection.Name, assessmentSection.GrassCoverErosionInwards.GeneralInput); // Assert - TestHelper.AssertLogMessages(call, messages => - { - var msgs = messages.ToArray(); - Assert.AreEqual(2, msgs.Length); - StringAssert.StartsWith(String.Format("Berekening van '{0}' gestart om: ", calculation.Name), msgs[0]); - StringAssert.StartsWith(String.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[1]); - }); Assert.AreEqual(15.5937, output); } @@ -336,13 +303,8 @@ } }; ImportHydraulicBoundaryDatabase(assessmentSection); + AddSectionToAssessmentSection(assessmentSection); - assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - var dikeProfile = GetDikeProfile(); var calculation = new GrassCoverErosionInwardsCalculation @@ -370,14 +332,21 @@ TestHelper.AssertLogMessages(call, messages => { var msgs = messages.ToArray(); - Assert.AreEqual(3, msgs.Length); - StringAssert.StartsWith(String.Format("Berekening van '{0}' gestart om: ", calculation.Name), msgs[0]); - StringAssert.StartsWith(String.Format("De HBN berekening voor grasbekleding erosie kruin en binnentalud '{0}' is niet gelukt.", calculation.Name), msgs[1]); - StringAssert.StartsWith(String.Format("Berekening van '{0}' beëindigd om: ", calculation.Name), msgs[2]); + Assert.AreEqual(1, msgs.Length); + StringAssert.StartsWith(String.Format("De HBN berekening voor grasbekleding erosie kruin en binnentalud '{0}' is niet gelukt.", calculation.Name), msgs[0]); }); Assert.IsNaN(output); } + private static void AddSectionToAssessmentSection(AssessmentSection assessmentSection) + { + assessmentSection.GrassCoverErosionInwards.AddSection(new FailureMechanismSection("test section", new[] + { + new Point2D(0, 0), + new Point2D(1, 1) + })); + } + private void ImportHydraulicBoundaryDatabase(AssessmentSection assessmentSection) { string validFilePath = Path.Combine(testDataPath, "HRD dutch coast south.sqlite");