Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs =================================================================== diff -u -r5304 -r5307 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 5304) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityCommonHelper.cs (.../MacroStabilityCommonHelper.cs) (revision 5307) @@ -608,16 +608,16 @@ var resultStixWrite = new StixWriter(); resultStixWrite.FillInfo("DAM Engine", macroStabilityOutputItem.CalculationPath, macroStabilityOutputItem.ProjectName, true); - switch (input.StabilityModel.ModelOption) + switch (macroStabilityOutputItem.StabilityModelType) { - case StabilityModelOptionType.UpliftVan: + case MStabModelType.UpliftVan: resultStixWrite.FillCalculatedDualCircle(macroStabilityOutputItem.ActiveCenterPoint.X, macroStabilityOutputItem.ActiveCenterPoint.Z, macroStabilityOutputItem.ActiveCenterPointRadius, macroStabilityOutputItem.PassiveCenterPoint.X, macroStabilityOutputItem.PassiveCenterPoint.Z); break; - case StabilityModelOptionType.Bishop: + case MStabModelType.Bishop: resultStixWrite.FillCalculatedCircle(macroStabilityOutputItem.ActiveCenterPoint.X, macroStabilityOutputItem.ActiveCenterPoint.Z, macroStabilityOutputItem.ActiveCenterPointRadius); Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MacroStabilityInwardsTests.cs =================================================================== diff -u -r5283 -r5307 --- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MacroStabilityInwardsTests.cs (.../MacroStabilityInwardsTests.cs) (revision 5283) +++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MacroStabilityInwardsTests.cs (.../MacroStabilityInwardsTests.cs) (revision 5307) @@ -855,8 +855,9 @@ fileList.Add("Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_input.stix"); fileList.Add("Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_input.stix"); } + int stixFileCount = Directory.GetFiles(Path.GetFullPath(calcDir), "*.stix", SearchOption.AllDirectories).Length; - Assert.That(stixFileCount, Is.EqualTo(expectedStixFileCount),"The number of created STIX files is not as expected"); + Assert.That(stixFileCount, Is.EqualTo(expectedStixFileCount), "The number of created STIX files is not as expected"); foreach (string file in fileList.Select(file => Path.Combine(Path.GetFullPath(calcDir), file))) { Assert.That(File.Exists(file), Is.True, file + " does not exist"); @@ -892,34 +893,41 @@ engineInterface.DamProjectData.DamProjectCalculationSpecification.CurrentSpecification.FailureMechanismParametersMStab.MStabParameters.SearchMethod = searchMethod; Output output = GeneralHelper.RunAfterInputValidation(engineInterface); - // one location is calculated with 3 1D profiles - Assert.That(output.Results.CalculationResults, Has.Length.EqualTo(3)); + // one location is calculated with 3 1D profiles, and results are for the 3 models + Assert.That(output.Results.CalculationResults, Has.Length.EqualTo(9)); Assert.Multiple(() => { - Assert.That(output.Results.CalculationResults[0].LocationName, Is.EqualTo("6-4-1-A-1-F")); - Assert.That(output.Results.CalculationResults[0].ProfileName, Is.EqualTo("6-4-1-A-1-F_1_s")); - Assert.That(output.Results.CalculationResults[1].LocationName, Is.EqualTo("6-4-1-A-1-F")); - Assert.That(output.Results.CalculationResults[1].ProfileName, Is.EqualTo("6-4-1-A-1-F_2_s")); - Assert.That(output.Results.CalculationResults[2].LocationName, Is.EqualTo("6-4-1-A-1-F")); - Assert.That(output.Results.CalculationResults[2].ProfileName, Is.EqualTo("6-4-1-A-1-F_3_s")); + CheckCalculationResults( + output.Results.CalculationResults[0], "6-4-1-A-1-F", "6-4-1-A-1-F_1_s", + DesignResultStabilityDesignResultsStabilityModelType.Bishop, 1.682, true, CalculationResult.Succeeded); + CheckCalculationResults( + output.Results.CalculationResults[1], "6-4-1-A-1-F", "6-4-1-A-1-F_1_s", + DesignResultStabilityDesignResultsStabilityModelType.UpliftVan, expectedSafetyFactor1, true, CalculationResult.Succeeded); + CheckCalculationResults( + output.Results.CalculationResults[2], "6-4-1-A-1-F", "6-4-1-A-1-F_1_s", + DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan, expectedSafetyFactor1, true, CalculationResult.Succeeded); + + CheckCalculationResults( + output.Results.CalculationResults[3], "6-4-1-A-1-F", "6-4-1-A-1-F_2_s", + DesignResultStabilityDesignResultsStabilityModelType.Bishop, 1.624, true, CalculationResult.Succeeded); + CheckCalculationResults( + output.Results.CalculationResults[4], "6-4-1-A-1-F", "6-4-1-A-1-F_2_s", + DesignResultStabilityDesignResultsStabilityModelType.UpliftVan, expectedSafetyFactor2, true, CalculationResult.Succeeded); + CheckCalculationResults( + output.Results.CalculationResults[5], "6-4-1-A-1-F", "6-4-1-A-1-F_2_s", + DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan, expectedSafetyFactor2, true, CalculationResult.Succeeded); + + CheckCalculationResults( + output.Results.CalculationResults[6], "6-4-1-A-1-F", "6-4-1-A-1-F_3_s", + DesignResultStabilityDesignResultsStabilityModelType.Bishop, 1.682, false, CalculationResult.Succeeded); + CheckCalculationResults( + output.Results.CalculationResults[7], "6-4-1-A-1-F", "6-4-1-A-1-F_3_s", + DesignResultStabilityDesignResultsStabilityModelType.UpliftVan, 0, false, CalculationResult.NoRun); + CheckCalculationResults( + output.Results.CalculationResults[8], "6-4-1-A-1-F", "6-4-1-A-1-F_3_s", + DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan, 1.682, false, CalculationResult.Succeeded); }); - DesignResult result = output.Results.CalculationResults[0]; - Assert.Multiple(() => - { - // SafetyFactor=1.638 - Assert.That(result.StabilityDesignResults.SafetyFactor, Is.EqualTo(expectedSafetyFactor1).Within(tolerance)); - - // skip testing some of the results like uplift etc. - - // Calculation Result - Assert.That(ConversionHelper.ConvertToCalculationResult(result.CalculationResult), Is.EqualTo(CalculationResult.Succeeded)); - }); - - // test safety factor for other profiles - result = output.Results.CalculationResults[1]; - Assert.That(result.StabilityDesignResults.SafetyFactor, Is.EqualTo(expectedSafetyFactor2).Within(tolerance)); - // Stix file var fileList = new List { @@ -937,8 +945,9 @@ fileList.Add("Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_1_s)_input.stix"); fileList.Add("Stability\\UpliftVan\\Loc(6-4-1-A-1-F)_Sce(1)_Pro(6-4-1-A-1-F_2_s)_input.stix"); } + int stixFileCount = Directory.GetFiles(Path.GetFullPath(calcDir), "*.stix", SearchOption.AllDirectories).Length; - Assert.That(stixFileCount, Is.EqualTo(expectedStixFileCount),"The number of created STIX files is not as expected"); + Assert.That(stixFileCount, Is.EqualTo(expectedStixFileCount), "The number of created STIX files is not as expected"); foreach (string file in fileList.Select(file => Path.Combine(Path.GetFullPath(calcDir), file))) { Assert.That(File.Exists(file), Is.True, file + " does not exist"); @@ -971,27 +980,41 @@ Output output = GeneralHelper.RunAfterInputValidation(inputString); - // one location is calculated with 3 1D profiles - Assert.That(output.Results.CalculationResults.Length, Is.EqualTo(3)); - Assert.That(output.Results.CalculationResults[0].LocationName, Is.EqualTo("6-4-1-A-1-F")); - Assert.That(output.Results.CalculationResults[0].ProfileName, Is.EqualTo("6-4-1-A-1-F_1_s")); - Assert.That(output.Results.CalculationResults[1].LocationName, Is.EqualTo("6-4-1-A-1-F")); - Assert.That(output.Results.CalculationResults[1].ProfileName, Is.EqualTo("6-4-1-A-1-F_2_s")); + // one location is calculated with 3 1D profiles and results are for the 3 models (Bishop, Uplift-Van and Bishop/UpliftVan) + Assert.That(output.Results.CalculationResults, Has.Length.EqualTo(9)); + Assert.Multiple(() => + { + CheckCalculationResults( + output.Results.CalculationResults[0], "6-4-1-A-1-F", "6-4-1-A-1-F_1_s", + DesignResultStabilityDesignResultsStabilityModelType.Bishop, 1.682, false, CalculationResult.Succeeded); + CheckCalculationResults( + output.Results.CalculationResults[1], "6-4-1-A-1-F", "6-4-1-A-1-F_1_s", + DesignResultStabilityDesignResultsStabilityModelType.UpliftVan, 0, false, CalculationResult.NoRun); + CheckCalculationResults( + output.Results.CalculationResults[2], "6-4-1-A-1-F", "6-4-1-A-1-F_1_s", + DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan, 1.682, false, CalculationResult.Succeeded); + + CheckCalculationResults( + output.Results.CalculationResults[3], "6-4-1-A-1-F", "6-4-1-A-1-F_2_s", + DesignResultStabilityDesignResultsStabilityModelType.Bishop, 1.624, false, CalculationResult.Succeeded); + CheckCalculationResults( + output.Results.CalculationResults[4], "6-4-1-A-1-F", "6-4-1-A-1-F_2_s", + DesignResultStabilityDesignResultsStabilityModelType.UpliftVan, 0, false, CalculationResult.NoRun); + CheckCalculationResults( + output.Results.CalculationResults[5], "6-4-1-A-1-F", "6-4-1-A-1-F_2_s", + DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan, 1.624, false, CalculationResult.Succeeded); + + CheckCalculationResults( + output.Results.CalculationResults[6], "6-4-1-A-1-F", "6-4-1-A-1-F_3_s", + DesignResultStabilityDesignResultsStabilityModelType.Bishop, 1.682, false, CalculationResult.Succeeded); + CheckCalculationResults( + output.Results.CalculationResults[7], "6-4-1-A-1-F", "6-4-1-A-1-F_3_s", + DesignResultStabilityDesignResultsStabilityModelType.UpliftVan, 0, false, CalculationResult.NoRun); + CheckCalculationResults( + output.Results.CalculationResults[8], "6-4-1-A-1-F", "6-4-1-A-1-F_3_s", + DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan, 1.682, false, CalculationResult.Succeeded); + }); - DesignResult result = output.Results.CalculationResults[0]; - // SafetyFactor=1.682 - Assert.That(result.StabilityDesignResults.SafetyFactor, Is.EqualTo(1.682).Within(tolerance)); - - // skip testing some of the results like uplift etc. - - // Calculation Result - Assert.That(ConversionHelper.ConvertToCalculationResult(result.CalculationResult), Is.EqualTo(CalculationResult.Succeeded)); - - // test safety factor for other profiles - result = output.Results.CalculationResults[1]; - // SafetyFactor=1.644 - Assert.That(result.StabilityDesignResults.SafetyFactor, Is.EqualTo(1.624).Within(tolerance)); - // Stix file var existingFilesList = new List { @@ -1024,7 +1047,7 @@ { if (Directory.Exists(directory)) { - Directory.Delete(directory, true); + //Directory.Delete(directory, true); } } @@ -1072,4 +1095,18 @@ string result = Regex.Replace(input, pattern, replacement); return result; } + + private void CheckCalculationResults(DesignResult output, string locationName, string profileName, DesignResultStabilityDesignResultsStabilityModelType model, double safetyFactor, bool isUplift, CalculationResult result) + { + + Assert.Multiple(() => + { + Assert.That(output.LocationName, Is.EqualTo(locationName)); + Assert.That(output.ProfileName, Is.EqualTo(profileName)); + Assert.That(output.StabilityDesignResults.StabilityModelType, Is.EqualTo(model)); + Assert.That(output.StabilityDesignResults.SafetyFactor, Is.EqualTo(safetyFactor).Within(tolerance)); + Assert.That(output.StabilityDesignResults.UpliftSituation.IsUplift, Is.EqualTo(isUplift)); + Assert.That(ConversionHelper.ConvertToCalculationResult(output.CalculationResult), Is.EqualTo(result)); + }); + } } \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r5305 -r5307 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 5305) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 5307) @@ -288,11 +288,13 @@ DesignResult designResultUpliftNoRun = MacroStabilityCommonHelper.NewDesignResult(damKernelInput, designScenario); designResultUpliftNoRun.StabilityDesignResults.StabilityModelType = MStabModelType.UpliftVan; designResultUpliftNoRun.CalculationResult = CalculationResult.NoRun; + designResultUpliftNoRun.SafetyFactor = null; + designResultUpliftNoRun.StabilityDesignResults.UpliftSituation = macroStabilityOutput.UpliftSituation; designResults.Add(designResultUpliftNoRun); } // Now add the overall result for Bishop/UpliftVan only if both results are available. - if (macroStabilityOutput.StabilityOutputItems.Count == 2) + if (designResults.Count == 2) { int index; // add worst result from Bishop/UpliftVan, but only if both succeeded.