Index: DamClients/DamLive/trunk/src/Deltares.Dam.Application.Live/DamEngineRunner.cs =================================================================== diff -u -r1826 -r1832 --- DamClients/DamLive/trunk/src/Deltares.Dam.Application.Live/DamEngineRunner.cs (.../DamEngineRunner.cs) (revision 1826) +++ DamClients/DamLive/trunk/src/Deltares.Dam.Application.Live/DamEngineRunner.cs (.../DamEngineRunner.cs) (revision 1832) @@ -257,7 +257,7 @@ } if (CalculationParameters.CalculationModules.StabilityOutside) { - RunStability(FailureMechanismSystemType.StabilityInside); + RunStability(FailureMechanismSystemType.StabilityOutside); } if (CalculationParameters.CalculationModules.Overtopping) { Index: DamClients/DamLive/trunk/data/Projects/Pulau Tekong/live.InputTimeSeries - novalues.xml =================================================================== diff -u --- DamClients/DamLive/trunk/data/Projects/Pulau Tekong/live.InputTimeSeries - novalues.xml (revision 0) +++ DamClients/DamLive/trunk/data/Projects/Pulau Tekong/live.InputTimeSeries - novalues.xml (revision 1832) @@ -0,0 +1,368 @@ + + + 0.0 + +
+ instantaneous + EWS sealevel 1 + Waterpressure + + + + -999.0 + EWS seaside CS-1 3-3 + m +
+ +
+ +
+ instantaneous + EWS polderlevel 1 + Waterpressure + + + + -999.0 + EWS polder CS-1 3-3 + m +
+ +
+ +
+ instantaneous + EWS sealevel 2 + Waterpressure + + + + -999.0 + EWS seaside CS-2 8-8 + m +
+ +
+ +
+ instantaneous + EWS polderlevel 2 + Waterpressure + + + + -999.0 + EWS polder CS-2 8-8 + m +
+ +
+ +
+ instantaneous + EWS sealevel 3 + Waterpressure + + + + -999.0 + EWS seaside CS-3 10-10 + m +
+ +
+ +
+ instantaneous + EWS polderlevel 3 + Waterpressure + + + + -999.0 + EWS polder CS-3 10-10 + m +
+ +
+ +
+ instantaneous + EWS cutoff drainlevel 1 + Waterpressure + + + + -999.0 + EWS cutoff drainlevel 1 + m +
+ +
+ +
+ instantaneous + EWS polderlevel 4 + Waterpressure + + + + -999.0 + EWS polderlevel 4 + m +
+ +
+ +
+ instantaneous + EWS cutoff drainlevel 2 + Waterpressure + + + + -999.0 + EWS cutoff drainlevel 2 + m +
+ +
+ +
+ instantaneous + EWS polderlevel 5 + Waterpressure + + + + -999.0 + EWS polderlevel 5 + m +
+ +
+ +
+ instantaneous + SD CS 1-1 + Waterpressure + + + + -999.0 + Seadike CS1-1 + m +
+ +
+ +
+ instantaneous + SD CS 1-2 + Waterpressure + + + + -999.0 + Seadike CS1-2 + m +
+ +
+ +
+ instantaneous + SD CS 1-3 + Waterpressure + + + + -999.0 + Seadike CS1-3 + m +
+ +
+ +
+ instantaneous + SD CS 1-4 + Waterpressure + + + + -999.0 + Seadike CS1-4 + m +
+ +
+ +
+ instantaneous + SD CS 2-1 + Waterpressure + + + + -999.0 + Seadike CS2-1 + m +
+ +
+ +
+ instantaneous + SD CS 2-2 + Waterpressure + + + + -999.0 + Seadike CS2-2 + m +
+ +
+ +
+ instantaneous + SD CS 2-3 + Waterpressure + + + + -999.0 + Seadike CS2-3 + m +
+ +
+ +
+ instantaneous + SD CS 2-4 + Waterpressure + + + + -999.0 + Seadike CS2-4 + m +
+ +
+ +
+ instantaneous + SD CS 3-1 + Waterpressure + + + + -999.0 + Seadike CS3-1 + m +
+ +
+ +
+ instantaneous + SD CS 3-2 + Waterpressure + + + + -999.0 + Seadike CS3-2 + m +
+ +
+ +
+ instantaneous + SD CS 3-3 + Waterpressure + + + + -999.0 + Seadike CS3-3 + m +
+ +
+ +
+ instantaneous + SD CS 3-4 + Waterpressure + + + + -999.0 + Seadike CS3-4 + m +
+ +
+ +
+ instantaneous + CD CS 1-1 + Waterpressure + + + + -999.0 + COdike CS1-1 + m +
+ +
+ +
+ instantaneous + CD CS 1-2 + Waterpressure + + + + -999.0 + COdike CS1-2 + m +
+ +
+ +
+ instantaneous + CD CS 2-1 + Waterpressure + + + + -999.0 + COdike CS2-1 + m +
+ +
+ +
+ instantaneous + CD CS 2-2 + Waterpressure + + + + -999.0 + COdike CS2-2 + m +
+ +
+
\ No newline at end of file Index: DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLivePulauTekong.cs =================================================================== diff -u -r1828 -r1832 --- DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLivePulauTekong.cs (.../DamLivePulauTekong.cs) (revision 1828) +++ DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLivePulauTekong.cs (.../DamLivePulauTekongTest.cs) (revision 1832) @@ -37,9 +37,11 @@ { #region Test Setup + private const double missingValue = -999.0; const string projectStabilityFilename = @"PulauTekong.damx"; - const string input1aFilename = @"live.InputTimeSeries.xml"; - const string output1aFilename = @"live.OutputTimeSeries.xml"; + const string inputFilenameWithValues = @"live.InputTimeSeries.xml"; + const string inputFilenameWithNoValues = @"live.InputTimeSeries - novalues.xml"; + const string outputFilename = @"live.OutputTimeSeries.xml"; const string calculationParametersStabilityFilename = @"live.ParametersFile.xml"; const string testWorkingFolder = @".\damLivePulauTekongWork"; @@ -78,7 +80,7 @@ /// /// Sets up the stability project. /// - private void SetupStabilityProject() + private void SetupStabilityProject(string inputFilename) { var actualTestPath = Path.GetFullPath(testWorkingFolder); @@ -87,8 +89,8 @@ DirectoryHelper.CopyRecursive(actualTestPath, testStablityDataFolder); //inputFile = Path.Combine(actualTestPath, "live.FEWS.InputFile.1Step.xml"); - inputFile = Path.Combine(actualTestPath, input1aFilename); - outputFile = Path.Combine(actualTestPath, output1aFilename); + inputFile = Path.Combine(actualTestPath, inputFilename); + outputFile = Path.Combine(actualTestPath, outputFilename); parameterFile = Path.Combine(actualTestPath, calculationParametersStabilityFilename); projectFile = Path.Combine(actualTestPath, projectStabilityFilename); @@ -162,10 +164,10 @@ /// [Test] [Category("Integration")] - public void CalculateStabilityUsingTestFilesHasExpectedResultsInOutputFile() + public void CalculateStabilityOutsideUsingTestFilesHasExpectedResultsInOutputFile() { const double cTolerance = 0.0005; - SetupStabilityProject(); + SetupStabilityProject(inputFilenameWithValues); runner.Initialize(); Assert.IsNotNull(runner); @@ -175,7 +177,6 @@ Assert.IsNotNull(runner.CalculationParameters.MStabParameters); runner.Run(); - //runner.WriteResultsToFile(outputFile); AssertNoErrors(); @@ -184,7 +185,7 @@ var series = runner.OutputTimeSeriesCollection.Series; int seriesCount = 0; - + int calculatedLocationCount = 0; var validParameterIDs = Enum.GetNames(typeof(TimeSerieParameters)); foreach (var timeSeries in series) { @@ -193,13 +194,16 @@ // StabilityOutside check if (timeSeries.ParameterId == TimeSerieParameters.StabilityOutsideFactor.ToString()) { + if (timeSeries.LocationId == "CD CS1 X1") { + calculatedLocationCount++; var firstEntry = timeSeries.Entries.First(); Assert.AreEqual(2.486106, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); } if (timeSeries.LocationId == "CD CS2 X3") { + calculatedLocationCount++; var firstEntry = timeSeries.Entries.First(); Assert.AreEqual(2.114159, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); } @@ -209,7 +213,61 @@ } Assert.IsTrue(seriesCount > 0, "No output time series"); + Assert.IsTrue(calculatedLocationCount == 2, "Not all locations have output for stability outside"); } + [Test] + [Category("Integration")] + public void CalculateStabilityOutsideUsingTestFilesWithNoValuesHasOutputFileWithNoValues() + { + const double cTolerance = 0.0005; + SetupStabilityProject(inputFilenameWithNoValues); + runner.Initialize(); + + Assert.IsNotNull(runner); + Assert.IsNotNull(runner.DamProjectData); + Assert.IsNotNull(runner.CalculationParameters); + Assert.IsNotNull(runner.CalculationParameters.CalculationModules); + Assert.IsNotNull(runner.CalculationParameters.MStabParameters); + + runner.Run(); + + AssertNoErrors(); + + // Assertions + + var series = runner.OutputTimeSeriesCollection.Series; + + int seriesCount = 0; + int calculatedLocationCount = 0; + var validParameterIDs = Enum.GetNames(typeof(TimeSerieParameters)); + foreach (var timeSeries in series) + { + Assert.IsTrue(validParameterIDs.Any(n => n == timeSeries.ParameterId)); + Assert.IsTrue(locations.Any(l => l.Name == timeSeries.LocationId)); + // StabilityOutside check + if (timeSeries.ParameterId == TimeSerieParameters.StabilityOutsideFactor.ToString()) + { + if (timeSeries.LocationId == "CD CS1 X1") + { + calculatedLocationCount++; + var firstEntry = timeSeries.Entries.First(); + Assert.AreEqual(missingValue, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); + } + if (timeSeries.LocationId == "CD CS2 X3") + { + calculatedLocationCount++; + var firstEntry = timeSeries.Entries.First(); + Assert.AreEqual(missingValue, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); + } + } + + seriesCount++; + } + + Assert.IsTrue(seriesCount > 0, "No output time series"); + Assert.IsTrue(calculatedLocationCount == 2, "Not all locations have output for stability outside"); + } + } } Fisheye: Tag 1832 refers to a dead (removed) revision in file `DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLivePulauTekong.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/Deltares.DamLive.Tests.csproj =================================================================== diff -u -r1807 -r1832 --- DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/Deltares.DamLive.Tests.csproj (.../Deltares.DamLive.Tests.csproj) (revision 1807) +++ DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/Deltares.DamLive.Tests.csproj (.../Deltares.DamLive.Tests.csproj) (revision 1832) @@ -55,7 +55,7 @@ - + Index: DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLiveGrebbedijkTest.cs =================================================================== diff -u -r1828 -r1832 --- DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLiveGrebbedijkTest.cs (.../DamLiveGrebbedijkTest.cs) (revision 1828) +++ DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/DamLiveGrebbedijkTest.cs (.../DamLiveGrebbedijkTest.cs) (revision 1832) @@ -86,7 +86,6 @@ DirectoryHelper.CopyRecursive(actualTestPath, testStablityDataFolder); - //inputFile = Path.Combine(actualTestPath, "live.FEWS.InputFile.1Step.xml"); inputFile = Path.Combine(actualTestPath, input1aFilename); outputFile = Path.Combine(actualTestPath, output1aFilename); parameterFile = Path.Combine(actualTestPath, calculationParametersStabilityFilename); @@ -212,6 +211,5 @@ Assert.IsTrue(seriesCount > 0, "No output time series"); } - } }