Index: DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/StabilityInsideBishopGridTest.cs =================================================================== diff -u -r4166 -r4219 --- DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/StabilityInsideBishopGridTest.cs (.../StabilityInsideBishopGridTest.cs) (revision 4166) +++ DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/StabilityInsideBishopGridTest.cs (.../StabilityInsideBishopGridTest.cs) (revision 4219) @@ -84,7 +84,7 @@ runner.StabilityWorkingPath = Path.GetTempPath(); runner.Run(); - //runner.OutputTimeSeriesCollection.Save("BishopGridOutputFile"+ GeneralHelper.CMinCores); + runner.OutputTimeSeriesCollection.Save("BishopGridOutputFile" + maxCores); GeneralHelper.AssertNoErrors(runner); Index: DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/StabilityInsideUpliftVanGridTest.cs =================================================================== diff -u -r4166 -r4219 --- DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/StabilityInsideUpliftVanGridTest.cs (.../StabilityInsideUpliftVanGridTest.cs) (revision 4166) +++ DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/StabilityInsideUpliftVanGridTest.cs (.../StabilityInsideUpliftVanGridTest.cs) (revision 4219) @@ -81,7 +81,7 @@ Assert.IsNotNull(runner.CalculationParameters.MStabParameters); runner.Run(); - runner.OutputTimeSeriesCollection.Save("UpliftVanOutputFile"+ GeneralHelper.CMinCores); + runner.OutputTimeSeriesCollection.Save("UpliftVanOutputFile" + maxCores); GeneralHelper.AssertNoErrors(runner); Index: DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/StabilityInsideUpliftVanBeeSwarmTest.cs =================================================================== diff -u -r4166 -r4219 --- DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/StabilityInsideUpliftVanBeeSwarmTest.cs (.../StabilityInsideUpliftVanBeeSwarmTest.cs) (revision 4166) +++ DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/StabilityInsideUpliftVanBeeSwarmTest.cs (.../StabilityInsideUpliftVanBeeSwarmTest.cs) (revision 4219) @@ -21,9 +21,13 @@ using System; using System.Collections.Generic; +using System.Globalization; +using System.IO; using System.Linq; +using System.Threading; using Deltares.Dam.Application.Live; using Deltares.Dam.Data; +using Deltares.DamEngine.Interface; using Deltares.DamLive.TestHelper; using NUnit.Framework; @@ -80,7 +84,7 @@ Assert.IsNotNull(runner.CalculationParameters.MStabParameters); runner.Run(); - runner.OutputTimeSeriesCollection.Save("UpliftVanBeeSwarmOutputFile"+ GeneralHelper.CMinCores); + runner.OutputTimeSeriesCollection.Save("UpliftVanBeeSwarmOutputFile" + maxCores); GeneralHelper.AssertNoErrors(runner); @@ -185,4 +189,127 @@ Assert.IsTrue(seriesCount > 0, "No output time series"); Assert.AreEqual(16, resultsCount, "Incorrect number of results"); } + + [Category("Integration")] + [Category("Work_In_Progress")] + [TestCase(10)] + [TestCase(24)] + public void OperationalBeeSwarmMultiCoreWithXmlInputFile(int maxCores) + { + const string inputFilename = "InputForDebuggingBeeSwarm.xml"; // or put your own name here; + string fullInputFilename = Path.Combine(testIntegrationDataFolder, inputFilename); + Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; + string inputString = File.ReadAllText(fullInputFilename); + var engineInterface = new EngineInterface(inputString); + Assert.IsNotNull(engineInterface.DamProjectData); + engineInterface.DamProjectData.MaxCalculationCores = maxCores; + string result = engineInterface.Validate(); + Assert.IsTrue(result == null, "Validation must succeed but does not, see output xml in debugger"); + string outputString = engineInterface.Run(); + string outputName = "Output" + maxCores + ".xml"; + File.WriteAllText(outputName, outputString); + List series = engineInterface.DamProjectData.OutputTimeSerieCollection.Series; + + // int errorCount = GeneralHelper.DetermineNumberOfCalculationErrors(engineInterface.DamProjectData.CalculationMessages); + // Assert.AreEqual(0, errorCount, "There should be nor errors during the calculation."); + + var seriesCount = 0; + var resultsCount = 0; + const double cTolerance = 0.0005; + + foreach (Deltares.DamEngine.Data.General.TimeSeries.TimeSerie timeSeries in series) + { + //Assert.IsTrue(validParameterIDs.Any(n => n == timeSeries.ParameterId)); + //Assert.IsTrue(locations.Any(l => l.Name == timeSeries.LocationId)); + // StabilityInside check + if (timeSeries.ParameterId == TimeSerieParameters.StabilityInsideFactor.ToString()) + { + if (timeSeries.LocationId == "Purmer_PU0042+00_K") + { + DamEngine.Data.General.TimeSeries.TimeSerieEntry firstEntry = timeSeries.Entries.First(); + Assert.AreEqual(1.442, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + DamEngine.Data.General.TimeSeries.TimeSerieEntry lastEntry = timeSeries.Entries.Last(); + Assert.AreEqual(1.579, lastEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + } + + if (timeSeries.LocationId == "Purmer_PU0042+00_K_V") + { + DamEngine.Data.General.TimeSeries.TimeSerieEntry firstEntry = timeSeries.Entries.First(); + Assert.AreEqual(1.365, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + DamEngine.Data.General.TimeSeries.TimeSerieEntry lastEntry = timeSeries.Entries.Last(); + Assert.AreEqual(1.481, lastEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + } + + if (timeSeries.LocationId == "Purmer_PU0042+00_R") + { + DamEngine.Data.General.TimeSeries.TimeSerieEntry firstEntry = timeSeries.Entries.First(); + Assert.AreEqual(1.239, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + DamEngine.Data.General.TimeSeries.TimeSerieEntry lastEntry = timeSeries.Entries.Last(); + Assert.AreEqual(1.355, lastEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + } + if (timeSeries.LocationId == "Purmer_PU0042+00_R_V") + { + DamEngine.Data.General.TimeSeries.TimeSerieEntry firstEntry = timeSeries.Entries.First(); + Assert.AreEqual(1.168, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + DamEngine.Data.General.TimeSeries.TimeSerieEntry lastEntry = timeSeries.Entries.Last(); + Assert.AreEqual(1.272, lastEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + } + + if (timeSeries.LocationId == "Purmer_PU0110+20_K") + { + DamEngine.Data.General.TimeSeries.TimeSerieEntry firstEntry = timeSeries.Entries.First(); + Assert.AreEqual(Double.NaN, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + DamEngine.Data.General.TimeSeries.TimeSerieEntry lastEntry = timeSeries.Entries.Last(); + Assert.AreEqual(Double.NaN, lastEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + } + + if (timeSeries.LocationId == "Purmer_PU0110+20_K_V") + { + DamEngine.Data.General.TimeSeries.TimeSerieEntry firstEntry = timeSeries.Entries.First(); + Assert.AreEqual(Double.NaN, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + DamEngine.Data.General.TimeSeries.TimeSerieEntry lastEntry = timeSeries.Entries.Last(); + Assert.AreEqual(Double.NaN, lastEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + } + + if (timeSeries.LocationId == "Purmer_PU0110+20_R") + { + DamEngine.Data.General.TimeSeries.TimeSerieEntry firstEntry = timeSeries.Entries.First(); + Assert.AreEqual(Double.NaN, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + DamEngine.Data.General.TimeSeries.TimeSerieEntry lastEntry = timeSeries.Entries.Last(); + Assert.AreEqual(Double.NaN, lastEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + } + + if (timeSeries.LocationId == "Purmer_PU0110+20_R_V") + { + DamEngine.Data.General.TimeSeries.TimeSerieEntry firstEntry = timeSeries.Entries.First(); + Assert.AreEqual(Double.NaN, firstEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + DamEngine.Data.General.TimeSeries.TimeSerieEntry lastEntry = timeSeries.Entries.Last(); + Assert.AreEqual(Double.NaN, lastEntry.Value, cTolerance, "The computed safety factory is not correct"); + resultsCount++; + } + } + + seriesCount++; + } + + Assert.IsTrue(seriesCount > 0, "No output time series"); + Assert.AreEqual(16, resultsCount, "Incorrect number of results"); + + } + } \ No newline at end of file Index: DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/Deltares.DamLive.Tests.csproj =================================================================== diff -u -r4055 -r4219 --- DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/Deltares.DamLive.Tests.csproj (.../Deltares.DamLive.Tests.csproj) (revision 4055) +++ DamClients/DamLive/trunk/src/Deltares.DamLive.Tests/Deltares.DamLive.Tests.csproj (.../Deltares.DamLive.Tests.csproj) (revision 4219) @@ -4,6 +4,12 @@ + + ..\..\lib\DamEngine\Deltares.DamEngine.Data.dll + + + ..\..\lib\DamEngine\Deltares.DamEngine.Interface.dll + ..\..\lib\DSL-Geographic\Deltares.Geographic.dll Index: DamClients/DamLive/trunk/data/IntegerationTests/StabilityInsideUpliftVanBeeSwarm/InputForDebuggingBeeSwarm.xml =================================================================== diff -u --- DamClients/DamLive/trunk/data/IntegerationTests/StabilityInsideUpliftVanBeeSwarm/InputForDebuggingBeeSwarm.xml (revision 0) +++ DamClients/DamLive/trunk/data/IntegerationTests/StabilityInsideUpliftVanBeeSwarm/InputForDebuggingBeeSwarm.xml (revision 4219) @@ -0,0 +1,618 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file