Index: DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/GeneralHelper.cs =================================================================== diff -u -r5737 -r5747 --- DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/GeneralHelper.cs (.../GeneralHelper.cs) (revision 5737) +++ DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/GeneralHelper.cs (.../GeneralHelper.cs) (revision 5747) @@ -248,5 +248,38 @@ Directory.Delete(testWorkingFolder, recursive); } } + + public static Output RunMultiCoreWithXmlInputFile(string mapTestFiles, DamProjectType damProjectType, + int maxCores, string calcDir, string inputFilename, string outputFilename, + bool justOneScenario = false, bool expectedNoErrors = true) + { + if (Directory.Exists(calcDir)) + { + Directory.Delete(calcDir, true); // delete previous results + } + Directory.CreateDirectory(calcDir); + + string fullInputFilename = Path.Combine(mapTestFiles, inputFilename); + string inputString = File.ReadAllText(fullInputFilename); + 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, "MaxCalculationCores", maxCores.ToString()); + var engineInterface = new EngineInterface(inputString); + if (justOneScenario) + { + engineInterface.DamProjectData.Dike.ClearLocationScenariosExceptFirst(); + } + Assert.That(engineInterface.DamProjectData, Is.Not.Null); + Assert.That(engineInterface.DamProjectData.DamProjectType, Is.EqualTo(damProjectType)); + + Output output = GeneralHelper.RunAfterInputValidation(engineInterface, true, outputFilename); + if (expectedNoErrors) + { + int errorCount = GeneralHelper.DetermineNumberOfCalculationErrors(engineInterface.DamProjectData.CalculationMessages); + Assert.That(errorCount, Is.EqualTo(0), "There should be no errors during the calculation."); + } + return output; + } + } \ No newline at end of file