Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Forms/GuiServices/DuneLocationCalculationGuiService.cs
===================================================================
diff -u -r16ff9b6edce7916571518d621021b2995c1c01aa -r63a5a07d2178d1a83e2439cb40bcfd8cae317455
--- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Forms/GuiServices/DuneLocationCalculationGuiService.cs (.../DuneLocationCalculationGuiService.cs) (revision 16ff9b6edce7916571518d621021b2995c1c01aa)
+++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Forms/GuiServices/DuneLocationCalculationGuiService.cs (.../DuneLocationCalculationGuiService.cs) (revision 63a5a07d2178d1a83e2439cb40bcfd8cae317455)
@@ -97,6 +97,7 @@
ActivityProgressDialogRunner.Run(
viewParent,
locations.Select(l => new DuneErosionBoundaryCalculationActivity(l,
+ getCalculationFunc(l),
hydraulicBoundaryDatabaseFilePath,
preprocessorDirectory,
norm)).ToArray());
Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionBoundaryCalculationActivity.cs
===================================================================
diff -u -r397eafbec8987f6aa2e31318745c4e07ed575981 -r63a5a07d2178d1a83e2439cb40bcfd8cae317455
--- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionBoundaryCalculationActivity.cs (.../DuneErosionBoundaryCalculationActivity.cs) (revision 397eafbec8987f6aa2e31318745c4e07ed575981)
+++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionBoundaryCalculationActivity.cs (.../DuneErosionBoundaryCalculationActivity.cs) (revision 63a5a07d2178d1a83e2439cb40bcfd8cae317455)
@@ -33,6 +33,7 @@
public class DuneErosionBoundaryCalculationActivity : HydraRingActivityBase
{
private readonly DuneLocation duneLocation;
+ private readonly DuneLocationCalculation duneLocationCalculation;
private readonly string hydraulicBoundaryDatabaseFilePath;
private readonly string preprocessorDirectory;
private readonly double norm;
@@ -42,16 +43,17 @@
/// Creates a new instance of .
///
/// The to perform the calculation for.
+ /// The to perform.
/// The hydraulic boundary database file that
/// should be used for performing the calculation.
/// The preprocessor directory.
/// The norm to use during the calculation.
/// Preprocessing is disabled when
/// equals .
- /// Thrown when ,
- /// or
- /// is null.
+ /// Thrown when or
+ /// is null.
public DuneErosionBoundaryCalculationActivity(DuneLocation duneLocation,
+ DuneLocationCalculation duneLocationCalculation,
string hydraulicBoundaryDatabaseFilePath,
string preprocessorDirectory,
double norm)
@@ -61,7 +63,13 @@
throw new ArgumentNullException(nameof(duneLocation));
}
+ if (duneLocationCalculation == null)
+ {
+ throw new ArgumentNullException(nameof(duneLocationCalculation));
+ }
+
this.duneLocation = duneLocation;
+ this.duneLocationCalculation = duneLocationCalculation;
this.hydraulicBoundaryDatabaseFilePath = hydraulicBoundaryDatabaseFilePath;
this.preprocessorDirectory = preprocessorDirectory;
this.norm = norm;
@@ -108,7 +116,7 @@
{
get
{
- return duneLocation.Calculation.Output != null;
+ return duneLocationCalculation.Output != null;
}
}
}
Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneErosionBoundaryCalculationActivityIntegrationTest.cs
===================================================================
diff -u -rb0e228408016f88b94ac63d6896e5bc7668a75c1 -r63a5a07d2178d1a83e2439cb40bcfd8cae317455
--- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneErosionBoundaryCalculationActivityIntegrationTest.cs (.../DuneErosionBoundaryCalculationActivityIntegrationTest.cs) (revision b0e228408016f88b94ac63d6896e5bc7668a75c1)
+++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Integration.Test/DuneErosionBoundaryCalculationActivityIntegrationTest.cs (.../DuneErosionBoundaryCalculationActivityIntegrationTest.cs) (revision 63a5a07d2178d1a83e2439cb40bcfd8cae317455)
@@ -61,7 +61,9 @@
Orientation = 0,
D50 = 0.000007
});
+ var duneLocationCalculation = new DuneLocationCalculation();
var activity = new DuneErosionBoundaryCalculationActivity(duneLocation,
+ duneLocationCalculation,
validFilePath,
validPreprocessorDirectory,
1.0 / 30000);
@@ -121,7 +123,9 @@
Orientation = 0,
D50 = 0.000007
});
+ var duneLocationCalculation = new DuneLocationCalculation();
var activity = new DuneErosionBoundaryCalculationActivity(duneLocation,
+ duneLocationCalculation,
validFilePath,
validPreprocessorDirectory,
1.0 / 30000);
@@ -147,14 +151,13 @@
mockRepository.ReplayAll();
var initialOutput = new TestDuneLocationOutput();
- var duneLocation = new TestDuneLocation
+ var duneLocation = new TestDuneLocation();
+ var duneLocationCalculation = new DuneLocationCalculation
{
- Calculation =
- {
- Output = initialOutput
- }
+ Output = initialOutput
};
var activity = new DuneErosionBoundaryCalculationActivity(duneLocation,
+ duneLocationCalculation,
validFilePath,
validPreprocessorDirectory,
1.0 / 30000);
@@ -166,7 +169,7 @@
// Assert
Assert.AreEqual(ActivityState.Skipped, activity.State);
- Assert.AreSame(initialOutput, duneLocation.Calculation.Output);
+ Assert.AreSame(initialOutput, duneLocationCalculation.Output);
}
mockRepository.VerifyAll();
Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionBoundaryCalculationActivityTest.cs
===================================================================
diff -u -rb0e228408016f88b94ac63d6896e5bc7668a75c1 -r63a5a07d2178d1a83e2439cb40bcfd8cae317455
--- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionBoundaryCalculationActivityTest.cs (.../DuneErosionBoundaryCalculationActivityTest.cs) (revision b0e228408016f88b94ac63d6896e5bc7668a75c1)
+++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionBoundaryCalculationActivityTest.cs (.../DuneErosionBoundaryCalculationActivityTest.cs) (revision 63a5a07d2178d1a83e2439cb40bcfd8cae317455)
@@ -59,9 +59,11 @@
{
// Setup
var duneLocation = new TestDuneLocation();
+ var duneLocationCalculation = new DuneLocationCalculation();
// Call
var activity = new DuneErosionBoundaryCalculationActivity(duneLocation,
+ duneLocationCalculation,
validFilePath,
validPreprocessorDirectory,
1.0 / 30000);
@@ -78,6 +80,7 @@
{
// Call
TestDelegate test = () => new DuneErosionBoundaryCalculationActivity(null,
+ new DuneLocationCalculation(),
validFilePath,
validPreprocessorDirectory,
1.0 / 30000);
@@ -88,15 +91,32 @@
}
[Test]
+ public void Constructor_DuneLocationCalculationNull_ThrowArgumentNullException()
+ {
+ // Call
+ TestDelegate test = () => new DuneErosionBoundaryCalculationActivity(new TestDuneLocation(),
+ null,
+ validFilePath,
+ validPreprocessorDirectory,
+ 1.0 / 30000);
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("duneLocationCalculation", exception.ParamName);
+ }
+
+ [Test]
public void Run_InvalidHydraulicBoundaryDatabase_PerformValidationAndLogStartAndEndAndError()
{
// Setup
string invalidFilePath = Path.Combine(testDataPath, "notexisting.sqlite");
const string locationName = "testLocation";
var duneLocation = new TestDuneLocation(locationName);
+ var duneLocationCalculation = new DuneLocationCalculation();
var activity = new DuneErosionBoundaryCalculationActivity(duneLocation,
+ duneLocationCalculation,
invalidFilePath,
validPreprocessorDirectory,
0.5);
@@ -125,8 +145,10 @@
const string invalidPreprocessorDirectory = "NonExistingPreprocessorDirectory";
const string locationName = "testLocation";
var duneLocation = new TestDuneLocation(locationName);
+ var duneLocationCalculation = new DuneLocationCalculation();
var activity = new DuneErosionBoundaryCalculationActivity(duneLocation,
+ duneLocationCalculation,
validFilePath,
invalidPreprocessorDirectory,
0.5);
@@ -156,6 +178,7 @@
const string locationName = "some name";
var duneLocation = new TestDuneLocation(locationName);
+ var duneLocationCalculation = new DuneLocationCalculation();
var calculator = new TestDunesBoundaryConditionsCalculator
{
Converged = true
@@ -166,6 +189,7 @@
mockRepository.ReplayAll();
var activity = new DuneErosionBoundaryCalculationActivity(duneLocation,
+ duneLocationCalculation,
validFilePath,
validPreprocessorDirectory,
norm);
@@ -193,6 +217,7 @@
Assert.AreEqual(duneLocation.Id, calculationInput.HydraulicBoundaryLocationId);
Assert.AreEqual(StatisticsConverter.ProbabilityToReliability(norm), calculationInput.Beta);
}
+
Assert.AreEqual(ActivityState.Executed, activity.State);
mockRepository.VerifyAll();
}
@@ -201,15 +226,14 @@
public void Run_DuneLocationOutputSet_ValidationAndCalculationNotPerformedAndStateSkipped()
{
// Setup
- var duneLocation = new TestDuneLocation("locationName")
+ var duneLocation = new TestDuneLocation("locationName");
+ var duneLocationCalculation = new DuneLocationCalculation
{
- Calculation =
- {
- Output = new DuneLocationOutput(CalculationConvergence.CalculatedConverged, new DuneLocationOutput.ConstructionProperties())
- }
+ Output = new DuneLocationOutput(CalculationConvergence.CalculatedConverged, new DuneLocationOutput.ConstructionProperties())
};
var activity = new DuneErosionBoundaryCalculationActivity(duneLocation,
+ duneLocationCalculation,
validFilePath,
validPreprocessorDirectory,
0.5);
@@ -233,6 +257,7 @@
double expectedReliabilityIndex = random.NextDouble();
var duneLocation = new TestDuneLocation();
+ var duneLocationCalculation = new DuneLocationCalculation();
var calculator = new TestDunesBoundaryConditionsCalculator
{
WaterLevel = expectedWaterLevel,
@@ -247,6 +272,7 @@
mockRepository.ReplayAll();
var activity = new DuneErosionBoundaryCalculationActivity(duneLocation,
+ duneLocationCalculation,
validFilePath,
validPreprocessorDirectory,
norm);
@@ -258,7 +284,7 @@
}
// Assert
- DuneLocationOutput duneLocationOutput = duneLocation.Calculation.Output;
+ DuneLocationOutput duneLocationOutput = duneLocationCalculation.Output;
Assert.IsNotNull(duneLocationOutput);
Assert.AreEqual(expectedWaterLevel, duneLocationOutput.WaterLevel, duneLocationOutput.WaterLevel.GetAccuracy());
Assert.AreEqual(expectedWaveHeight, duneLocationOutput.WaveHeight, duneLocationOutput.WaveHeight.GetAccuracy());
@@ -287,8 +313,10 @@
mockRepository.ReplayAll();
var duneLocation = new TestDuneLocation("dune location");
+ var duneLocationCalculation = new DuneLocationCalculation();
var activity = new DuneErosionBoundaryCalculationActivity(duneLocation,
+ duneLocationCalculation,
validFilePath,
validPreprocessorDirectory,
0.5);
@@ -302,6 +330,7 @@
string calculationfailedMessage = $"Hydraulische randvoorwaarden berekening voor locatie '{duneLocation.Name}' is mislukt. {detailedReport}";
TestHelper.AssertLogMessageIsGenerated(call, calculationfailedMessage, 7);
}
+
mockRepository.VerifyAll();
}
@@ -320,8 +349,10 @@
const string locationName = "some name";
var duneLocation = new TestDuneLocation(locationName);
+ var duneLocationCalculation = new DuneLocationCalculation();
var activity = new DuneErosionBoundaryCalculationActivity(duneLocation,
+ duneLocationCalculation,
validFilePath,
validPreprocessorDirectory,
0.5);
@@ -347,6 +378,7 @@
Assert.AreEqual(CalculationConvergence.CalculatedNotConverged, duneLocation.Calculation.Output.CalculationConvergence);
}
+
mockRepository.VerifyAll();
}
@@ -359,6 +391,7 @@
{
// Setup
var duneLocation = new TestDuneLocation();
+ var duneLocationCalculation = new DuneLocationCalculation();
var calculator = new TestDunesBoundaryConditionsCalculator
{
@@ -371,6 +404,7 @@
mockRepository.ReplayAll();
var activity = new DuneErosionBoundaryCalculationActivity(duneLocation,
+ duneLocationCalculation,
validFilePath,
validPreprocessorDirectory,
0.5);
@@ -383,6 +417,7 @@
// Assert
Assert.AreEqual(ActivityState.Failed, activity.State);
}
+
mockRepository.VerifyAll();
}
@@ -395,13 +430,15 @@
{
// Setup
var duneLocation = new TestDuneLocation();
+ var duneLocationCalculation = new DuneLocationCalculation();
var observer = mockRepository.StrictMock();
observer.Expect(o => o.UpdateObserver());
duneLocation.Attach(observer);
mockRepository.ReplayAll();
var activity = new DuneErosionBoundaryCalculationActivityWithState(duneLocation,
+ duneLocationCalculation,
validFilePath,
validPreprocessorDirectory,
1.0,
@@ -417,11 +454,13 @@
private class DuneErosionBoundaryCalculationActivityWithState : DuneErosionBoundaryCalculationActivity
{
public DuneErosionBoundaryCalculationActivityWithState(DuneLocation duneLocation,
+ DuneLocationCalculation duneLocationCalculation,
string hydraulicBoundaryDatabaseFilePath,
string preprocessorDirectory,
double norm,
ActivityState state)
: base(duneLocation,
+ duneLocationCalculation,
hydraulicBoundaryDatabaseFilePath,
preprocessorDirectory,
norm)