Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalPulauTekongTests.cs =================================================================== diff -u -r1974 -r2008 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalPulauTekongTests.cs (.../OperationalPulauTekongTests.cs) (revision 1974) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalPulauTekongTests.cs (.../OperationalPulauTekongTests.cs) (revision 2008) @@ -38,9 +38,12 @@ private const double tolerance = 0.0005; private const double novalue = -999.0; private const string stabilityOutsideFactor = "StabilityOutsideFactor"; + [Test] [TestCase(@"PulauTekong.InputFile.xml", 2.486106, 2.114159)] [TestCase(@"PulauTekong.InputFile-NoValues.xml", novalue, novalue)] + // This test is exactly the same as RunMultiCore_UsingTestFiles_HasExpectedResultsInOutputFile + // except that the other test runs multicore public void Run_UsingTestFiles_HasExpectedResultsInOutputFile(string inputTestcaseFilename, double valueEntry1, double valueEntry2) { const string calcDir = "TestOperationalPulauTekong"; @@ -68,14 +71,54 @@ File.WriteAllText(outputFileName, outputString, Encoding.Unicode); Assert.IsNotNull(outputString); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); - DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(null, output); Assert.AreEqual(stabilityOutsideFactor, output.Results.OperationalOutputTimeSeries[0].ParameterId); Assert.AreEqual(valueEntry1, output.Results.OperationalOutputTimeSeries[0].Entries.TimeSerieEntry[0].Value, tolerance); Assert.AreEqual(stabilityOutsideFactor, output.Results.OperationalOutputTimeSeries[1].ParameterId); Assert.AreEqual(valueEntry2, output.Results.OperationalOutputTimeSeries[1].Entries.TimeSerieEntry[0].Value, tolerance); } + [Test] + // [Test, Category("MultiCore")] + [TestCase(@"PulauTekong.InputFile.xml", 2.486106, 2.114159)] + [TestCase(@"PulauTekong.InputFile-NoValues.xml", novalue, novalue)] + // This test is exactly the same as Run_UsingTestFiles_HasExpectedResultsInOutputFile + // except that this test runs multicore + public void RunMultiCore_UsingTestFiles_HasExpectedResultsInOutputFile(string inputTestcaseFilename, double valueEntry1, double valueEntry2) + { + const string calcDir = "TestOperationalPulauTekongMultiCore"; + const string workingDir = @"TestFiles\"; + const string baseTestDirectory = @".\Operational\PulauTekong\"; + if (Directory.Exists(calcDir)) + { + Directory.Delete(calcDir, true); // delete previous results + } + Directory.CreateDirectory(calcDir); + // Switch to TestFiles directory to check if DamLive can also run from another directory + Directory.SetCurrentDirectory(workingDir); + // Based on "Deltares.DamLive.Tests.PulauTekongTest" + const int multiCoreCount = 4; + string inputFileName = baseTestDirectory + inputTestcaseFilename; + const string outputFileName = baseTestDirectory + @"PulauTekongMultiCore.OutputFile.xml"; + string inputString = File.ReadAllText(inputFileName); + inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used + inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used + inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", baseTestDirectory + @"PulauTekong.geometries2D.0\"); + inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", baseTestDirectory + @"PulauTekong0.soilmaterials.mdb"); + inputString = XmlAdapter.ChangeValueInXml(inputString, "MaxCalculationCores", multiCoreCount.ToString()); + EngineInterface engineInterface = new EngineInterface(inputString); + Assert.IsNotNull(engineInterface.DamProjectData); + string outputString = engineInterface.Run(); + File.WriteAllText(outputFileName, outputString, Encoding.Unicode); + Assert.IsNotNull(outputString); + var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Assert.AreEqual(stabilityOutsideFactor, output.Results.OperationalOutputTimeSeries[0].ParameterId); + Assert.AreEqual(valueEntry1, output.Results.OperationalOutputTimeSeries[0].Entries.TimeSerieEntry[0].Value, tolerance); + Assert.AreEqual(stabilityOutsideFactor, output.Results.OperationalOutputTimeSeries[1].ParameterId); + Assert.AreEqual(valueEntry2, output.Results.OperationalOutputTimeSeries[1].Entries.TimeSerieEntry[0].Value, tolerance); + } + + } } Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalGrebbedijkTests.cs =================================================================== diff -u -r1974 -r2008 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalGrebbedijkTests.cs (.../OperationalGrebbedijkTests.cs) (revision 1974) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalGrebbedijkTests.cs (.../OperationalGrebbedijkTests.cs) (revision 2008) @@ -64,7 +64,6 @@ File.WriteAllText(outputFileName, outputString, Encoding.Unicode); Assert.IsNotNull(outputString); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); - DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(null, output); Assert.AreEqual(1.603, output.Results.OperationalOutputTimeSeries[0].Entries.TimeSerieEntry[0].Value, tolerance); Assert.AreEqual(1.603, output.Results.OperationalOutputTimeSeries[0].Entries.TimeSerieEntry[1].Value, tolerance); // Following values were 0.590 in the previous DamLive version, but that has to do with how the