Fisheye: Tag 5729 refers to a dead (removed) revision in file `DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/DesignBishopGrid18Cores.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5729 refers to a dead (removed) revision in file `DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/OperationalBishopGrid18Cores.xml'. Fisheye: No comparison available. Pass `N' to diff? Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MultiCoreMacroStabilityTests.cs =================================================================== diff -u -r5559 -r5729 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MultiCoreMacroStabilityTests.cs (.../MultiCoreMacroStabilityTests.cs) (revision 5559) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MultiCoreMacroStabilityTests.cs (.../MultiCoreMacroStabilityTests.cs) (revision 5729) @@ -19,246 +19,84 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System; -using System.Collections.Generic; -using System.Globalization; using System.IO; -using System.Threading; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Interface; +using Deltares.DamEngine.Io; using Deltares.DamEngine.Io.XmlOutput; using Deltares.DamEngine.TestHelpers; using NUnit.Framework; -using TimeSerie = Deltares.DamEngine.Io.XmlOutput.TimeSerie; namespace Deltares.DamEngine.IntegrationTests.IntegrationTests; [TestFixture] public class MultiCoreMacroStabilityTests { private const string mapTestFiles = @"TestFiles\"; - const string testWorkingFolder = @"MultiCore\"; - private const double tolerance3Decimals = 0.00051; - [Test, Category(Categories.MultiCore), Category(Categories.WorkInProgress)] - [TestCase("OperationalBishopGrid1Core.xml")] - [TestCase("OperationalBishopGrid2Cores.xml")] - [TestCase("OperationalBishopGrid4Cores.xml")] - [TestCase("OperationalBishopGrid8Cores.xml")] - [TestCase("OperationalBishopGrid18Cores.xml")] - public void OperationalBishopGridTestsWithXmlInputFile(string aFileName) + [Test, Category(Categories.MultiCore)] + [Category(Categories.WorkInProgress)] //Error: The AnalyseType is set to AdaptGeometry in the input, however the geometry was not adapted in any location. Either set the AnalysisType to NoAdaptation or increase the required safety factor. + [TestCase(1)] + [TestCase(2)] + [TestCase(4)] + [TestCase(8)] + [TestCase(18)] + public void DebugDesignAdaptionWithXmlInputFile(int maxCores) { - string fullInputFilename = Path.Combine(mapTestFiles, aFileName); - Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; - string inputString = File.ReadAllText(fullInputFilename); - var engineInterface = new EngineInterface(inputString); - - Output output = GeneralHelper.RunAfterInputValidation(engineInterface, true, "Output.xml"); - - int errorCount = GeneralHelper.DetermineNumberOfCalculationErrors(engineInterface.DamProjectData.CalculationMessages); - Assert.That(errorCount, Is.EqualTo(0), "There should be no errors during the calculation."); - Assert.That(engineInterface.DamProjectData.CalculationMessages.Count, Is.EqualTo(output.Results.CalculationMessages.Length)); - Assert.That(engineInterface.DamProjectData.DamProjectType, Is.EqualTo(DamProjectType.Operational)); - Assert.That(output.Results.OperationalOutputTimeSeries.Length, Is.EqualTo(8)); - var numberOfResults = 0; - var numberOfRealResults = 0; - foreach (TimeSerie resultSerie in output.Results.OperationalOutputTimeSeries) - { - numberOfResults += resultSerie.Entries.TimeSerieEntry.Length; - foreach (TimeSerieEntriesTimeSerieEntry timeSerieEntriesTimeSerieEntry in resultSerie.Entries.TimeSerieEntry) - { - if (!Double.IsNaN(timeSerieEntriesTimeSerieEntry.Value) && - timeSerieEntriesTimeSerieEntry.Value is > 0 and < 100000) - { - numberOfRealResults++; - } - } - } - - Assert.That(numberOfResults, Is.EqualTo(16)); - Assert.That(numberOfRealResults, Is.EqualTo(16)); + const string calcBase = "DebugDesignAdaptionWithXmlInputFile"; + const string inputFilename = "DesignBishopGrid1Core.xml"; + const string outputBase = "OutputDesignBishopGrid1Core"; + TestMultiCoreStability(maxCores, calcBase, inputFilename, outputBase, 8); } - [Test, Category(Categories.MultiCore), Category(Categories.WorkInProgress)] - [TestCase("DesignBishopGrid1Core.xml")] - [TestCase("DesignBishopGrid2Cores.xml")] - [TestCase("DesignBishopGrid4Cores.xml")] - [TestCase("DesignBishopGrid8Cores.xml")] - [TestCase("DesignBishopGrid18Cores.xml")] - public void DebugDesignWithXmlInputFile(string aFileName) + [Test, Category(Categories.MultiCore)] + [TestCase(1)] + [TestCase(4)] + [TestCase(16)] + public void DesignBishopWithScenariosForHeadPl3CalculatesCorrect(int maxCores) { - string fullInputFilename = Path.Combine(mapTestFiles, aFileName); - Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; - string inputString = File.ReadAllText(fullInputFilename); - var engineInterface = new EngineInterface(inputString); - engineInterface.DamProjectData.ProjectPath = @"MultiCore\"; - Assert.That(engineInterface.DamProjectData.DamProjectType, Is.EqualTo(DamProjectType.Design)); - - Output output = GeneralHelper.RunAfterInputValidation(engineInterface, true, "Output.xml"); - - int errorCount = GeneralHelper.DetermineNumberOfCalculationErrors(engineInterface.DamProjectData.CalculationMessages); - Assert.Multiple(() => - { - Assert.That(errorCount, Is.EqualTo(0), "There should be no errors during the calculation."); - Assert.That(engineInterface.DamProjectData.CalculationMessages, Has.Count.EqualTo(output.Results.CalculationMessages.Length)); - Assert.That(output.Results.CalculationResults, Has.Length.EqualTo(8)); - }); - Assert.Multiple(() => - { - Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.974).Within(tolerance3Decimals)); - Assert.That(output.Results.CalculationResults[1].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.895).Within(tolerance3Decimals)); - Assert.That(output.Results.CalculationResults[2].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.802).Within(tolerance3Decimals)); - Assert.That(output.Results.CalculationResults[3].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.728).Within(tolerance3Decimals)); - Assert.That(output.Results.CalculationResults[4].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.248).Within(tolerance3Decimals)); - Assert.That(output.Results.CalculationResults[5].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.223).Within(tolerance3Decimals)); - Assert.That(output.Results.CalculationResults[6].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.234).Within(tolerance3Decimals)); - Assert.That(output.Results.CalculationResults[7].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.212).Within(tolerance3Decimals)); - }); + const string calcBase = "DesignBishopWithScenariosForHeadPl3CalculatesCorrect"; + const string inputFilename = "InputFileMultiCoreTestForScenario.xml"; + const string outputBase = "OutputFileMultiCoreTestForScenario"; + TestMultiCoreStability(maxCores, calcBase, inputFilename, outputBase, 18); } - [Test, Category(Categories.MultiCore), Category(Categories.WorkInProgress)] + [Test, Category(Categories.MultiCore)] [TestCase(1)] - [TestCase(10)] - [TestCase(24)] - public void OperationalBeeSwarmMultiCoreWithXmlInputFile(int maxCores) + [TestCase(4)] + [TestCase(16)] + public void DesignBishopWithOneScenariosForHeadPl3CalculatesCorrect(int maxCores) { - const string inputFilename = "InputForDebuggingBeeSwarm.xml"; - string fullInputFilename = Path.Combine(mapTestFiles, inputFilename); - Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; - string inputString = File.ReadAllText(fullInputFilename); - var engineInterface = new EngineInterface(inputString); - Assert.That(engineInterface.DamProjectData, Is.Not.Null); - engineInterface.DamProjectData.MaxCalculationCores = maxCores; - Assert.That(engineInterface.DamProjectData.DamProjectType, Is.EqualTo(DamProjectType.Operational)); - - Output output = GeneralHelper.RunAfterInputValidation(engineInterface, true, "Output" + maxCores + ".xml"); - - //Output output = DamXmlSerialization.LoadOutputFromXmlString(outputString); - //TimeSerieCollection outputTimeSeriesCollection = new TimeSerieCollection(); - //outputTimeSeriesCollection.Series.AddRange(engineInterface.DamProjectData.OutputTimeSerieCollection.Series); - List series = engineInterface.DamProjectData.OutputTimeSerieCollection.Series; - - int errorCount = GeneralHelper.DetermineNumberOfCalculationErrors(engineInterface.DamProjectData.CalculationMessages); - Assert.That(errorCount, Is.EqualTo(0), "There should be no errors during the calculation."); - - CheckLargeResultsSets.CheckResultsOperationalBeeSwarmMultiCoreWithXmlInputFile(series); + const string calcBase = "DesignBishopWithScenariosForHeadPl3CalculatesCorrect"; + const string inputFilename = "InputFileMultiCoreTestForScenario.xml"; + const string outputBase = "OutputFileMultiCoreTestForScenario"; + TestMultiCoreStability(maxCores, calcBase, inputFilename, outputBase, 9, true); } - [Test, Category(Categories.MultiCore), Category(Categories.WorkInProgress)] + [Test, Category(Categories.MultiCore)] + [Category(Categories.WorkInProgress)] //Error: The AnalyseType is set to AdaptGeometry in the input, however the geometry was not adapted in any location. Either set the AnalysisType to NoAdaptation or increase the required safety factor. [TestCase(1)] [TestCase(4)] [TestCase(16)] - public void DesignBishopWithScenariosForHeadPl3CalculatesCorrect(int maxCores) + public void DesignBishopAdaptionWithScenariosForHeadPl3CalculatesCorrect(int maxCores) { - const string inputFilename = "InputFileMultiCoreTestForScenario.xml"; - string fullInputFilename = Path.Combine(mapTestFiles, inputFilename); - Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; - string inputString = File.ReadAllText(fullInputFilename); - var engineInterface = new EngineInterface(inputString) - { - DamProjectData = - { - MaxCalculationCores = maxCores - } - }; - string calcDir = engineInterface.DamProjectData.CalculationMap + "_Cores_" + maxCores; - engineInterface.DamProjectData.CalculationMap = calcDir; - Assert.That(engineInterface.DamProjectData, Is.Not.Null); - calcDir = Directory.GetCurrentDirectory() + "\\" + calcDir; - if (Directory.Exists(calcDir)) - { - Directory.Delete(calcDir, true); // delete previous results - } - - Output output = GeneralHelper.RunAfterInputValidation(engineInterface, true, "Results_Cores_" + maxCores + ".xml"); - - Assert.Multiple(() => - { - Assert.That(output.Results.CalculationResults.Length, Is.EqualTo(18)); - Assert.That(output.Results.CalculationMessages.Length, Is.EqualTo(40)); - }); - CheckLargeResultsSets.CheckResultsDesignBishopWithScenariosForHeadPl3CalculatesCorrect(output.Results.CalculationResults); + const string calcBase = "DesignBishopAdaptionWithScenariosForHeadPl3CalculatesCorrect"; + const string inputFilename = "InputFileMultiCoreTestForScenarioAdaption.xml"; + const string outputBase = "OutputFileMultiCoreTestForScenariosAdaption"; + TestMultiCoreStability(maxCores, calcBase, inputFilename, outputBase, 14); } - [Test, Category(Categories.MultiCore), Category(Categories.WorkInProgress)] - [TestCase(1, true)] - [TestCase(4, true)] - [TestCase(16, true)] - [TestCase(1, false)] - [TestCase(4, false)] - [TestCase(16, false)] - public void DesignBishopAdaptionWithScenariosForHeadPl3CalculatesCorrect(int maxCores, bool justOneScenario) + [Test, Category(Categories.MultiCore)] + [Category(Categories.WorkInProgress)] //Error: The AnalyseType is set to AdaptGeometry in the input, however the geometry was not adapted in any location. Either set the AnalysisType to NoAdaptation or increase the required safety factor. + [TestCase(1)] + [TestCase(4)] + [TestCase(16)] + public void DesignBishopAdaptionWithOneScenarioForHeadPl3CalculatesCorrect(int maxCores) { + const string calcBase = "DesignBishopAdaptionWithOneScenarioForHeadPl3CalculatesCorrect"; const string inputFilename = "InputFileMultiCoreTestForScenarioAdaption.xml"; - const string projectPath = "DAM 19.3 Probleem WF"; - string fullInputFilename = Path.Combine(mapTestFiles, inputFilename); - Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; - string inputString = File.ReadAllText(fullInputFilename); - inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", projectPath); - var engineInterface = new EngineInterface(inputString) - { - DamProjectData = - { - MaxCalculationCores = maxCores - } - }; - string calcDir = engineInterface.DamProjectData.CalculationMap + "_Cores_" + maxCores; - if (justOneScenario) - { - engineInterface.DamProjectData.Dike.ClearLocationScenariosExceptFirst(); - calcDir = engineInterface.DamProjectData.CalculationMap + "_OneScenario_Cores_" + maxCores; - } - - engineInterface.DamProjectData.CalculationMap = calcDir; - Assert.That(engineInterface.DamProjectData, Is.Not.Null); - calcDir = Directory.GetCurrentDirectory() + "\\" + projectPath + "\\" + calcDir; - if (Directory.Exists(calcDir)) - { - Directory.Delete(calcDir, true); // delete previous results - } - - string outputFileName = "Results_Cores_" + maxCores + ".xml"; - if (justOneScenario) - { - outputFileName = "Results_OneScenario_Cores_" + maxCores + ".xml"; - } - - Output output = GeneralHelper.RunAfterInputValidation(engineInterface, true, outputFileName); - - if (justOneScenario) - { - Assert.Multiple(() => - { - // This test has to make sure that the results are the same as the single core version of this test - // If the values change below, just change them. - Assert.That(output.Results.CalculationResults, Has.Length.EqualTo(7)); - Assert.That(output.Results.CalculationMessages, Has.Length.EqualTo(601)); - }); - } - else - { - Assert.Multiple(() => - { - // Note that all results are based on the single core version of this test that can be found at: - // DesignBishopOptimizedSlopeAndShoulderAdaptionWithScenariosForHeadPL3CalculatesCorrect in MacroStabilityInwardsTests - Assert.That(output.Results.CalculationResults, Has.Length.EqualTo(14)); - Assert.That(output.Results.CalculationMessages, Has.Length.EqualTo(1199)); - }); - } - - int resultsFound = CheckLargeResultsSets.CheckResultsDesignBishopAdaptionWithScenariosForHeadPl3CalculatesCorrect( - output.Results.CalculationResults); - if (justOneScenario) - { - Assert.That(resultsFound, Is.EqualTo(6)); - } - else - { - Assert.That(resultsFound, Is.EqualTo(11)); - CheckLargeResultsSets.CheckBasicResultsBasedOnReferenceResultsFile( - "TestFiles\\DesignBishopAdaptionWithScenariosForHeadPl3_Results.xml", outputFileName, - output.Results.CalculationResults); - } + const string outputBase = "OutputFileMultiCoreTestForOneScenarioAdaption"; + TestMultiCoreStability(maxCores, calcBase, inputFilename, outputBase, 7, true); } [Test, Category("MultiCore")] @@ -267,65 +105,61 @@ [TestCase(23)] public void LargeInsideBishopNoAdaptionGridCalculatesCorrect(int maxCores) { + const string calcBase = "LargeInsideBishopNoAdaptionGridCalculatesCorrect"; const string inputFilename = "LargeInsideBishopNoAdaptionGrid.xml"; - string fullInputFilename = Path.Combine(mapTestFiles, inputFilename); - Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; - string inputString = File.ReadAllText(fullInputFilename); - inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", "LargeInsideBishopNoAdaptionGrid"); // Current directory will be used - inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", "Calc"); // Current directory will be used - var engineInterface = new EngineInterface(inputString) - { - DamProjectData = - { - MaxCalculationCores = maxCores - } - }; - string calcDir = engineInterface.DamProjectData.CalculationMap + "_Cores_" + maxCores; + const string outputBase = "OutputLargeInsideBishopNoAdaptionGrid"; + TestMultiCoreStability(maxCores, calcBase, inputFilename, outputBase, 724); + } - engineInterface.DamProjectData.CalculationMap = calcDir; - Assert.That(engineInterface.DamProjectData, Is.Not.Null); - calcDir = Directory.GetCurrentDirectory() + "\\" + calcDir; - if (Directory.Exists(calcDir)) + private static void TestMultiCoreStability(int maxCores, string calcBase, string inputFilename, string outputBase, + int expectedResults, bool justOneScenario = false) + { + const string workDir = @"TestMultiCoreDesignStability\"; + string calcDir = workDir + calcBase + maxCores; + string outputFilename = Path.Combine(calcDir, outputBase + maxCores + ".xml"); + if (maxCores > 1) { - Directory.Delete(calcDir, true); // delete previous results + Output outputMultiCore = RunDesignMultiCoreWithXmlInputFile(maxCores, calcDir, inputFilename, outputFilename, justOneScenario); + string calcDir1Core = workDir + calcBase + "1"; + string outputFilename1Core = Path.Combine(calcDir1Core, outputBase + "1.xml"); + Output output1Core = !File.Exists(outputFilename1Core) + ? RunDesignMultiCoreWithXmlInputFile(1, calcDir1Core, inputFilename, outputFilename1Core, justOneScenario) + : DamXmlSerialization.LoadOutputFromXmlFile(outputFilename1Core); + GeneralHelper.CompareDesignOutput(output1Core, outputMultiCore); } - - string outputFileName = "LargeInsideBishopNoAdaptionGridResults_Cores_" + maxCores + ".xml"; - Output output = GeneralHelper.RunAfterInputValidation(engineInterface, true, outputFileName); - - Assert.Multiple(() => + else { - // This test has to make sure that the results are the same as the single core version of this test - // If the values change below, just change them. - Assert.That(output.Results.CalculationMessages, Has.Length.EqualTo(2918)); //#Bka was 2766 - Assert.That(output.Results.CalculationResults, Has.Length.EqualTo(724)); //#Bka was 646 - }); - // This file is created in the Debug/Release folder while running this test. - // If this file changes just replace it with the file that is created during the test. - // The purpose of this test is just comparing the multicore test with the single core test. - CheckLargeResultsSets.CheckBasicResultsBasedOnReferenceResultsFile( - "TestFiles\\LargeInsideBishopNoAdaptionGridResults_Cores_1.xml", outputFileName, - output.Results.CalculationResults); + Output output1Core = RunDesignMultiCoreWithXmlInputFile(maxCores, calcDir, inputFilename, outputFilename, justOneScenario); + Assert.That(output1Core.Results.CalculationResults, Has.Length.EqualTo(expectedResults)); + } } - - [OneTimeSetUp] - public void Setup() + + private static Output RunDesignMultiCoreWithXmlInputFile(int maxCores, string calcDir, string inputFilename, + string outputFilename, bool justOneScenario = false) { - RemoveTestWorkingDirectory(); // to be sure no test directory exist from previous tests - } + if (Directory.Exists(calcDir)) + { + Directory.Delete(calcDir, true); // delete previous results + } + Directory.CreateDirectory(calcDir); - [OneTimeTearDown] - public void TearDown() - { - RemoveTestWorkingDirectory(); // to be sure no test directory exist after the tests - } - - private static void RemoveTestWorkingDirectory() - { - if (Directory.Exists(testWorkingFolder)) + 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) { - const bool recursive = true; - Directory.Delete(testWorkingFolder, recursive); + engineInterface.DamProjectData.Dike.ClearLocationScenariosExceptFirst(); } + Assert.That(engineInterface.DamProjectData, Is.Not.Null); + Assert.That(engineInterface.DamProjectData.DamProjectType, Is.EqualTo(DamProjectType.Design)); + + Output output = GeneralHelper.RunAfterInputValidation(engineInterface, true, outputFilename); + 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 Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/Deltares.DamEngine.IntegrationTests.csproj =================================================================== diff -u -r5727 -r5729 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/Deltares.DamEngine.IntegrationTests.csproj (.../Deltares.DamEngine.IntegrationTests.csproj) (revision 5727) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/Deltares.DamEngine.IntegrationTests.csproj (.../Deltares.DamEngine.IntegrationTests.csproj) (revision 5729) @@ -20,21 +20,9 @@ PreserveNewest - - PreserveNewest - PreserveNewest - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - PreserveNewest @@ -59,21 +47,9 @@ PreserveNewest - - PreserveNewest - PreserveNewest - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - PreserveNewest @@ -215,9 +191,6 @@ PreserveNewest - - PreserveNewest - PreserveNewest Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalMultiCoreTests.cs =================================================================== diff -u -r5697 -r5729 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalMultiCoreTests.cs (.../OperationalMultiCoreTests.cs) (revision 5697) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/OperationalMultiCoreTests.cs (.../OperationalMultiCoreTests.cs) (revision 5729) @@ -20,6 +20,8 @@ // All rights reserved. using System.IO; +using Deltares.DamEngine.Data.General; +using Deltares.DamEngine.Interface; using Deltares.DamEngine.Io; using Deltares.DamEngine.Io.XmlOutput; using Deltares.DamEngine.TestHelpers; @@ -31,62 +33,105 @@ /// These tests were based on DamLiveIntegrationTest.Run_UsingTestFiles_HasExpectedResultsInOutputFile() /// [TestFixture] -class OperationalMultiCoreTests +public class OperationalMultiCoreTests { - private const string workingDir = @"TestFiles\"; - private string oldWorkingDir; + private const string mapTestFiles = @"TestFiles\"; - [SetUp] - public void TestFixtureSetup() + [Test, Category(Categories.MultiCore)] + [Category(Categories.WorkInProgress)] // expected real results should be 16, but only 8 are found + [TestCase(1)] + [TestCase(10)] + [TestCase(24)] + public void TestMultiCoreOperationalBeeSwarmWithXmlInputFile(int maxCores) { - oldWorkingDir = Directory.GetCurrentDirectory(); - Directory.SetCurrentDirectory(workingDir); + const string calcBase = "MultiCoreOperationalBeeSwarm"; + const string inputFilename = "InputForDebuggingBeeSwarm.xml"; + const string outputBase = "OutputForDebuggingBeeSwarm"; + TestMultiCoreOperational(maxCores, calcBase, inputFilename, outputBase, 8, 16, 16); } - [TearDown] - public void TestFixtureTearDown() + [Test, Category(Categories.MultiCore)] + [TestCase(1)] + [TestCase(2)] + [TestCase(4)] + [TestCase(8)] + [TestCase(18)] + public void MultiCoreOperationalBishopGridWithXmlInputFile(int maxCores) { - Directory.SetCurrentDirectory(oldWorkingDir); + const string calcBase = "MultiCoreOperationalBishopGrid"; + const string inputFilename = "OperationalBishopGrid1Core.xml"; + const string outputBase = "OutputForOperationalBishopGrid"; + TestMultiCoreOperational(maxCores, calcBase, inputFilename, outputBase, 8, 16, 16); } - [Test, Category(Categories.MultiCore), Ignore("This test is not yet implemented, waits on stix implementation.")] - [Category(Categories.WorkInProgress)] - // This test runs the same project as Run_UsingTestFiles_HasExpectedResultsInOutputFile - // except that it runs it with both single core and multi core. - // The output of both runs must be the same - public void CompareResultFromMultiCoreRunWithSingleCoreRun() + private static void TestMultiCoreOperational(int maxCores, string calcBase, string inputFilename, string outputBase, + int expectedTimeSeries, int expectedResults, int expectedRealResults) { - var calcDir = "TestOperationalPulauTekongSingleCore"; - var outputFileName = @"PulauTekongSingleCore.OutputFile.xml"; - Output output = RunTestProjectCores(calcDir, outputFileName, 1); - string outputSingleCore = DamXmlSerialization.SaveOutputAsXmlString(output); - - calcDir = "TestOperationalPulauTekongMultiCore"; - outputFileName = @"PulauTekongMultiCore.OutputFile.xml"; - output = RunTestProjectCores(calcDir, outputFileName, 4); - string outputMultiCore = DamXmlSerialization.SaveOutputAsXmlString(output); - - Assert.That(outputMultiCore, Is.EqualTo(outputSingleCore)); + const string workDir = @"TestMultiCoreOperational\"; + string calcDir = workDir + calcBase + maxCores; + string outputFilename = Path.Combine(calcDir, outputBase + maxCores + ".xml"); + if (maxCores > 1) + { + Output outputMultiCore = RunOperationalMultiCoreWithXmlInputFile(maxCores, calcDir, inputFilename, outputFilename); + string calcDir1Core = workDir + calcBase + "1"; + string outputFilename1Core = Path.Combine(calcDir1Core, outputBase + "1.xml"); + Output output1Core = !File.Exists(outputFilename1Core) + ? RunOperationalMultiCoreWithXmlInputFile(1, calcDir1Core, inputFilename, outputFilename1Core) + : DamXmlSerialization.LoadOutputFromXmlFile(outputFilename1Core); + GeneralHelper.CompareOutput(output1Core, outputMultiCore); + } + else + { + Output output1Core = RunOperationalMultiCoreWithXmlInputFile(maxCores, calcDir, inputFilename, outputFilename); + Assert.That(output1Core.Results.OperationalOutputTimeSeries, Has.Length.EqualTo(expectedTimeSeries)); + CheckNumberOfRealResults(output1Core, expectedResults, expectedRealResults); + } } - private static Output RunTestProjectCores(string calcDir, string outputFileName, int coreCount) + private static Output RunOperationalMultiCoreWithXmlInputFile(int maxCores, string calcDir, string inputFilename, string outputFilename) { if (Directory.Exists(calcDir)) { Directory.Delete(calcDir, true); // delete previous results } - Directory.CreateDirectory(calcDir); - const string baseTestDirectory = @".\Operational\PulauTekongMultiCore\"; - string inputFileName = baseTestDirectory + @"PulauTekong.InputFile.xml"; - string inputString = File.ReadAllText(inputFileName); + 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, "MapForSoilgeometries2D", baseTestDirectory + @"PulauTekong.geometries2D.0\"); - inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", baseTestDirectory + @"PulauTekong0.soilmaterials.mdb"); - inputString = XmlAdapter.ChangeValueInXml(inputString, "MaxCalculationCores", coreCount.ToString()); + inputString = XmlAdapter.ChangeValueInXml(inputString, "MaxCalculationCores", maxCores.ToString()); + var engineInterface = new EngineInterface(inputString); + Assert.That(engineInterface.DamProjectData, Is.Not.Null); + Assert.That(engineInterface.DamProjectData.DamProjectType, Is.EqualTo(DamProjectType.Operational)); - return GeneralHelper.RunAfterInputValidation(inputString); + Output output = GeneralHelper.RunAfterInputValidation(engineInterface, true, outputFilename); + + int errorCount = GeneralHelper.DetermineNumberOfCalculationErrors(engineInterface.DamProjectData.CalculationMessages); + Assert.That(errorCount, Is.EqualTo(0), "There should be no errors during the calculation."); + return output; } + + private static void CheckNumberOfRealResults(Output output, int expectedNumberOfResults, int expectedNumberOfRealResults) + { + var numberOfResults = 0; + var numberOfRealResults = 0; + foreach (TimeSerie resultSerie in output.Results.OperationalOutputTimeSeries) + { + numberOfResults += resultSerie.Entries.TimeSerieEntry.Length; + foreach (TimeSerieEntriesTimeSerieEntry timeSerieEntriesTimeSerieEntry in resultSerie.Entries.TimeSerieEntry) + { + if (!double.IsNaN(timeSerieEntriesTimeSerieEntry.Value) && + timeSerieEntriesTimeSerieEntry.Value is > 0 and < 100000) + { + numberOfRealResults++; + } + } + } + Assert.Multiple(() => + { + Assert.That(numberOfResults, Is.EqualTo(expectedNumberOfResults)); + Assert.That(numberOfRealResults, Is.EqualTo(expectedNumberOfRealResults)); + }); + } } \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/GeneralHelper.cs =================================================================== diff -u -r5597 -r5729 --- DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/GeneralHelper.cs (.../GeneralHelper.cs) (revision 5597) +++ DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/GeneralHelper.cs (.../GeneralHelper.cs) (revision 5729) @@ -31,6 +31,7 @@ using Deltares.DamEngine.Io; using Deltares.DamEngine.Io.XmlOutput; using DGeoSuite.Common; +using KellermanSoftware.CompareNetObjects; using NUnit.Framework; namespace Deltares.DamEngine.TestHelpers; @@ -210,4 +211,33 @@ return 0; } + + public static void CompareDesignOutput(Output expected, Output actual) + { + StripCalculationSubDir(expected); + StripCalculationSubDir(actual); + CompareOutput(expected, actual); + } + + private static void StripCalculationSubDir(Output expected) + { + foreach (DesignResult result in expected.Results.CalculationResults) + { + result.CalculationSubDir = ""; + } + } + + public static void CompareOutput(Output expected, Output actual) + { + var compare = new CompareLogic + { + Config = + { + MaxDifferences = 100 + } + }; + ComparisonResult result = compare.Compare(expected, actual); + Assert.That(result.Differences, Is.Empty, "Differences found read/write Output object"); + } + } \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Deltares.DamEngine.TestHelpers.csproj =================================================================== diff -u -r4796 -r5729 --- DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Deltares.DamEngine.TestHelpers.csproj (.../Deltares.DamEngine.TestHelpers.csproj) (revision 4796) +++ DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Deltares.DamEngine.TestHelpers.csproj (.../Deltares.DamEngine.TestHelpers.csproj) (revision 5729) @@ -7,4 +7,9 @@ + + + 3.9.0 + + Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/CheckLargeResultsSets.cs =================================================================== diff -u -r5502 -r5729 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/CheckLargeResultsSets.cs (.../CheckLargeResultsSets.cs) (revision 5502) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/CheckLargeResultsSets.cs (.../CheckLargeResultsSets.cs) (revision 5729) @@ -19,23 +19,12 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -//using NUnit.Framework; - -using System; using System.Collections.Generic; -using System.IO; -using System.Linq; -using Deltares.DamEngine.Calculators.DikesOperational; -using Deltares.DamEngine.Data.General.TimeSeries; -using Deltares.DamEngine.Io; using Deltares.DamEngine.Io.XmlOutput; -using KellermanSoftware.CompareNetObjects; using NUnit.Framework; -using TimeSerie = Deltares.DamEngine.Data.General.TimeSeries.TimeSerie; namespace Deltares.DamEngine.IntegrationTests.IntegrationTests; -//[TestFixture] public static class CheckLargeResultsSets { private const double tol2Digits = 0.005; @@ -46,243 +35,6 @@ "CalculationSubDir" }; - public static void CheckResultsOperationalBeeSwarmMultiCoreWithXmlInputFile(List series) - { - var seriesCount = 0; - var resultsCount = 0; - const double cTolerance = 0.0005; - - foreach (TimeSerie timeSeries in series) - { - // StabilityInside check - if (timeSeries.ParameterId == TimeSerieParameters.StabilityInsideFactor.ToString()) - { - if (timeSeries.LocationId == "Purmer_PU0042+00_K") - { - TimeSerieEntry firstEntry = timeSeries.Entries.First(); - Assert.That(firstEntry.Value, Is.EqualTo(1.451).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - TimeSerieEntry lastEntry = timeSeries.Entries.Last(); - Assert.That(lastEntry.Value, Is.EqualTo(1.592).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - } - - if (timeSeries.LocationId == "Purmer_PU0042+00_K_V") - { - TimeSerieEntry firstEntry = timeSeries.Entries.First(); - Assert.That(firstEntry.Value, Is.EqualTo(1.351).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - TimeSerieEntry lastEntry = timeSeries.Entries.Last(); - Assert.That(lastEntry.Value, Is.EqualTo(1.490).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - } - - if (timeSeries.LocationId == "Purmer_PU0042+00_R") - { - TimeSerieEntry firstEntry = timeSeries.Entries.First(); - Assert.That(firstEntry.Value, Is.EqualTo(1.242).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - TimeSerieEntry lastEntry = timeSeries.Entries.Last(); - Assert.That(lastEntry.Value, Is.EqualTo(1.365).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - } - - if (timeSeries.LocationId == "Purmer_PU0042+00_R_V") - { - TimeSerieEntry firstEntry = timeSeries.Entries.First(); - Assert.That(firstEntry.Value, Is.EqualTo(1.161).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - TimeSerieEntry lastEntry = timeSeries.Entries.Last(); - Assert.That(lastEntry.Value, Is.EqualTo(1.279).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - } - - if (timeSeries.LocationId == "Purmer_PU0110+20_K") - { - TimeSerieEntry firstEntry = timeSeries.Entries.First(); - Assert.That(firstEntry.Value, Is.EqualTo(double.NaN).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - TimeSerieEntry lastEntry = timeSeries.Entries.Last(); - Assert.That(lastEntry.Value, Is.EqualTo(double.NaN).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - } - - if (timeSeries.LocationId == "Purmer_PU0110+20_K_V") - { - TimeSerieEntry firstEntry = timeSeries.Entries.First(); - Assert.That(firstEntry.Value, Is.EqualTo(double.NaN).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - TimeSerieEntry lastEntry = timeSeries.Entries.Last(); - Assert.That(lastEntry.Value, Is.EqualTo(double.NaN).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - } - - if (timeSeries.LocationId == "Purmer_PU0110+20_R") - { - TimeSerieEntry firstEntry = timeSeries.Entries.First(); - Assert.That(firstEntry.Value, Is.EqualTo(double.NaN).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - TimeSerieEntry lastEntry = timeSeries.Entries.Last(); - Assert.That(lastEntry.Value, Is.EqualTo(double.NaN).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - } - - if (timeSeries.LocationId == "Purmer_PU0110+20_R_V") - { - TimeSerieEntry firstEntry = timeSeries.Entries.First(); - Assert.That(firstEntry.Value, Is.EqualTo(double.NaN).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - TimeSerieEntry lastEntry = timeSeries.Entries.Last(); - Assert.That(lastEntry.Value, Is.EqualTo(double.NaN).Within(cTolerance), "The computed safety factory is not correct"); - resultsCount++; - } - } - - seriesCount++; - } - - Assert.That(seriesCount, Is.GreaterThan(0), "No output time series"); - Assert.That(resultsCount, Is.EqualTo(16), "Incorrect number of results"); - } - - public static void CheckResultsDesignBishopWithScenariosForHeadPl3CalculatesCorrect(DesignResult[] calculationResults) - { - foreach (DesignResult designResult in calculationResults) - { - if (designResult.BaseFileName.Equals("Loc(KR093_0013)_Sce(3)_Pro(segment_627_1D1-KR093_0013-1)")) - { - Assert.Multiple(() => - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(9.090).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("3")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-0.94).Within(tol2Digits)); - }); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0013)_Sce(4)_Pro(segment_627_1D1-KR093_0013-1)")) - { - Assert.Multiple(() => - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(8.148).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("4")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-0.37).Within(tol2Digits)); - }); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0013)_Sce(3)_Pro(segment_627_1D2-KR093_0013-2)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(8.620).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("3")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-0.94).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0013)_Sce(4)_Pro(segment_627_1D2-KR093_0013-2)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(7.629).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("4")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-0.37).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0013)_Sce(3)_Pro(segment_627_1D3-KR093_0013-3)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(9.162).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("3")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-0.94).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0013)_Sce(4)_Pro(segment_627_1D3-KR093_0013-3)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(8.359).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("4")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-0.37).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0018)_Sce(3)_Pro(segment_629_1D1-KR093_0018-1)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(7.249).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("3")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-1.00).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0018)_Sce(4)_Pro(segment_629_1D1-KR093_0018-1)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(7.220).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("4")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-0.61).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0018)_Sce(3)_Pro(segment_629_1D2-KR093_0018-2)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(1.238).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("3")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-1.00).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0018)_Sce(4)_Pro(segment_629_1D2-KR093_0018-2)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(1.238).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("4")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-0.37).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0018)_Sce(3)_Pro(segment_629_1D3-KR093_0018-3)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(1.404).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("3")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-1.00).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0018)_Sce(4)_Pro(segment_629_1D3-KR093_0018-3)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(1.404).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("4")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-0.37).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0019)_Sce(3)_Pro(segment_629_1D1-KR093_0019-1)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(4.683).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("3")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-1.03).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0019)_Sce(4)_Pro(segment_629_1D1-KR093_0019-1)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(4.667).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("4")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-0.57).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0019)_Sce(3)_Pro(segment_629_1D2-KR093_0019-2)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(4.079).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("3")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-1.03).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0019)_Sce(4)_Pro(segment_629_1D2-KR093_0019-2)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(4.069).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("4")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-0.37).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0019)_Sce(3)_Pro(segment_629_1D3-KR093_0019-3)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(4.420).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("3")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-1.03).Within(tol2Digits)); - } - - if (designResult.BaseFileName.Equals("Loc(KR093_0019)_Sce(4)_Pro(segment_629_1D3-KR093_0019-3)")) - { - Assert.That(designResult.StabilityDesignResults.SafetyFactor, Is.EqualTo(3.952).Within(tolerance)); - Assert.That(designResult.ScenarioName, Is.EqualTo("4")); - Assert.That(designResult.StabilityDesignResults.UpliftSituation.Pl3HeadAdjusted, Is.EqualTo(-0.37).Within(tol2Digits)); - } - } - } - public static int CheckResultsDesignBishopAdaptionWithScenariosForHeadPl3CalculatesCorrect(DesignResult[] calculationResults) { var resultsFound = 0; @@ -489,67 +241,4 @@ return resultsFound; } - - public static void CheckBasicResultsBasedOnReferenceResultsFile(string resultsFile, string outputFileName, - DesignResult[] calculationResults) - { - string logFile = Path.ChangeExtension(outputFileName, ".log"); - if (File.Exists(logFile)) - { - File.Delete(logFile); - } - - Output output = DamXmlSerialization.LoadOutputFromXmlFile(resultsFile); - Assert.That(calculationResults.Count(), Is.EqualTo(output.Results.CalculationResults.Count()), "Results Count does not match"); - var totalDifferences = 0; - foreach (DesignResult expectedDesignResult in output.Results.CalculationResults) - { - expectedDesignResult.BaseFileName ??= - $"Loc({expectedDesignResult.LocationName})_Sce({expectedDesignResult.ScenarioName})_Pro({expectedDesignResult.ProfileName})"; - DesignResult actualDesignResult = null; - foreach (DesignResult calculationResult in calculationResults) - { - calculationResult.BaseFileName ??= - $"Loc({calculationResult.LocationName})_Sce({calculationResult.ScenarioName})_Pro({calculationResult.ProfileName})"; - - if (!expectedDesignResult.BaseFileName.Equals(calculationResult.BaseFileName)) - { - continue; - } - - actualDesignResult = calculationResult; - break; - } - - Assert.That(actualDesignResult, Is.Not.Null, $"Design result {expectedDesignResult.BaseFileName} not found"); - var compare = new CompareLogic - { - Config = - { - MaxDifferences = 100, - MembersToIgnore = resultsParametersToIgnore, - DoublePrecision = 1e-6 - } - }; - ComparisonResult result = compare.Compare(expectedDesignResult, actualDesignResult); - WriteDifferencesToLog(logFile, expectedDesignResult.BaseFileName, result); - totalDifferences += result.Differences.Count; - } - - Assert.That(totalDifferences, Is.EqualTo(0), "Total differences found comparing design results for " + resultsFile); - } - - private static void WriteDifferencesToLog(string logFile, string baseFileName, ComparisonResult result) - { - if (result.Differences.Any()) - { - string res = baseFileName + ": \r\n" + result.DifferencesString; - File.AppendAllText(logFile, res); - } - else - { - string res = baseFileName + ": No differences found at all! \r\n"; - File.AppendAllText(logFile, res); - } - } } \ No newline at end of file Fisheye: Tag 5729 refers to a dead (removed) revision in file `DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/DesignBishopGrid4Cores.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5729 refers to a dead (removed) revision in file `DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/LargeInsideBishopNoAdaptionGridResults_Cores_1.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5729 refers to a dead (removed) revision in file `DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/OperationalBishopGrid4Cores.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5729 refers to a dead (removed) revision in file `DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/OperationalBishopGrid2Cores.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5729 refers to a dead (removed) revision in file `DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/OperationalBishopGrid8Cores.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5729 refers to a dead (removed) revision in file `DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/DesignBishopGrid8Cores.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 5729 refers to a dead (removed) revision in file `DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/DesignBishopGrid2Cores.xml'. Fisheye: No comparison available. Pass `N' to diff?