Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalIntegrationTests.cs =================================================================== diff -u -r1974 -r2007 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalIntegrationTests.cs (.../OperationalIntegrationTests.cs) (revision 1974) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalIntegrationTests.cs (.../OperationalIntegrationTests.cs) (revision 2007) @@ -36,7 +36,10 @@ class OperationalIntegrationTests { private const double tolerance = 0.0005; + [Test] + // This test is exactly the same as RunMultiCore_UsingTestFiles_HasExpectedResultsInOutputFile + // except that the other test runs multicore public void Run_UsingTestFiles_HasExpectedResultsInOutputFile() { const string calcDir = "TestOperationalIntegration"; @@ -61,13 +64,46 @@ File.WriteAllText(outputFileName, outputString, Encoding.Unicode); Assert.IsNotNull(outputString); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); - DamProjectData actualDamProjectData = FillDamFromXmlOutput.CreateDamProjectData(null, output); Assert.AreEqual(1.226, output.Results.OperationalOutputTimeSeries[0].Entries.TimeSerieEntry[0].Value, tolerance); Assert.AreEqual(1.244, output.Results.OperationalOutputTimeSeries[1].Entries.TimeSerieEntry[0].Value, tolerance); Assert.AreEqual(1.311, output.Results.OperationalOutputTimeSeries[2].Entries.TimeSerieEntry[0].Value, tolerance); } + [Test] +// [Test, Category("MultiCore")] + // This test is exactly the same as Run_UsingTestFiles_HasExpectedResultsInOutputFile + // except that this test runs multicore + public void RunMultiCore_UsingTestFiles_HasExpectedResultsInOutputFile() + { + const string calcDir = "TestOperationalIntegrationMultiCore"; + if (Directory.Exists(calcDir)) + { + Directory.Delete(calcDir, true); // delete previous results + } + Directory.CreateDirectory(calcDir); + + // Based on "DamLive\trunk\src\Deltares.DamLive.Tests\TestData\DamLive\Set2\\output.damx" + const int multiCoreCount = 4; + const string inputFileName = @"TestFiles\OperationalSet2.xml"; + const string outputFileName = @"TestFiles\OperationalSet2MultiCore.output.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", @"TestFiles\output.Geometries\"); + inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\output0.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(1.226, output.Results.OperationalOutputTimeSeries[0].Entries.TimeSerieEntry[0].Value, tolerance); + Assert.AreEqual(1.244, output.Results.OperationalOutputTimeSeries[1].Entries.TimeSerieEntry[0].Value, tolerance); + Assert.AreEqual(1.311, output.Results.OperationalOutputTimeSeries[2].Entries.TimeSerieEntry[0].Value, tolerance); + } + } }